VIM 学习笔记
这些笔记是我在读《Vim实用技巧(第二版)》后记录下的一些使用Vim的方法。因为书中介绍的方法繁多,我只记录了平时较常用的技法。
我常用的Vim快捷键
- 删除一个单词:
daw
- 删除两个单词:
d2w
- 删除整个段落:
dap
- 重复上一次的操作:
.
- 撤销操作:
u
- 复制一行:
yyp
- 自动缩进整个文件:
gg=G
- 删除前一个字符:
Ctrl+h
- 删除前一个单词:
Ctrl+w
- 删除到行首:
Ctrl+u
- 命令行界面查找单词:正向
/
,反向?
- 重复上一次查找:上一次匹配:
N
,下一次匹配n
- 重复跳转查找:正向
;
,反向,
- 正向移动到下一个单词的结尾:
E
- 反向移动到上一个单词的结尾:
gE
- 删除到句号:
dt.
- 剪切并粘贴一行:
ddp
- 复制并粘贴一行:
yyp
- 剪切一个单词:
diw
- 复制一个单词:
yiw
- 替换所有关键词:
s/[source_word]/[target_word]/g[c]
动态改变Vim设置项(以ignorecase为例)
- set ignorecase 开启命令
- set noignorecase 关闭命令
- set ignorecase! 反转设置该命令
- set ignorecase? 获取当前命令的状态
- set ignorecase& 将某状态设为默认值
将配置文件保存至vimrc文件
首先需要创建一个空的文件来保存配置信息:
!#customizations/two-space-indent.vim
"Use two spaces for indentation
set tabstop=2
set softtabstop=2
set shiftwidth=2
set expandtab
然后通过
source [filename]
命令将指定的文件设置项目应用于当前会话。
但是这样每次打开都要加载非常麻烦,因此我们可以将配置写在默认的配置文件中,以便每次启动时自动加载:
# vim ~/.vimrc
小提示:理想情况不是把配置信息直接写进去,而是把
source [filename]
命令加入文件末尾。一些常用的配置
set encoding=utf-8
set showmatch
set smartindent
set autoindent
set tabstop=4
set rnu
set cursorline
移动光标的方法
在 VIM 中写代码时,移动光标就显得非常重要了。
hjkl
用于控制光标移动,当想要多行移动时,可使用数字加上命令的形式进行操作,例如向下移动三十行,可使用 30↓
或 30j
作为组合键。另有:n<Space>
: n 表示一个数字,填写数字之后再按下空格,光标会向右移动这一行 n 个字符。n<Enter>
: n 表示一个数字,填写数字之后再按下回车,光标会向下移动这 n 行。0
或Home键
:移动到这一行最前面的字符处。$
或End键
:移动到这一行最后字符串处。gg
:移动到文件头部G
:移动到文件末尾
多窗口操作
# 同时打开多个文件,并横向排列
$ vim -o t.c t.h
# 将所有的文件横向排列
:all
# 将所有的文件纵向排列
:vertical all
# 以分割形式打开文件
:sp [filename]
:vs [filename]
# 关闭当前窗口
:close
# 保留当前窗口,关闭其他窗口
:only
# 在窗口之间跳转
ctrl+w j 向下移动(或相应方向键)
ctrl+w k 向上移动(或相应方向键)
ctrl+w h 向左移动(或相应方向键)
ctrl+w l 向右移动(或相应方向键)
ctrl+w t 移动到顶端
ctrl+w b 移动到底端
# 调整窗口大小
Ctrl + w + [num(alt)] + + 纵向扩大窗口
Ctrl + w + [num(alt)] + - 纵向缩小窗口
Ctrl + w + [num(alt)] + > 横向扩大窗口
Ctrl + w + [num(alt)] + < 横向缩小窗口
# 移动窗口
Ctrl + w + r:向右或向下方交换窗口,而Ctrl + w + R则和它方向相反
Ctrl + w + x:交换同列或同行的窗口的位置
命令模式的文件操作
:w [filename]
将编辑的数据存储成另一个文件。:r [filename]
在编辑的数据中读入另一个文件,并将文件的内容追加到游标之后。:n1,n2 w [filename]
将 n1 到 n2 的内容存储成 filename 这个文件。! command
暂时离开 vim 并执行 linux 命令。
代码中批量注释
方法一:块选择模式
- 批量注释:
Ctrl + V
进入块选择模式,然后移动光标选中需要注释的行,再按大写的 [I]nsert 进入行首插入模式,输入注释符号//
或#
,输入完毕之后,按两下Esc
,Vim 会主动将你选中的所有行首都加上注释。 - 取消注释:
Ctrl + V
进入块选择模式,选中你要删除的行首的注释符号,注意//
要选中两个,选好之后按d
即可删除注释,然后Esc
保存退出。
方法二:批量替换
- 批量注释:
:起始行号,结束行号s/^/注释符/g
例如:10,20s/^/#/g
- 取消注释:
:起始行号,结束行号s/^注释符//g
例如10,20s/#//g
其他
有的时候调试文件报错,说配置文件几行几行出错了,这时候就可以使用Vim打开文件到指定行,像这样:
# vim +n test.txt
评论
发表评论