红联Linux门户
Linux帮助

快速学会vim的方法

发布时间:2014-03-21 11:16:11来源:红联作者:tioced
一。游标移动(当然是在普通模式下,不明白?多按几次Esc就是了。)
左h 右l,上j 下k。(对了就是键盘上右手放的基本位置。)
Ctrl+f 向前(下)翻页(f=forward)
Ctrl+b 向后(上)翻页(b=backward)
0 是数目字 0 而不是英文字母 o。或是 Home 键,移至行首,(含空白字)。
$ 移至行尾,或 End 键。要 Shift 键。(用不太正确的说法简单记忆$就是行尾的意思,记住这个 对以后有用)
G 移至档尾(全文最后一行的第一个非空字元处)(我就假象g=go,大写g就是go大了,go到最后)
gg 移至档首(全文第一行之第一个非空白字元处)
:n 移至第 n 行行首。或 nG。(vim里面可以用数字表示第几或者执行几次命令,大概就这个意思了) n| 移至第 n 个字元(栏)处。注意,要用 Shift 键。n 是从头起算的。
好了,平时最常用的移动命令就这些了。什么?还不满足?请立刻离开本文档,这是给想在5分钟内快速开始使用vim简单编辑文档用的人看的。

二。插入(开始编辑了)
i 在游标所在字元前开始输入文字(insert)。
a 在游标所在字元后开始输入文字(append)。
o 在游标所在行下开一新行来输入文字(open)。
够了,3个命令已经让我头大了。

三。删除(还是在普通模式下)
x 删除游标所在处之字元,在中文指一个中文字。
dd 删除一整行(delete line)。(注意括号里的英文单词,他们可以帮助记忆)
dG 删至档尾。(还记得么G=go大了)
Ok,还是3个命令,其实只要x也能用阿,一直按住试一下:)。

四。取代和还原
r (replace)取代游标所在处之字元。(实验一下用键盘输入":r !date")
u 这个太重要了,就是 undo,传统的 vi 仅支援一次 undo,Vim 及 elvis 就不只了,Vim 几乎是 没有限制的。
U 在游标没离开本行之前,回?所有编辑动作。
Crtl+r 这个也是狠重要,就是 redo 键。

五。加上数字
原文狠有意思,摘录如下:
喔!骚到 Vim 的痒处了,这是 Vim 一个非常骚包的功能,只此一家别无分号(当然同源的 ed,sed 等不在此限)。就是您可以在大部份的指令前加上数目字,代表要处理几次的意思。以下用实例来说明比较清楚。
5dd 删除游标所在处(含)起算以下五行内容。妙吧!
5i A 然后按 Ecs,插入五个 A。中文也可以!
5G 游标移至第五行,是从档首开始起算。和 :5 作用相同。

六。复制(yank)
yy 复?游标所在行整行。或大写一个 Y。(对照dd)
y$ 复?至行尾。含游标所在处字元。
yG 复?至档尾。
p (paste)小写 p 代表贴至游标后(下)。
. 是英文句点.只要是编辑动作(移动游标不算,冒号命令也不算)都可以按英文句点来重复,要重 复几次都可以。

七。搜寻和替换
/ 在 c-mode 的情形下(按下:就可以了),按 / 就会在左下方出现一个 /,然后键入您要寻找的字 串,按个 Enter 就会开始找。? 和 / 相同,只是 / 是向前(下)找, ? 则是向后( 上)找。
n 继续寻找。
N 继续寻找(反向)。
替换的命令格式为
:[range]s/pattern/string/[c,e,g,i]
range 指的是范围,1,7 指从第一行至第七行,1,$ 指从第一行至最后一行,也就是整篇文章 ,也可以 % 代表。还记得吗? % 是目前编辑的文章,# 是前一次编辑的文章。
pattern 就是要被替换掉的字串,可以用 regexp 来表示。
string 将 pattern 由 string 所取代。
c confirm,每次替换前会询问。
e 不显示 error。
g globe,不询问,整行替换。
i ignore 不分大小写。
g 大概都是要加的,否则只会替换每一行的第一个符合字串。可以合起来用,如 cgi,表示不分大小 写,整行替换,替换前要询问是否替换。
[实例] :%s/Edwin/Edward/g
这样整篇文章的 Edwin 就会替换成 Edward。
唉这个替换可真麻烦,不过如果你暂时用不着就别管他了。嘿嘿。

八。标记(书签)功能
这个有用哦。
mx x 代表 26 个小写英文字母,这样游标所在处就会被 mark。
`x 回到书?原设定位置。` 是 backward quote,就是 Tab 键上面那一个。
1x 回到书?设定行行首。1 是 forward quote,是 Enter 键隔壁那一个。
这?举个简单的子,请随便开一个现成的档案,把游标移到任一个位置,然后按 ma 做个 mark,再按大写 G 移到档尾,然后按 1a 看现在什么地方?
下面移动光标到任意位置,实验一下y`a,然后换个地方p一下。呵呵如何,不用鼠标来拖动也可以拷贝粘贴一个块了吧。
好了就这么多,5分钟过去了,最后就是打开文件用:e 。
:q 如本文有修改而没存档,会警告,且无法离开。(quit)
:q! ?弃所有修改,强迫离开。
:wq 存档后离开。纵使档案未曾修改也是会再存一次档。
:x 也是存档后离开,但如果档案没有修改,则不会做存档的动作。
ZZ 和 :x 完全一样,随您高兴用哪一个。
:w 档名 另存他档。不加档名就是写入原档。
文章评论

共有 8 条评论

  1. honglianqxw123 于 2014-05-10 08:55:21发表:

    谢谢,有时间会学的。

  2. xnjd12 于 2014-05-05 21:50:05发表:

    学习中

  3. jiangjunlin 于 2014-04-27 08:41:24发表:

    我很少写顶的,还是忍不住顶!

  4. qd_leo 于 2014-04-04 12:42:07发表:

    一。游标移动(当然是在普通模式下,不明白?多按几次Esc就是了。)

  5. qd_leo 于 2014-04-04 12:38:25发表:

    在学习。。。。

  6. qd_leo 于 2014-04-04 12:38:01发表:

    给力 此贴不能沉

  7. huiteng 于 2014-03-22 08:39:39发表:

    严重支持

  8. XCalvin 于 2014-03-21 19:57:51发表:

    我擦!这个要mark一下!谢谢楼主了!