vi/vim經常使用命令vim
命令模式spa |
光標移動命令行 |
h或 向左方向鍵orm |
光標向左移動一個字符ci |
j或 向下方向鍵文檔 |
光標向下移動一個字符字符串 |
k或 向上方向鍵table |
光標向上移動一個字符form |
l或 向右方向鍵file |
光標向右移動一個字符 |
Ctrl+f |
屏幕向前翻一頁(經常使用) |
Ctrl+b |
屏幕向後翻一頁(經常使用) |
Ctrl+d |
屏幕向前翻半頁 |
Ctrl+u |
屏幕向前翻半頁 |
+ |
光標移動到非空格符的下一列 |
- |
光標移動到非空格符的上一列 |
n<space>
|
按下數字後再按空格鍵,光標會向右移動這一行的n個字符。例如20<space>,則光標會向右移動20個字符 |
0(HOME) |
(是數字0)動到這一行的第一個字符處(經常使用) |
$(END) |
移動到這一行的最後一個字符處(經常使用) |
H |
光標移動到這個屏幕最上方的那一行 |
M |
光標移動到這個屏幕中央的那一行 |
L |
光標移動到這個屏幕最下方的那一行 |
G |
光標移動到這個屏幕最後一行 |
nG |
移動到這個文件的第n行。例如20G,則會移動到這個文件的第20行(可配合:set nu) |
n<Enter> |
光標向下移動n行(經常使用) |
命令模式 |
查找與替換 |
/word |
在光標以後查找一個名爲word的字符串(經常使用) |
?word |
在光標以前查找一個名爲word的字符串 |
:n1,n2s/word1/word2/g |
在第n1與n2行之間查找word1這個字符串,並將該字符串替換爲word2(經常使用) |
:1,$s/ word1/word2/g |
在第一行與最後一行之間查找word1這個字符串,並將該字符串替換爲word2(經常使用) |
:1,$s/ word1/word2/gc |
在第一行與最後一行之間查找word1這個字符串,並將該字符串替換爲word2,且在替換前顯示提示符讓用戶確認(conform)(經常使用) |
通常模式 |
刪除、複製與粘貼 |
x,X |
X爲向後刪除一個字符,X爲向前刪除一個字符(經常使用) |
Nx |
向後刪除n個字符 |
Dd |
刪除光標所在的那一整行(經常使用) |
Ndd |
刪除光標所在列的向下n列,例如,20dd則事刪除20列(經常使用) |
d1G |
刪除光標所在行到第一行的全部數據 |
dG |
刪除光標所在列到最後一行的全部數據 |
Yy |
複製光標所在行(經常使用) |
Nyy |
複製光標所在列的向下n列,例如,20yy則是複製20列(經常使用) |
y1G |
複製光標所在列到第一列的全部數據 |
yG |
複製光標所在列到最後一列的全部數據 |
p,P |
p爲複製的數據粘貼在光標下一列,P則爲粘貼在光標上一列(經常使用) |
J |
將光標所在列與下一列的數據結合成一列 |
U |
恢復前一個動做(undo) |
編輯模式 |
|
i,I |
插入:在當前光標所在處插入輸入的文字,已存在 |
a,A |
添加:由當前光標所在處的下一個字符開始輸入,已存在的字符會向後退(經常使用) |
o,O |
插入新的一行:從光標所在行的下一行行首開始輸入字符(經常使用) |
r,R |
替換:r會替換光標所指的那一個字符;R會一直替換光標所指的文字,直到按下Esc爲止(經常使用) |
Esc |
退出編輯模式,回到通常模式(經常使用) |
命令行模式 |
|
:w |
將編輯的數據寫入硬盤文件中(經常使用) |
:w! |
若文件屬性爲只讀,強制寫入該文件 |
:q |
退出vi(經常使用) |
:q! |
若曾修改過文件,又不想保存,使用!爲強制退出不保存文件 |
:wq |
保存後退出,若爲:wq!,則爲強制保存後退出(經常使用) |
:w[filename] |
將編輯數據保存爲另外一個文件(相似另存新文檔) |
:r[filename] |
在編輯的數據中,讀入另外一個文件的數據。即將filename這個文件內容加到光標所在行的後面 |
:set nu |
顯示行號,設定以後,會在每一行的前面顯示該行的行號 |
:set nonu |
與ser nu相反,爲取消行號 |
:set nohlsearch |
可取消高亮,可編輯/etc/vimrc來編輯取消全部高亮 |
n1,n2 w[filename] |
將n1到n2的內容保存爲filename這個文件 |