- G 移动到当前文件最后一行
- nG 移动到当前文件第n行
- gg 移动到当前文件第一行(=1G)
- n[enter] 光标下移n行
- set:nu 显示行号(set:nonu 取消行号)
- /word 向下寻找word
- ?word 向上查找word
- n 重复前一个查找动作,(通常与/world连用来查找多个重复的值)
- :n1,n2s/word1/word2/g 把n1~n2行的word1替换为word2
- :1,$s/word1/word2/g 把整个文件的word1替换为word2
- :1,$s/word1/word2/gc 把整个文件的word1替换为word2(区别是:提示用户确认替换)
- dd删除当前行
- ndd 向后删除n行
- yy/nyy 复制当前行/向下复制n行
- p/P p将已复制数据在光标下一行粘贴,P将已复制数据在光标上一行复制(即光标所在的行变为最后一行)
- u 复原上一个操作(相当于回退)
- [Ctrl]+r 重做上一个操做(相当于前进)
- i/a/A 都是插入(i 从当前光标出插入,a从光标下一个字符出插入,A会定位到行尾再进行插入)
- r,R r只会替换当前字符一次,R会替换掉整行字符
- :w[filename] 将编辑数据另存为一个文件
- :n1,n2 w[filename] 将n1到n2的内容另存为一个文件
- r[filename] 在编辑数据中读入另外一个文件数据
接下来我们来介绍下块选择(Visual Block):
上面的操作都是以行为单位的
对处理类似下列文件时就无能为力了
192.168.1.1 host1.class.net
192.168.1.2 host1.class.net
192.168.1.3 host1.class.net
192.168.1.4 host1.class.net
..................
这时 我们可以使用块选择(Visual Block)
- V:是将光标经过的字符反白选择
- v:是将光标经过的行反白选择(单位是行)
- [Ctrl]+v 块选择,可以用长方形进行选择
(注: 通常可以与y:将反白的地方复制 d:将反白地方删除)
vim 多文件编辑(vim filename1 filename2 … 打开多个文件)
- :n 编辑下一个文件
- :N 编辑上一个文件
- :file 列出当前这vim 打开的所有文件
vim 打开多个窗口
:sp + filename 就可以以连一个窗口打开这个文件了
[ctrl]+ w+j(或者向上箭头) 可以移到上方文件
[ctrl]+ w+k(或者向下箭头) 可以移到下方文件
:q 离开当前的文件窗口