分享 初学者连载系列之八:VIM 党来啦!VIM 常用操作技巧

kevinhua · 2012年04月06日 · 最后由 jinleileiking 回复于 2012年05月02日 · 3996 次阅读

系列文章原载于自己的博客,TOPI.CO (http://topi.co) ,某天不小心就 push 错啦,懒得从头再来,上传到 Ruby-China 来,一是方便自己回顾,另外也方便跟我一样的初学者

Vim 的操作除了基本的hjkl (即上​​下左右) 之外,快速键组合相当多,不过大概有个规则。下面列出了我自己认为会经常使用的,而且觉得比较方便的操作技巧,好记性不如烂笔头,写起来帮自己加深记忆,希望也对有需要的朋友有帮助。

### 说明

ENTER = 按下 enter 键,CTRL = 按下 ctrl 键,ALT = 按下 alt 键,如果是大写字母例如G = shift + g,CTRL wj = 按着 ctrl 键不放,再按下 w,再按下 j

这里提到的都是 Vim 或是 plugin 内建的指令,如果你不喜欢或觉得难按,可以透过修改.vimrc 来改变快速键的对映以下指令都是在一般模式 (Normal Mode) 下使用。

### 游标移动

gg = 移到整份文件的最上方

G = 移到整份文件的最下方

H = 移到目前萤幕的最上方

L = 移到目前萤幕的最下方

5 ENTER = 游标往下移动 5 行,前面的数字表示行数

:5 ENTER = 游标直接移动到第 5 行

{} = 把游标移动到上一个、下一个段落

建议可以搭配 EasyMotion 更有效率的移动游标

### 搜索

/ = 搜索

* = 移往下一个搜索结果

# = 移往上一个搜索结果

:%s/text1/text2 = 搜索所有行的 text1,并替换为 text2,但每行只作 1 次替换

:%s/text1/text2/g = 同上,但没有任何限制,即全文完成所有替换

### 编辑

u = undo,回到上一步

CTRL r = redo,回复 undo

. = 重复上一个步骤

~ = 改变当前英文字母的大小写,本来大写会变小写,小写会变大写

:m+ = 把目前这一行往下移动一行,相当于 Excel 的剪切并插入行

:m-2 = 把目前这一行往上移动一行,相当于 Excel 的剪切并插入行

>><< = 增加、减少缩排

Y = 复制游标所在的这一整行

P = 在游标之后、之前贴上复制的内容

dd = 删除当前行

### 模式切换

ESC = 回到命令模式,ESC 是独立一颗比较好按,但比较远,如果你不想让你的手离开打字区的话,可以选用 CTRL [,或是在~/.vimrc 里自订快速键

CTRL v = visual block 模式,可进行像 TextMate 按住 alt 键的区块选取

### 使用 Scriptin 简化替换操作

可以预先编写好需频繁执行的操作,并保存。(例如,存为 test.script)

vim abc.txt -s test.script = 对 abc.txt 文件执行 test.script 脚本中的命令。

### 其它

:! = 执行外部指令,例如:! ls 则是执行 ls 指令,可以方便地查看当前目录下目录和文件。

收藏功能貌似没有用,我回复标记下~

:help quickref ~~(づ ̄3 ̄) づ

匿名 #4 2012年05月01日

同 ls。。

我现在才知道原来可以通过 :help quickref 来查看所有操作说明

#2 楼 @ekim_sgra 好吧,我也土了!!

需要 登录 后方可回复, 如果你还没有账号请 注册新账号