- 行内移动
fxx 表示任何一个字符。
这是最快的在一行种移动的方法了。然后用 ; (分 号)继续移动。
反向移动好像是 t ,但是我记性不好, 总是记不住,于是
0fx用 0 先回到行首,在 f
- 任何一个操作命令在加一个移动命令。实现对某个范围的操作。 例如 :
dfx
表示删除到下一个出现 x 的地方, x 可以使任意字符。
操作命令有 d (cut), y(copy) , p(paste), v (select) 移动命令有 hjkl, f, /, gg, G
- 任何命令组合都可以先按一些 数字健 表示重复操作。 如:
d123j删除下面123行。
- 宏纪录的功能
例如,把文件中所有奇数行和偶数行合并。 按如下序列 ggqqJj1000000@q
gg 回到文件头 qq 记录宏,在q寄存器中 J 合并两行 j 下一行 q 结束记录宏 100000000@q 执行宏
- C-p
在 insert mode 下写程序的时候,任何超长的变量 名字都不成问题。如果有一个 this_is_very_long_variable_name 可以
this<C-P>
90%的可能性自动就把名字补全了。还可以用 C-n 和 C-p 在几种可能之间选择。
于是,我写程序的时候,变量的名字其的越来越长, 输入越来越快。:)
- C-x C-p
在写程序 abc.h 的时候 写道 #include "abc.h" 的时候 其实可以
#include "a<C-x><C-p>"
90% 的情况, 可以自动补全文件名称。
- 从外部命令输入
:r !ls
可以读取当前目录的文件列表。 如果你对 bash 很熟悉的话,这个功能非常好用, 例如, 输入下面内容的方法是
case 1 case 2 .... case 1000:
:r !for ((i=0;i<100;i++));do echo "case $i" ; done- 利用外部命令处理文字。
我在 ~/.vimrc 中写了一行。
map = ggVG:!indent -nut -st -kr 2>/dev/null<CR>G
我按一个 = ,就可以利用外部命令 indent 美化 我的 c 程序。
还可以用外部命令排序,例如 用 v 选定要排序的区域 然后按一个叹号。
:'<,'>!sort
- 我在 ~/.vimrc 中写了
map <Left> :bp<CR> map <Right> :bn<CR> map <F4> :bd<CR>
就可以用 左右方向健来切换 buffer F4 关闭 buffer 了。
- 我在 ~/.vimrc 中写了
runtime ftplugin/man.vim
就可以在把光标停在一个函数上, 然后用
\k
查看在线帮助了。 用
:Man getuid
查看 getuid 函数的手册了。
- Make 工具
:make
可以用外部命令 make 编译工程。
:cw
查看出错 信息,
:cn :cp
在出错信息 之间跳转。
- 命令可以在函数之间移动。
]] , [[ , [] , ][