一。從命令到編輯模式
a :当前单词后面插入Append
i :当前位置插入Insert
o :当前行下新开一行插入Open new line
A :当前行尾插入Append
I :当前行首插入Insert
O :当前行上新开一行插入Open new line
比較常用就是i,a,o,I,A,O了,將來多試幾次就好了,就很熟悉了。
二。從編輯到命令
ESC :
ctrl+[ :能起到一样的效果,手指短的同学可以用它代替esc。
三。命令模式中的其他命令
在命令模式中的按鍵就很多了,這些介绍参加高速编程基本要用到的,需要练熟。
在vi命令模式裡面,有的按鍵按完後他還是在命令模式,有的改個字元或copy/paste後
又回到命令模式,有的就一去不回頭變成文字編輯模式了。
有些按鍵會把你原本想改的內容做特殊的定位,例如要改個word,也會把你帶離命令模式
文件
:q  離開vi Quit
:e xxxx  編輯xxxx Edit
:w  存檔 Write
:w xxxx  另存檔案xxxx
:q!  不存檔強迫離開
:w!  強迫存檔(对于只读文件不加感叹号是不能写入的)
:wq  存檔與離開 Write ‘n Quit
:bd 关闭当前窗口
游標移動
h,j,k,l  往左,往下,往上,往右 这四个不是英文单词的缩写,而是为了让手指能够更快的控制光标的移动
0  到行首
$  到行尾
^  到這行的第一個非空白单词
w,W  到下個单词, 到下個非空白的单词forWord
b,B  回上個单词, 到上個非空白的单词Backword
e,E  到這個单词尾, 到下個非空白的单词尾End
Ctrl-F ,Ctrl-B 往後一頁,往前一頁
G  到文件尾
:n  到第n行 (所以到文件頭就是:1)
Ctrl-G  顯示当前在第幾行
J  将下面行加到当前行Join
搜尋與取代
/
/pattern 往下尋找pattern,要注意的是几个特殊的字符必须在前面加\。这几个字符为:.*[]^%/\?~$
?pattern        往上尋找pattern
n  再往下尋找
N  再往上尋找
:s/patrn/str/cgi搜尋patrn取代str
                其中:跟s間必需指定範圍(range)沒設範圍就是游標這行 
                1,10 表示 1-10行
                %    表示整篇
                最後cgi
                c 表示confirm尋問
                g 表示global全部
                i 表示ignore不分大小寫
常用字元字串處理
cc  改變整行Change
dd  剪切整行Delet
yy  复制整行Yank
p,P  粘贴(paste) 你最近剪切或复制的Put
cw  改變一個字Change Word
d$  砍到行尾Delete $
ye  拷貝到這個字尾Yank e
r,R  取代一個字元, 取代整行Replace
u,U  撤销最後修改,撤销整行Undo
x,X  砍一個字元, 往回砍個字元(等於按backspace)
重複的處理
.   重複剛剛的命令或輸入
以上命令很多是可以自己组合的,
有个普遍的规律是单个命令重复两次就是针对整行,后加w就是针对一个单词,中间夹一个数字就是重复的次数
比如c5w改变5个单词,d3d删除三行
這些試試看
ce, 3x, 5dd, 10w, d0, y$, 5G
indentation
>>  往右一個indent
<<  往左一個indent
==  自动缩进当前行
=G  将当前行及后面所有行都自动缩进
gg=G  先移到文件首,然后。。。嘿嘿,全文缩进
C-w j k h l 移到下 上 左 右 窗去
原文地址:http://www.cnblogs.com/code-painter/p/3844696.html