Vim 使用入门快捷键


Vim 使用入门快捷键
   

本文遵循“署名-非商业用途-保持一致”创作公用协议

Vim 和 Emac 都是利器啊,前段时间决定熟悉一套跨平台的编辑器,以便在 Win,Mac,Ubuntu 下都有相同的编辑体验。

于是尝试了一下 Vim,使用了一段时间,确实比 UE 之类的要高效。Win 平台下有 gVim, Mac 下也有 MacVim

 

Vim 的学习曲线确实有点陡峭,刚开始不是那么容易习惯的。查看帮助文档是必不可少的,其在线中文文档链接如下:

Vim 在线中文文档:http://vimcdoc.sourceforge.net/doc/help.html

 

这个文档超级大而全,方便查阅,如果想入门试试 Vim 的话,不太适合,下面我整理了一些方便入门的常用快捷键。

 

===========================================================

模式操作 

===========================================================

 

Vim具有五种基本模式,默认是普通模式,在普通模式下是无法进行编辑的,需要进入插入模式。

(Window 下用记事本打开一个 txt, 默认就是插入模式,所以就可以直接编辑,Vim 不是这样的!!)

===========================================================

普通模式(normal mode)

插入模式(insert mode)

命令模式(command mode)

可视模式(visual mode)

替换模式(replace mode)

 

其他模式下要回到普通模式:

===========================================================

Esc

Ctrl + c

Ctrl + [

 

进入插入模式

 

===========================================================

iinsert 在光标前插入

Iinsert 在当前行的第一个非空白字符之前插入

aappend 在光标后插入

Aappend 将输入点移动到在当前行的行尾来输入文本

o在当前行下方新启一行,并进入插入模式。

O在当前行上方新启一行,并进入插入模式。

ssubstitute 用来删除当前光标下的字符,然后进入到插入模式

cwchange word 用的较少,和 s 相似,只不过删除的单位是单词。

首先删除由光标(包括光标)开始的一个单词,然后进入插入模式,

  

进入命令模式:

===========================================================

:, /

 

:之后,使用方向键可以调出历史命令。甚至输入:s之后,

会对历史命令进行过滤,只调出以s开头的历史命令。

 

:help command查看帮助文档

::查看命令行模式的帮助

 

进入可视模式:该模式下方便对文本进行选择

===========================================================

v, V, Ctrl+v

 

vvisual,可视,以字符为单位移动

V可视,以行为单位移动

Ctrl + v可视,以块为单位移动

 

可视块模式应用:添加多行的 // 注释

 

首先将光标移动到要该代码块第一行的行首字母上,进入可视块模式,

然后移动光标到该代码块的最后一行的行首字母上,这时会高亮显示一列。

之后键入 I,注意不是i,此时信息区显示的是插入模式了,

然后键入注释符"//",将第一行注释掉,而其他行没有变化。

不用着急,最后键入Esc退回到普通模式。 

这时其他被选中的行的前面都添加了注释符,从而都被注释掉了

  

进入替换模式

===========================================================

r, R 

rreplace,该键只是用于替换光标所在的单个字符而已。

R持续替换直至退出 R 模式,在该模式下可以按照 backspace 恢复

 

===========================================================

 

关于模式的更多说明请查看Vim帮助文档,使用命令:

 

    :help mode-switching

 

===========================================================

文件操作 

===========================================================

 

分割窗口

===========================================================

:sp vim.txtsplit,水平分割窗口

:vs vim.txtvertical split,垂直地分割窗口可视块模式来完成了。

 

窗口切换

===========================================================

Ctrl + w + [h, j, k, l]

 

Ctrl在Vim中"^"一般表示Ctrl按键

wwindow

h,j,k,l就是上下左右四个方向

 

关闭窗口

===========================================================

Ctrl + w + [c]关闭当前窗口

Ctrl + w + [o]关闭其他窗口

 

保存文件

===========================================================

:wwrite,保存当前文件

:wawriteall,保存所有文件

 

退出文件

===========================================================

:qquit,关闭当前窗口或者当前标签页

:wqwrite + quit,先保存再关闭

 

===========================================================

导航以及跳转

===========================================================

 

Vim中的移动可以分为两类:导航以及跳转。

导航是小范围的移动;而跳转是大范围且并不确定执行后光标位置的移动。

Vim帮助文档里面将这类操作叫做motion操作。可查看帮助:

 

:help motion

  

导航

===========================================================

h, j, k, l, w, e, b, f, F, t, ,, ;

 

h, j, k, l上下左右四个方向移动

wword,以单词为单位正向移动,光标停在第一个字母上

eend,以单词为单位正向移动,光标停在最后一个字母上

bback,以单词为单位反向移动,光标停在第一个字母上

f + keyforward,移动到该行的下一个出现字符(key)的位置,

然后可以按下 ; 正向循环移动或者 , 反向循环移动

F + key用法与 f 相同,只不过是反向移动

ttill,效果与 f 类似,只不过 f 会将光标放置在目标字符上,

而 t 是将光标放置在目标字符的前一个字符上。

 

跳转

===========================================================

^, 0, $, %, [[, ]], gg, G, L, H, M, m, ', :[number]

 

^移动到本行第一个非空白字符处

0移动到行首(参考命令 I)

$移动到行尾(参考命令 A)

%在本行中正向查找或调整的配对字符(([{}])),

]]组合键,在文本中t跳转到下一个位于行首的'{'字符

