用vi 也很久了,但是一些常用的命令老是记不住,特整理一下,把自己要用的记录下来。


(一)按 Esc 键后的命令

i  :在光标所在字符前插入字符

a  :从光标所在字符后插入字符(按a后光标会跳到下一个字符上并从下一字符前开始插入)

s  :删除光标所在字符,并从此位置开始插入字符

x  :删除光标所在字符


a  :从光标所在位置后面开始添加内容,光标后的内容随新增字符向后移动。
A  :从光标所在列最后面的地方开始添加内容。 (到行尾并可编辑)


i  :从光标所在位置前面开始插入内容,光标后的内容随新增内容向后移动。
I  : 从光标所在列的第一个非空白字符前面开始插入内容。 (到行首并可编辑)


0  :光标到行首

$ 就是 (shift+4):光标到行尾


dd :删除光标所在行

ndd :从光标所在行开始往下删除n行


o  :在光标所在列下新增一列并进入输入模式。
O  :在光标所在列上方新增一列并进入输入模式。


h  :把光标向左移动

j  :把光标向下移动

k  :把光标向上移动

l  :把光标向右移动


H(shift+h):返回首行

G(shift+g):到最末行

Ctrl+g    :查看光标所在行的时代信息


nyy,然后再把光标移到某行,p :复制n行,并把内容粘贴到光标所在行的下面

nyy,然后再把光标移到某行,P(shift+p) :复制n行,并把内容粘贴到光标所在行的上面

(n 为0时则相当于yy,即复制一行;

复制时,从光标所在的行开始算起,即光标所在的行即为开始复制的第一行)


不想费劲看多少行或复制大量行时,可以使用标签来替代

光标移到起始行,输入ma
光标移到结束行,输入mb
光标移到粘贴行,输入mc

然后键入:,在命令行模式下:'a,'b co 'c

(就把从起始行a开始到结束行b这部分内容复制到了c标识的后面,

把co 改成m 则是移动,即剪切)


(二)

按 Esc 键后,然后再键入 : 进入命令行模式

set nu   :显示行号

wq       :保存并退出

q!       :不保存并退出

nd       :删除第n行

n,md     :删除第n至m行

n,m co k :复制第n行到第m行的内容,并粘贴到第k行的后面

a,b  m k :把第n行到第m行的内容剪切到第k行的后面

n        :直接跳到第n行处


u        :撤消上一个编辑操作

ctrl+r   :还原被撤消的编辑操作。


(三)

按 Esc 键后,然后再键入 / 进入查找模式

如:  /abc   查找文章中abc的位置

n  :向下查找

N  :向上查找


完全的可参考:

http://hi.baidu.com/chenlang1988/item/7a432f05a3fdc0c891571844