VIM 常用命令整理

Vim 是号称“编辑器之神”的文本编辑软件,自从接触 Vim 以来,基本上都是用 Vim 来修改和编写代码和配置文件的。
但是我一直只会用最基本的命令,虽然把 HJKL 的定位键已操纵地很熟练。但是 Vim 其他强大的地方却几乎没有触及过。
学一样东西,就要把它学精。
这里记录了一些常用的使用技巧。

一、两行合并为一行:

int
main(int argc,char argv)

假如要把上面两行并为一行,只需要定位于 int 这行,然后按 Shift+J,即可。

二、撤消和重做

以前很傻,只知道按 U 来撤消,不知道重做。不一小心,撤消过头就傻了。原来重做是 Ctrl+R
另外,Shift+U 用来撤消整行。

三、连续插入 n 个感叹号

只要在普通模式下把光标定位于要输入位置的前一位,然后按 10a! ……不对啊,才一个!,别急,再按两下 Esc !哈哈,出来 10 个 ! 了吧!这个貌似不太常用,但挺好玩,呵呵~

四、快速保存退出

之前我会用两个退出方法:
保存并退出 :wq
不保存并退出 :q!
现在保存并退出有更快的方法——直接在普通模式下按 Shift+ZZ 即可。
另外,用 :e! 可以不保存文件并重新载入这个文件。

五、移动和滚动

直接按 W / B 来按单词滚动,W 是向前移动一个单词,B 是向后移动一个单词,我居然不常用!亏我还常常 DW 的来删除词。
PS:用 DW / DE 删除单词需要将光标定位于单词开头(DE 不会删除单词后的空格,DW 会删除单词后的空格)
另外,Ctrl+D 向下滚屏,Ctrl+U 向上滚屏,比我之前 HJKL (左下右上)的有效率多了……汗
:set nu 显示行号,:set nonu 取消行号,行号 + GG(或者 行号 + Shift+G)直接到达该行。

六、同时编辑多个文件

:sp 文件名(水平分割):vsp 文件名(垂直分割)
如此就可以在一个窗口打开 2 个或多个文件了。可以使用 Ctrl+WW 在多个窗口的文件中切换。

七、执行 shell 命令

在 Vim 中也可以执行 shell 的命令。在命令模式下,指令 :!command,command 是 shell 命令。例如指令 :!date 会把目前的时间和日期显示到萤幕上。
要是你想把 shell 命令的结果放到文件中,可以用 :r !command。比如 r !date 会把现在的时间放到光标所在的行的下一行。可以指定行数,例如 :20r !date 会把现在的时间放到第二十行。
也可以选择档案中的文字作为 shell 命令的输入。输出的结果会把替换掉你输入的文字。例如 :2,5!sort 会把第二列到第五列的文字依序排列,而原来的文字就会被覆盖。

八、编辑得更快一点

按词移动:W / B
移动到行首或行末:Shift+6 / Shift+4 / Shift+A
在行上查找:(F / Shift+F) + 要查找的字母
移动到指定行:行号 + (GG / Shift+G)
滚屏:Ctrl+U / Ctrl+D
删除:DW / DE / DB / D + (Shift+6) / D + (Shift+4) / DD / Shift+D
删除并进入输入状态:CC / CW / CE / CB
替换:R + 替换的字符
更改大小写:Shift+`
误按 Ctrl+S 后退出“假死”状态:Ctrl+Q
Tab 转空格:

:set ts=4
:set et
:%retab!

空格转 Tab:

:set ts=4
:set noet
:%retab!

九、解决中文乱码

编辑 /etc/sysconfig/i18n,加入以下内容:

LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"

编辑 ~/.vimrc,加入以下内容:

set nu
set ts=4
set encoding=prc
set fileformats=unix
set termencoding=utf-8
set fileencodings=utf-8,gb2312,gbk,gb18030

原文:http://apps.hi.baidu.com/share/detail/30695667

《VIM 常用命令整理》有2个想法

发表评论

电子邮件地址不会被公开。 必填项已用*标注