VIM的常用快捷方式(盡量簡潔,刪去能組合實現的且不易記的)
vi可以分為三種狀態,分別是一般模式、編輯模式和命令行模式
1一般模式:
以vi打開一個文件就直接進入一般模式了(這是默認的模式)。在這個模式中, 你可以使用上下左右按鍵來移動游標,你可以使用刪除字元或刪除整行來處理文件內容, 也可以使用複製、粘貼來處理你的文件數據。
2編輯模式:
在一般模式中可以進行刪除、複製、粘貼等的操作,但是卻無法編輯文件的內容,只有當到你按下【i, I, o, O, a, A, r, R】等任何一個字母之後才會進入編輯模式。這時候螢幕的左下方會出現【INSERT或 REPLACE】的字樣,此時才可以進行編輯。而如果要回到一般模式時, 則必須要按下【Esc】即可退出編輯模式。
3命令行模式:
輸入【 : / ? 】三個中的任何一個,就可以將游標移動到最底下那一行。在這個模式中, 可以提供查找、讀取、存檔、替換字元、離開vi、顯示行號等的動作則是在此模式中完成的!
4進入正題,常用快捷鍵:
撤銷:u
恢復撤銷:Ctrl + r
【h、j、k、l】,分別控制游標左、下、上、右移一格
【n<space>】游標向右移動n個字元
【G】 移動到這個文件的最後一行
【nG】移動到這個文件的第n行(可配合:set nu)
【gg】 移動到這個文件的第一行,相當於1G
【n<Enter>】游標向下移動n行
查找與替換
【/word】 向游標向下尋找一個名稱為word的字元串
【?word】 向游標向上尋找一個名稱為word的字元串
【:noh】取消搜索產生的高亮單詞
【n】 代表重複前一個查找的動作
【N】 與n剛好相反,為【反向】進行行前一個查找動作
【:n1,n2s/word1/word2/g】 n1與n2為數字,在第n1與n2行之間查找word1 這個字元串,並將該字元串替換為word2
【:1,$s/word1/word2/g】 從第一行到最後一行查找word1字元串,並將該字元串替換為word2(相當於不提示全換了,下面的相當於一個一個提示一個一個換)
【:1,$s/word1/word2/gc】 從第一行到最後一行查找word1字元串,並將該字元串替換為word2 ,且在替換前提示用戶確認是否進行替換
刪除、複製與粘貼
【x】 為向後刪除一個字元 (相當於【del】鍵)
【X】 為向前刪除一個字元(相當於【backspace】鍵)
【nx】 連續向後刪除n個字元
【dd】 刪除游標所在行
【ndd】 刪除游標所在的向下n行
【d1G】 刪除游標所在行到第一行的所有數據
【dG】 刪除游標所在到最後一行的所有數據
【d$】 刪除游標所在處,到該行的最後一個字元
【d0】 刪除游標所在處,到該行的最前一個字元
【yy】 複製游標所在的那一行
【y1G】 複製游標所在行到第一行的所有數據
【yG】 複製游標所在行到最後一行的所有數據
【p】將已複製的數據在游標下一行粘貼上
【u】 恢復前一個操作
【Ctrl+r】撤銷恢復
【.】 是重複前一個操作
一般模式切換到編輯模式的可用的按鈕說明
【i, I】 進入編輯模式:
【:w】 保存編輯的內容
【:q】 離開vi
【:q!】 不想保存修改強制離開
【:wq】 保存後離開
【:w filename】 將編輯的數據保存成另一個文件(類似另存)
【:r filename】 在編輯的數據中,讀入另一個文件的數據。即將【filename】 這個文件的內容加到游標所在行後面。
【:! command】暫時離開vi 到命令行模式下執行command的顯示結果!例如 【:! ls /home】即可在 vi 當中察看/home底下以ls輸出的文件資訊!
【:set nu】 顯示行號
【:set nonu】 與 set nu 相反,為取消行
【v】字元選擇,會將游標經過的地方反白選擇【y】 將反白的地方複製
【d】 將反白的地方刪除
多窗口功能
有兩個需要對照著看的文件
【:sp filename】開啟一個新窗口,如果有加 filename, 表示在新窗口開啟一個新文件,否則表示兩個窗口為同一個文件內容(同步顯示)。
【ctrl+w+j】
【ctrl+w+↓】按鍵的按法是:先按下 【ctrl】 不放, 再按下 w 後放開所有的按鍵,然後再按下 j (或向下箭頭鍵),則游標可移動到下方的窗口。
【ctrl+w+k】
【ctrl+w+↑】同上,不過游標移動到上面的窗口。
Page Up/Page Down,上/下翻頁