提升效率的若干Vim技巧

  前段时间一篇关于Vim练级的文章大火,酷壳也有翻译,还贴出一张Cheat Sheet。
  Vim能力强大,功能繁多,快捷键更是数不胜数,以至于苦逼的程序员们根本无法完全掌握。事实上,每个使用Vim的程序员,包括高级用户,只是在使用Vim所提供功能的一个很小的子集,而且也只需要使用一个很小的子集。在学会基本的编辑技巧的基础上,根据自己的需要,掌握一些“高级”技巧,可以极大的提高编辑效率。这里约略地列出我平时习惯使用的有限的一些技巧,希望你能够发现自己不知道却对你也适用的某一个。

  • G, gg: 光标移动至文件首/尾;
  • zz, zt, zb: 将光标所在行居中/置顶/置尾;
  • H, M, L: 定位光标到当前窗口的首/中/尾;
  • *, #, n, N: 向前/后定位当前光标所在word,n/N沿相应/相反方向重复定位;
  • ^a, ^x: 若当前光标所在word是数字,可递增/递减该数字,同时支持decimal和hexadecimal;
  • ^, g_: 即Shift+6,定位光标到当前行首/尾的第一个非空白字符;
  • ^d, ^t: insert模式下,缩进/反缩进当前行;
  • ^w: insert模式下,向后删除一个word;
  • ^y: insert模式下,复制上一行同列字符;
  • ^x^f: insert模式下,补全路径名;
  • ^x^n: insert模式下,补全tag(需要tags文件的支持);
  • ^x^l: insert模式下,补全行(根据上一行);
  • I, A: 定位光标至当前行首/尾,并进入insert模式,I会忽略行首空白;
  • D, C: 删除光标所在位置到行尾的字符,C会进入insert模式;
  • cib: 或者ci(或者ci),删除当前括号内的所有字符并进入insert模式。c还可以是d或者其他编辑字符,i还可以是a(此时会将括号一同删除),b还可以是B(大括号)、t(html标签)或者具体的配对符号,如(), [], {}, ”, “”, <>。
    参加:h text-objects;
  • %: normal模式下%会跳转至配对括号;
  • %: lastline模式下代表当前buffer的文件名,可以有许多修饰字符,例如:sp %:r.cpp会分割当前窗口,并打开当前文件对应的cpp文件,%:r代表文件名消除最后一个后缀之后的字符串。
    参见:h filename-modifiers;
  • :set op? : 显示选项op的当前值;
  • :set op! : 反转开关式选项op,比如:set nu!开关行号显示,:set paste!开关paste模式

注:
1. 非特别说明,命令均在normal模式;
2. 字符前的^指Ctrl;
3. 技巧来自于实践,技艺提升于运用。

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