1.文件浏览
- :Ex : 开启目录浏览器,注意首字母E是大写的
- :Sex : 在一个分割的窗口中开启目录浏览器
- :ls : 显示当前buffer的情况
- :cd .. : 进入父目录
- :args : 显示目前打开的文件
- :lcd %:p:h : 更改到当前文件所在的目录 # lcd是紧紧改变当前窗口的工作路径,% 是代表当前文件的文件名
# lcd是紧紧改变当前窗口的工作路径,% 是代表当前文件的文件名,
# 加上 :p扩展成全名(就是带了路径),加上 :h析取出路径\r\n:autocmd BufEnter * lcd %:p:h : 自动更改到当前文件所在的目录 # 译释:autocmd指定一个自动命令,BufEnter指定一个事件,* 指定事件的对象
# lcd %:p:h 指定一个动作
2.光标移动
- 0:移动到第一列
- ^ :光标移至行第一个非空字符上
- $ :行末
- g_ : 与^对应,移动到最后一个非空字符上
- /pattern :搜索
- G, gg: 光标移动至文件首/尾;
- NG : 定位到第N行
- w :定位到下一个单词(W见下图)
- e :定位到该单词结尾(E见下图)
- %: normal模式下%会跳转至配对括号;
- * : 搜索下一个光标所指的单词
- fa:到下一个a字符(F相反)
- ta: 在下一个a之前(T相反)
- zz, zt, zb: 将光标所在行居中/置顶/置尾;
- H, M, L: 定位光标到当前窗口的首/中/尾;
- *, #, n, N: 向前/后定位当前光标所在word,n/N沿相应/相反方向重复定位;
- ^a, ^x: 若当前光标所在word是数字,可递增/递减该数字,同时支持decimal和hexadecimal;
- ^, g_: 即Shift+6,定位光标到当前行首/尾的第一个非空白字符
- ^, g_: 即Shift+6,定位光标到当前行首/尾的第一个非空白字符;
- *, #, n, N: 向前/后定位当前光标所在word,n/N沿相应/相反方向重复定位;
- I, A: 定位光标至当前行首/尾,并进入insert模式,I会忽略行首空白;
3. 排版
- ^t,^d : insert模式下,缩进/反缩进当前行;
4.编辑(自动补全):
- ^n:向下搜索关键字补全
- ^p:向上搜索关键字补全
- ^w: insert模式下,向后删除一个word;
- ^y: insert模式下,复制上一行同列字符;
- ^x^f: insert模式下,补全路径名;
- ^x^n: insert模式下,补全tag(需要tags文件的支持);
- ^x^l: insert模式下,补全行(根据已有行);
4.编辑(删除、复制、粘贴)
- u :取消操作
- ^r: 重做
- yy:拷贝当前行
- P,p: 粘贴,大写的P 在光标所在行的前一行粘贴复制内容,p在下一行粘贴
- dt': 删除到‘所有的内容
- D, C: 删除光标所在位置到行尾的字符,C会进入insert模式;
- cib: 或者ci(或者ci),删除当前括号内的所有字符并进入insert模式。
5.命令
- K: 即Shift+k,根据光标所在word查阅man手册,非常实用的功能,当然前提是系统手册中已经有相应的条目了。通常需要安装manpages-dev, manpages-posix和manpages-posix-dev。
- g/pattern/cmd : 这个命令很实用,但我用的并不太多,因为很多情况下它的功能可以有s命令完成。它对匹配pattern的所有行执行cmd命令,比如:g/^#/d删除所有以#开始的行。
- . (点): 重复上一操作
- N<命令> : 重复命令N次
- <起始位置><命令><结束位置> 举例:0y$(复制改行内容0表示行首,y表示从此处复制,$表示到行末)y2/foo(从当前位置复制到第2个foo单词中的所有内容),d,v,gU,gu都可以
6.视图(visual)选择
- <action>i<object>或者<action>i<object> action可以为d,y,v, object为w,W,s,p,",',),},]
vi"
→ will selectfoo
.va"
→ will select"foo"
.vi)
→ will select"foo"
.va)
→ will select("foo")
.v2i)
→ will selectmap (+) ("foo")
v2a)
→ will select(map (+) ("foo"))
vim键盘图谱
参考内容
1. http://yannesposito.com/Scratch/en/blog/Learn-Vim-Progressively/(待翻译)
2. http://blog.csdn.net/wow20008/article/details/7876429
3. http://www.dutor.net/index.php/2011/09/efficient-vim-tips/