下面是我从网上以及自己经常使用的快捷键,现在整理出来以便自己在其他地方可以通过优快云来查看
1、文件IO
vim -r file --恢复上次异常退出的文件;
vim + file --从文件的末尾开始;
vim +num file --从第num行开始;
vim +/string file --打开file,并将光标停留在第一个找到的string上。
2、文档操作
:e file -- 关闭当前编辑的文件,并开启新的文件。 如果对当前文件的修改未保存,vi会警告。
:e! file -- 放弃对当前文件的修改,编辑新的文件。
:e+file -- 开始新的文件,并从文件尾开始编辑。
:e -- 重新加载当前文档。
:e! -- 重新加载当前文档,并丢弃已做的改动。
:e#或ctrl+^ -- 回到刚才编辑的文件,很实用。
:f或ctrl+g -- 显示文档名,是否修改,和光标位置。
:f filename -- 改变编辑的文件名,相当于另存为。
gf -- 打开以光标所在字符串为文件名的文件。可以用于打开头文件
:Vex -- 垂直分割一个窗口,浏览文件系统;
3、光标移动
h或退格 -- 左移一个字符
l或空格 -- 右移一个字符
j -- 下移一行
k -- 上移一行
gj -- 移动到一段内的下一行
gk -- 移动到一段内的上一行
+或Enter -- 把光标移至下一行第一个非空白字符。
- -- 把光标移至上一行第一个非空白字符。
w -- 前移一个单词,光标停在下一个单词开头
e -- 前移一个单词,光标停在下一个单词末尾
b -- 后移一个单词,光标停在上一个单词开头
上面的操作都可以配合n使用,比如在正常模式下输入3h, 则光标向左移动3个字符
gg -- 到文件头部。
nG -- 到文件第n行。
zz -- 将当前行移动到屏幕中央。
zt -- 将当前行移动到屏幕顶端。
zb -- 将当前行移动到屏幕底端。
4、插入文本
i -- 在光标前插入
一个小技巧:按8,再按i,进入插入模式,输入=, 按esc进入命令模式,就会出现8个=。
这在插入分割线时非常有用,如30i+<esc>就插入了36个+组成的分割线。
a -- 在光标后插入
:r !date -- 在光标处插入当前日期与时间
5、复制剪贴粘贴
yy or Y -- 复制整行文本。
y[n]w -- 复制一(n)个词。
:m,ny<cr> -- 复制m行到n行的内容。
d[n]w -- 删除(剪切)1(n)个单词
[n] dd -- 删除(剪切)1(n)行。
:m,nd<cr> -- 剪切m行到n行的内容。
p -- 在光标之后粘贴。
6、查找
/something -- 在后面的文本中查找something。
?something -- 在前面的文本中查找something。
/pattern/+num -- 将光标停在包含pattern的行后面第num行上。
/pattern/-num -- 将光标停在包含pattern的行前面第num行上。
n -- 向后查找下一个。
N -- 向前查找下一个。
{
:vimgrep /pattern/ [g] [j] files
files支持 { *.c (所有的c文件) ./includes/*.* (includes目录下所有的文件)}
查找的结果可以用":copen"命令查看,在列表里,将光标移动至相应的位置,按回车就打开对应的文件了.
:copen -- 打开quickfix
:cclose -- 关闭quickfix
:cc -- 是在转到当前查找到的位置
:cn -- 转到下一个位置
:cp -- 转到前一个位置
}