红联Linux门户
Linux帮助

5分钟学vim--我的vim笔记

发布时间:2006-12-03 20:08:02来源:红联作者:ahjohn328
看了李果正的《大家来学vim》觉得非常好。可是浮躁的我快速看完了还是没记住多少命令,网上有总结的命令也有个命令键盘图,但是觉得还是不爽,于是自己做个《大家来学vim》的笔记,主要特点是要用最少的命令满足一般文档编辑的使用。列出命令的实际英文单词,方便记忆。
言归正传,Here we go:

一。游标移动(当然是在普通模式下,不明白?多按几次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 ?上面那一?。
'x 回到???定行行首。' 是 forward quote,是 Enter ?隔壁那一?。
??????的子,??便?一??成的?案,把游?移到任一?位置,然後按 ma 做? mark,再按大? G 移到?尾,然後按 'a 看?在在什?地方?
下面移动光标到任意位置,实验一下y`a,然后换个地方p一下。呵呵如何,不用鼠标来拖动也可以拷贝粘贴一个块了吧。

好了就这么多,5分钟过去了,最后就是打开文件用:e 。下面开始去google更高级的vim教程吧。
:q 如本文有修改而?存?,?警告,且?法??。(quit)
:q! ??所有修改,?迫??。
:wq 存?後??。?使?案未曾修改也是?再存一次?。
:x 也是存?後??,但如果?案?有修改,?不?做存?的?作。
ZZ 和 :x 完全一?,?您高?用哪一?。
:w ?名 另存他?。不加?名就是?入原?。(write)
文章评论

共有 4 条评论

  1. bazinga 于 2014-02-25 20:42:50发表:

    有用!~

  2. lgms2008 于 2006-12-04 00:47:12发表:

    帮顶了。

  3. Community 于 2006-12-03 21:09:24发表:

    不管怎么样都要支持,虽然还不学习

  4. hfh08 于 2006-12-03 20:57:13发表:

    强烈支持楼主
    感谢分享