vi 學習命令記錄
普通模式下,光標位移
1、h 或 向左方向鍵 :光標向左移動一個字符
2、j 或 向下方向鍵 : 光標向下移動一個字符
3、k 或 向上方向鍵 : 光標向上移動一個字符
4、l 或 向右方向鍵 : 光標向右移動一個字符
5、+ : 光標移動到非空格符的下一列
6、- : 光標移動到非空格符的上一列
7、n<space> : 按下數字后再按空格鍵,光標會向右移動這一行的n個字符,如果該行字符不夠則繼續下一行
8、[ctrl] + [f] : 屏幕向前移動一頁
9、[ctrl] + [b] : 屏幕向后移動一頁
10、[ctrl] + [d] :屏幕向前移動半頁
11、[ctrl] + [u] : 屏幕向后移動半頁
12、0 : 這是數字0,移動到這一行的最前面,不管光標下是否有字符
13、^ : 這是數字6上方的符號,移動到這一行的最前面字符處,光標下有字符
14、$ : 移動到這一行的最后字符處
15、H : 大寫H,光標移動到當前屏幕的最上方那一行
16、M: 大寫M,光標移動到當前屏幕的中央那一行
17、L: 大寫L,光標移動到當前屏幕的最下方那一樣
18、G: 移動到文件的最后一行
19、nG: n為數字,表示移動到這個文件的第n行,配合set nu使用,要不然看不清楚喔
20、n<Enter>:n為數字,<Enter>為回車鍵,表示光標向下移動n行
普通模式下,搜索與替換
1、/word : 向光標后插入一個word,配合n使用的話,會往下搜索
2、?word : 向光標后插入一個word,配合n使用的話,會往上搜索
3、:n1,n2s/word1/word2/g : n1,n2表示行數,/word1,表示查找的字符串,/word2,表示替換的字符串,g為全局,該命令的作用就是在第n1行到第n2行之間,查找word1,并將該字符串替換為word2
4、:1,$s/word1/word2/gc : 從第一行到最后一行尋找word1字符串,并將該字符串替換為word2,在替換前顯示提示字符給使用者確認是否要替換。
普通模式下,刪除、復制、粘貼
1、x, X : x刪除光標下的字符,X刪除光標前的一個字符
2、nX : n為數字,刪除光標所在位置(包括所在位置)之后的n-1個字符
3、dd :刪除光標所在的一整行
4、ndd : n為數字,刪除光標所在行(包括所在行)向下的n-1行
5、d1G: 中間的為數字1,刪除光標所在行到第一行之間的數據,d為刪除命令,1G表示定位到第一行,等同dgg
6、dG : 刪除光標所在行到最后一行的所有數據
7、dgg : 刪除光標所在行到第一行之間的數據,d為刪除命令,gg為定位到第一行
8、yy : 復制光標所在的一行
9、nyy :n為數字,復制光標所在行(包括所在行)以下的n-1行數據
10、y1G :等同于ygg,1為數字1,表示復制光標所在行到第一行之間的所有數據
11、yG : 復制光標所在行到最后一行之間的所有數據
12、p, P : p 將復制的數據粘貼在光標所在行的后面,如果復制數據有換行符的話,那就在下一行粘貼,P跟p的粘貼位置相反
13、J : 大寫J,將光標所在行與下一行的數據結合成一行
14、cc : 刪除一整行,然后進入編輯模式
15、u : 還原前一個動作
編輯模式
1、i, I : i表示在光標前進入插入模式,原有的文字會往后退。I,會在光標所在行的第一個字符前進入插入模式。
2、a,A : a表示在光標所在的下一個字符開始插入字符。A,會在光標所在行的最后一個字符后進入插入模式。
3、o, O :插入新的一行,o表示在光標所在行的下一行開始輸入字符,O表示在光標所在行的上一行開始輸入字符
4、r,R : 替換,r會替換光標下的那一個字符,R會一直替換輸入的字符,知道按下ESC鍵為止
5、Esc: 退出編輯模式,回到普通模式中
命令模式:
1、:w : 將文件寫入硬盤中
2、:w! : 若文件為只讀是,強制寫入
3、:q : 離開vi
4、:q! : 若修改過文件,但不想保存,使用!強制離開,不儲存文件
5、:wq : 保存后退出,若為:wq!表示強制保存后退出
6、:e! : 將文件還原到最原始的狀態
7、ZZ : 如果文件沒有修改,則表示直接退出,如果文件已經修改過,則保存后離開
8、:w [filename] :將文件另存為另外的文件名,類似于另存為
9、:r [filename] :在編輯文件的時候,讀入另外一個文件的數據,將filename的內容讀取到光標所在行后面
10、:n1,n2 w [filename] : n1,n2為數字,表示行數,表示將n1到n2行的內容保存成filename這個文件
11、:! command 暫時離開vi到命令模式下執行comman的顯示結果