Linux vim 梳理

概況

vim(參考資料)的三種模式:命令模式(Command mode),輸入模式(Insert mode),底線命令模式(Last line mode)。html

命令模式

啓動 vim,便進入了命令模式,此狀態下敲擊鍵盤動做會被 vim 識別爲命令linux

經常使用命令:vim

i 切換到輸入模式
 x 刪除光標所在處的字符
 u 撤銷命令
 : 切換到底線命令模式,以在最底一行輸入命令
複製代碼
輸入模式

在命令模式下按下 i 就進入了輸入模式,這個時候,鍵盤上除了 Esc 這個按鍵以外,其餘的按鍵均可以視做爲通常的輸入按鈕bash

底線命令模式

在命令模式下按下:(英文冒號)就進入了底線命令模式,按 ESC 鍵可隨時退出底線命令模式。spa

基本命令(已經省略了冒號):code

q 退出程序
w 保存文件
複製代碼

按鍵說明

通常模式可用的光標移動、複製粘貼、搜索替換等
移動光標的方法
h 或 向左箭頭鍵(←) 光標向左移動一個字符
j 或 向下箭頭鍵(↓) 光標向下移動一個字符
k 或 向上箭頭鍵(↑) 光標向上移動一個字符
l 或 向右箭頭鍵(→) 光標向右移動一個字符
"nj" 或 "n↓" n 表示『數字』,例如 30, 則向下移動 30 行
[Ctrl] + [f] 屏幕『向下』移動一頁
[Ctrl] + [b] 屏幕『向上』移動一頁
[Ctrl] + [d] 屏幕『向下』移動半頁
[Ctrl] + [u] 屏幕『向上』移動半頁
n n 表示『數字』,如 6 光標會向右移動 6 個字符距離
0 移動到這一行的最前面字符處 (經常使用)
$ 移動到這一行的最後面字符處(經常使用)
H 光標移動到這個屏幕的最上方那一行的第一個字符
M 光標移動到這個屏幕的中央那一行的第一個字符
L 光標移動到這個屏幕的最下方那一行的第一個字符
G 移動到這個檔案的最後一行(經常使用)
nG n 爲數字,移動到這個檔案的第 n 行(可配合 :set nu)
gg 移動到這個檔案的第一行 (經常使用)
n n 爲數字。光標向下移動 n 行(經常使用)

搜索替換
/word 向光標之下尋找一個名稱爲 word 的字符串(經常使用)
?word 向光標之上尋找一個名稱爲 word 的字符串(經常使用)
n 重複前一個搜尋的動做
:1,$s/word1/word2/g 從第一行到最後一行尋找 word1 字符串,並將該字符串取代爲 word2 !(經常使用)
:1,$s/word1/word2/gc 在取代前顯示提示字符給用戶確認 (confirm) 是否須要取代!(經常使用)

刪除、複製與貼上
x, X x 爲向後刪除一個字符, X 爲向前刪除一個字符
nx n 爲數字,連續向後刪除 n 個字符
dd 刪除遊標所在的那一整行(經常使用)
ndd n 爲數字,刪除光標所在的向下 n 行(經常使用)
d1G 刪除光標所在到第一行的全部數據
dG 刪除光標所在到最後一行的全部數據
d$ 刪除遊標所在處,到該行的最後一個字符
d0 刪除遊標所在處,到該行的最前面一個字符
yy 複製遊標所在的那一行(經常使用)
nyy n 爲數字,複製光標所在的向下 n 行(經常使用)
y1G 複製遊標所在行到第一行的全部數據
yG 複製遊標所在行到最後一行的全部數據
y0 複製光標所在的那個字符到該行行首的全部數據
y$ 複製光標所在的那個字符到該行行尾的全部數據
p, P p 爲將已複製的數據在光標下一行貼上,P 則爲貼在遊標上一行
J 將光標所在行與下一行的數據結合成同一行
u 復原前一個動做,即回撤(經常使用)
. 重複前一個動做(經常使用)
通常模式切換到編輯模式的可用的按鈕說明
進入輸入或取代的編輯模式
i I i 爲『從目前光標所在處輸入』, I 爲『在目前所在行的第一個非空格符處開始輸入』 (經常使用)
a A a 爲『從目前光標所在的下一個字符處開始輸入』, A 爲『從光標所在行的最後一個字符處開始輸入』(經常使用)
a A o 爲『在目前光標所在的下一行處輸入新的一行』; O 爲在目前光標所在處的上一行輸入新的一行(經常使用)
[Esc] 退出編輯模式,回到通常模式中(經常使用)
通常模式切換到指令行模式的可用的按鈕說明
指令行的儲存、離開等指令
:w 將編輯的數據寫入硬盤檔案中(經常使用)
:w! 若文件屬性爲『只讀』時,強制寫入該檔案
:q 離開 vi (經常使用)
:q! 若曾修改過檔案,又不想儲存,使用 ! 爲強制離開不儲存檔案
:wq 儲存後離開,若爲 :wq! 則爲強制儲存後離開 (經常使用)
ZZ 若檔案沒有更動,則不儲存離開,若檔案已經被更動過,則儲存後離開
:w [filename] 將編輯的數據儲存成另外一個檔案(相似另存新檔)

vim 環境的變動
:set nu 顯示行號
:set nonu 與 set nu 相反,爲取消行號
相關文章
相關標籤/搜索