[[类似于 ]],只不过是反向

gg跳转到整个文本的第一行

G跳转到整个文本的最后一行

Hhigh,跳转到当前屏幕显示文本范围内的第一行

Llow,跳转到当前屏幕显示文本范围内的最后一行

Mmiddle,将光标移动到屏幕显示文本范围的中间

m组合键,与 Vim 的寄存器有关(请看文档 :help registers)

m - mark,输入 m 之后再输入寄存器序号(a - z, A - Z),

就将当前光标位置信息放到寄存器中保持,相当于设置了书签。

'组合键,后跟寄存器序号,跳转到 m 设置的书签处

:[number]是命令模式下的用法,跳转到指定行,number 为行数

 

翻页

===========================================================

Ctrl + f, Ctrl + b, Ctrl + d, Ctrl + u

 

Ctrl + fforward,相当于 PageDown

Ctrl + bback,相当于 PageUp

Ctrl + ddown,正向翻半页

Ctrl + uup,反向翻半页

 

===========================================================

编辑操作

===========================================================

 

删除

===========================================================

x, d + [跳转/移动]

 

x剪切,内容保存在寄存器 x 中

d + 跳转/移动delete,组合键,删除并经内容保存到寄存器 x 中

dwdelete word,正向删除单词

d0反向删除到行首

d$正向删除到行尾

dd删除整行

d^删除之本行第一个非空白字符处

 

移动

===========================================================

x, y, yy, Y, p, P, "+y, "+p

 

移动文本其实是一个组合的操作:

首先选择要移动的文本;

然后剪切或者复制该文本;

最后粘帖该文本。

 

x剪切

yyank,复制,内容保存在寄存器 x 中

Y, yy复制光标所在行

ppaste,将寄存器 x 中保存的文本取出并粘贴在光标位置之后

P同 p, 只是粘贴在光标位置之前

" + y复制文本到系统复制粘帖板(注意不是 Vim 的寄存器 x 了)

" + p是从系统复制粘帖板取出文本进行粘帖操作。

 

撤销重做

===========================================================

u, Ctrl + r

 

uundo,撤销

Ctrl + rredo,重做

 

查找

===========================================================

/ + key

 

/后跟要查找的字符串,然后输入 n 循环查找。查找字符串支持正则匹配式。

 

 

posted @ 2011-03-23 16:18  飘飘白云  阅读(479)  评论(0编辑  收藏  举报
本博客遵循 Creative Commons License “署名-非商业用途-保持一致”创作共用协议。 与我联系