VIM中不易发现的强劲功能

王朝other·作者佚名  2008-05-21
宽屏版  字体: |||超大  

在我最初使用Vim时,有些功能并不知道,等发现后真后悔自己干了那么久的体力活。

1. * (super star)

向下查找光标下(或附近)的。向上找用#。g*查找则不限制whole word。

2. C-R (magic insert)

在insert模式下,C-R (register) 插入register里的内容,一个有趣的reg是"=".

假设你想输入123K的具体字节数,不用打开计算器,试试这个“=1024*123”,

“125952”就出来了!

另外在命令行里C-R C-W和C-R C-A是必用的技巧,它们将光标下的和

考到命令行里,省了你无数的typing。

3. C-X (auto complete)

在insert模式下,C-X C-P/N/L/F等自动完成前面的词、行、文件名等,是编程时必用的

命令。其中C-P和C-N可以不用C-X。

4. [p & ]p (smart paste)

paste同时自动根据目标行的缩进调整来源行的缩进。在copy代码段的时候非常有用。

5. C-O (fast out, fast in)

在insert模式下,用C-O后可以执行一个normal命令,然后立即返回insert模式,省去了

用ESC的麻烦。

6. [I (fast grep )

[I显示文件中包含光标下的所有行。我常用来浏览某个id在程序中的引用情况。

还有很多相关的命令::h include-search

7. object-select

iw, aw, ib, i], i} ... 都非常有用!看help吧

:h object-select

再说说我马上能够想起来的。

1.

fx

x 表示任何一个字符。

这是最快的在一行种移动的方法了。然后用

; (分号)

继续移动。

反向移动好像是 t ,但是我记性不好,

总是记不住,于是

0fx

用 0 先回到行首,在 f

2.

任何一个操作命令在加一个移动命令。实现对某个范围的操作。

例如

dfx

表示删除到下一个出现 x 的地方, x 可以使任意字符。

操作命令有 d (cut), y(copy) , p(paste), v (select)

移动命令有 hjkl, f, /, gg, G

3.

任何命令组合都可以先按一些 数字健 表示重复操作。

如:

d123j

删除下面123行。

4. 宏纪录的功能

例如,把文件中所有奇数行和偶数行合并。按如下序列

gg

qq

J

q

100000000@q

5. C-p

在 insert mode 下

写程序的时候,任何超长的变量名字都不成问题。

如果有一个this_is_very_long_variable_name

可以

this

90%的可能性自动就把名字补全了。

于是,我写程序的时候,变量的名字其的越来越长,输入越来越快。:)

6. C-x C-p

在写程序 abc.h 的时候

写道 #include "abc.h" 的时候

其实可以

#include "a"

90% 的情况,可以自动补全文件名称。

6.从外部命令输入

:r !ls

可以读取当前目录的文件列表。

如果你对 bash 很熟悉的话,这个功能非常好用

例如

输入

case 1

case 2

....

case 1000:

的方法是

:r !for ((i=0;i<100>

7. 利用外部命令处理文字。

我在 ~/.vimrc 中写了一行。

map = ggVG:!indent -nut -st -kr 2>/dev/nullG

我按一个 = ,就可以利用外部命令 indent 美化 我的 c 程序。

我认为,

还可以用外部命令排序

例如

用 v 选定要排序的区域

然后按一个叹号。

:'<,'>!sort <br /> <br /> 8<br /> 我在 ~/.vimrc 中写了<br /> map <Left> :bp<CR><br /> map <Right> :bn<CR><br /> map <F4> :bd<CR><br /> <br /> 就可以用 左右方向健来切换 buffer<br /> F4 关闭 buffer 了。<br /> <br /> 9<br /> 我在 ~/.vimrc 中写了<br /> runtime ftplugin/man.vim<br /> <br /> 就可以在把光标停在一个函数上,然后用 <br /> \k

查看在线帮助了。

:Man getuid

查看 getuid 函数的手册了。

10.

:make

可以用外部命令 make 编译工程。

:cw

查看出错信息,

:cn

:cp

在出错信息之间跳转。

11.

]] , [[ , [] , ][ 命令可以在函数之间移动。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有