当前屏幕行间跳转
H 跳到第一行
M 跳到中间一行
L 跳到最后一行
行内跳转
fx
往右移动到 x 字符上
Fx
往左移动到 x 字符上
tx
往右移动到 x 字符前
Tx
往左移动到 x 字符后
(注意:以上四个命令中,其中x是键入的字符)
标记文本
mchar 用字母char标记当前光标的位置
`char 移至char所标记处
'char 移至char标记所在行的开头处
" 移至当前行上一次所在位置(在光标移动之后)――一个双引号
'' 移至当前行上第一次所在位置的行的开头处(在光标移动之后)――两个单引号
上下两行合并
J(大写)
自动替换
:ab s1 s2
例如 ":ab usa United States of America" ,
当你在文见里插入 usa 时
United States of America 就蹦出来了
全文件替换特定字符串
:%s/old_word/new_word/g
:%s/old_word/new_word/gc
加上c在替换的时候会询问是否替换
连续插入n个感叹号
Hello World
比如要在上面这句话后面插入10个"!",只要把光标定位于d,然后按'10a!',再按两下Esc!
保存并退出
直接在普通模式下按ZZ(大写)即可.
另外,用:e!可以不保存文件并重新载入这个文件。
查找时忽略大小写和历史查找
有时查找单词时需要忽略大小写,只要设置下面的就可以了
:set ignorecase
假如进行过几次查找,想继续以之前查过的关键词查找时,只要按/,然后上下键来选择即可
同理,按下:,然后上下键,也可以翻看执行过的历史纪录,不过仅限于当前的编辑。
快速查找
你要找当前光标定位处的字段,难道要慢吞吞输入/和字段吗?不必了!直接按*号,Vim就会把当前的字段作为查找内容,找下一处。
对了,:set hlsearch可以将查找的内容设置成高亮。这样就好看了。反之,加上:set nohlsearch就可以了。上面的ignorecase也可以加no。
修改命令操作
cl 更改当前字符
cw 修改到某个单词的结尾位置
c3w 修改到第三个单词的结尾位置
cb 修改到某个单词的开始位置
cW 修改到某个以空格作为分隔符的单词的结尾位置
cB 修改到某个以空格作为分隔符的单词的开始位置
c7B 修改到前面7个以空格作为分隔符的单词的开始位置
c0 修改到某行的结尾位置
c) 修改到某个语句的结尾位置
c4) 修改到第四个语句的结尾位置
c( 修改到某个语句的开始位置
c} 修改到某个段落的结尾位置
c{ 修改到某个段落的开始位置
c7{ 修改到当前段落起始位置之前的第7个段落位置
ctc 修改当前行直到下一个字符c所出现位置之间的内容
C 修改到某一行的结尾
cc 修改当前行
5cc 修改从当前行所开始的5行内容
.重复上一次修改!
删除单词和替换句子
一般来说,用dw/de删除单词需要将光标定位于单词开头,但是如果用daw,则无需这样,只要光标在这个单词上就可以了(daw=Delete a Word),如果不包括空格,就是diw;
替换句子的话,就用cis就行了;