vim常用技巧总结

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见下图)

Word moves example

  • %: 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 select foo.
  • va" → will select "foo".
  • vi) → will select "foo".
  • va) → will select ("foo").
  • v2i) → will select map (+) ("foo")
  • v2a) → will select (map (+) ("foo"))
vim常用技巧总结_第1张图片

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/





你可能感兴趣的:(linux,vim)