玩转VIM编辑器-额外技巧

玩转VIM编辑器-额外技巧

给整个条目列表添加点阵式符号

比如,原文为:

The Geek Stuff article categories:

 

Vi / Vim Tips and Tricks

Linux Tutorials

SSH Tips and Tricks

Productivity Tips

HowTo & FAQ

Hardware Articles

Nagios Tutorials

MySQL and PostgreSQL Tips

操作后变为:

The Geek Stuff article categories:

 

*Vi / Vim Tips and Tricks

*Linux Tutorials

*SSH Tips and Tricks

*Productivity Tips

*HowTo & FAQ

*Hardware Articles

*Nagios Tutorials

*MySQL and PostgreSQL Tips

操作方法为:

1.    使用CTRL+V选定第一列;

2.    按下I(即i的大写字母);

3.    按下TAB可以移动全部选择行;

4.    然后插入*号即可,所有的操作都会影响所有的行;

5.    ESC退出编辑;

使用update-alternatives设置vim为系统通用默认编辑器

      Debian操作系统中,可以设置vim为通用默认编辑器,命令为:

update-alternatives --set editor <PATH OF VIM>

vim作为默认编辑器

      对于普通用户,可以在bashrc中,设置默认编辑器为vim,只需要在bashrc中添加export EDITOR=vi即可。

格式化段落

使用gqap来格式化段落。

重用宏

      对于我们使用的宏,如果不小心录制错误了,可以有两种方法来修改:

1.    重新录制宏;

2.    修改宏

a)     “ap    用于粘贴宏;

b)     修改宏中错误的地方;

c)     “ayy  重新录制该宏;

缩进代码块

原文为:

int main()

{

printf("Hello World!\n");

printf(“Done.”);

}

缩进后为:

int main()

{

printf("Hello World!\n");

printf(“Done.”);

}

有两种方法,分别为:

1.    移动光到{或者},然后输入>i{即可右移,左移为<

2.    使用块模式

a)     将光标移动到需要移动的行;

b)     使用v键来选择移动区域;

c)     使用方向键选定行;

d)     使用>或者<来右移或者左移;

组合的威力

      前面讲了很多技巧,如果我们将导航命令和编辑命令组合,将会得到更强大的功能。

描述

d<导航键hjkl>

向导航方向删除

dw

删除一个单词

d$

一直删除到行尾

d0

一直删除到行首

dG

删除到文件末尾

dgg

删除到文件开始

dk

删除当前和上一行

Dj

删除当前和下一行

dM

删除到屏幕中间

dH

删除到屏幕开始

dL

删除到屏幕底部

y <导航键hjkl>

根据导航键来拷贝

c<导航键hjkl>

根据导航键来修改

查看所有修改的历史

:changes即可

刷新屏幕

      当屏幕由于一些原因而导致失真时,可以使用CTRL+L来重绘屏幕。

插入非键盘字符

      使用:digraphs可以查看一些非键盘字符;

我们可以在插入状态中使用CTRL+K At来输入@,其中的At就是使用digraphs中查看的对应字符。这里可以输入日文、阿拉伯符号等。

      更多信息,参考:help diagraphs

Vimex模式

      输入Q就可以进入ex模式,然后输入visual或者:vi就可以回到正常模式。

      在我们需要连续不断地执行命令的时候,可以进入该模式

令光标位于匹配的末尾

      一般在使用/pattern搜索的时候,光标会位于匹配的开始出,我们可以使用/pattern\zs来使得光标位于该行的结尾。

查看字符的ASCII

      在光标位于字符n上的时候,输入ga就会在底端显示:

<n> 110, Hex 6e, Octal 156

编辑二进制文件

使用命令行参数b,即 vim –b filename

折叠-查看部分源码

      这个特性对于有很多子函数的代码很有用;

自动折叠

:set foldmethod=indent即可折叠所有具有成对{}的代码。

折叠键

描述

za

展开光标下的内容

zR

展开所有折叠的内容

zM

折叠全部

手工折叠

:set foldmethod=manual

折叠键

描述

zf <导航键jk>

根据导航符来折叠

zf/pattern

通过搜索到的pattern来折叠代码

      我们也可以将所有的折叠信息保存起来,用的时候再加载,然后会还原原来设置的。方法为:mkview :loadview

posted @ 2011-11-07 17:59  郭—大—侠  阅读(220)  评论(0编辑  收藏  举报