1. 啟動vim:vim 文件名(如果是不存在的,則新建)
2. 打開文件:vim 文件名(文件必須存在)
3. vim的模式
- 正常模式(按Esc或Ctrl+[進入) 左下角顯示文件名或為空
以vi打開一個文件就直接進入一般模式了(這是默認的模式)。在這個模式中, 你可以使用上下左右按鍵來移動光標,你可以使用刪除字符或刪除整行來處理文件內容,也可以使用復制、粘貼來處理你的文件數據。
- 插入模式(按i鍵進入) 左下角顯示--INSERT—
在一般模式中可以進行刪除、復制、粘貼等的操作,但是卻無法編輯文件的內容,只有當到你按下【i, I, o, O, a, A, r, R】等任何一個字母之后才會進入編輯模式。這時候屏幕的左下方會出現【INSERT或 REPLACE】的字樣,此時才可以進行編輯。而如果要回到一般模式時, 則必須要按下【Esc】即可退出編輯模式。
- 可視模式(不知道如何進入) 左下角顯示--VISUAL—
- 命令行控制界面(shift+:)
輸入【 : / ? 】三個中的任何一個,就可以將光標移動到最底下那一行。在這個模式中,可以提供查找、讀取、存盤、替換字符、離開vi、顯示行號等的動作則是在此模式中完成的!
4. 插入命令
i 在當前位置生前插入
I 在當前行首插入
a 在當前位置后插入
A 在當前行尾插入
o 在當前行之后插入一行
O 在當前行之前插入一行
【r, R】 進入取代模式:
r 只會取代光標所在的那一個字符一次
R 會一直取代光標所在的文字,直到按下 ESC 為止;
5. 移動命令
h 左移一個字符
l 右移一個字符,這個命令很少用,一般用w代替。
k 上移一個字符
j 下移一個字符
w 光標跳到下個字的開頭
e 光標跳到下個字的字尾
H 光標移動到這個屏幕的最上方那一行的第一個字符
M 光標移動到這個屏幕的中間那一行的第一個字符
L 光標移動到這個屏幕的最下方那一行的第一個字符
G 移動到這個文件的最后一行
nG 移動到這個文件的第n行(可配合:set nu)
gg 移動到這個文件的第一行,相當於1G
End 移動到這一行的最后面字符處:$,我測試好像不行
Home 移動到這一行的最前面字符處:0數字,但不能用數字小鍵盤上的數字
Ctrl + e 向下滾動一行
Ctrl + y 向上滾動一行
Ctrl + d 向下滾動半屏
Ctrl + u 向上滾動半屏
Ctrl + f 向下滾動一屏
Ctrl + b 向上滾動一屏
n<space> 光標向右移動n個字符
n<Enter> 光標向下移動n行
6. 撤銷和重做
u 撤銷(Undo)
U 撤銷對整行的操作
trl + r 重做(Redo),即撤銷的撤銷。
7. 刪除命令
x 刪除當前字符
X 刪除當前字符的前一個字符。X=dh
nx 連續向后刪除n個字符
3x 刪除當前光標開始向后三個字符
D 刪除當前字符至行尾。D=d$
dl 刪除當前字符, dl=x
dh 刪除前一個字符
dd 刪除當前行
dj 刪除上一行
dk 刪除下一行
d$ 刪除光標所在處,到該行的最后一個字符
d0 刪除光標所在處,到該行的最前一個字符
dG 刪除光標所在到最后一行的所有數據
d1G 刪除光標所在行到第一行的所有數據
d$ 刪除當前字符之后的所有字符(本行)
ndd 刪除光標所在的向下n行
10d 刪除當前行開始的10行。
kdgg 刪除當前行之前所有行(不包括當前行)
:1,$d 刪除所有行
:1,10d 刪除1-10行
:11,$d 刪除11行及以后所有的行
J(shift + j) 刪除兩行之間的空行,實際上是合並兩行。
jdG(jd shift + g) 刪除當前行之后所有行(不包括當前行)
8. 復制和粘貼
p在當前光標后粘貼,如果之前使用了yy命令來復制一行,就在當前行的下一行粘貼。
p 將已復制的數據在光標下一行粘貼上
P 則為貼在光標的上一行
yy 復制當前行
y0 復制光標所在的那個字符到該行行首的所有數據
y$ 復制光標所在的那個字符到該行行尾的所有數據
yG 復制光標所在行到最后一行的所有數據
y1G 復制光標所在行到第一行的所有數據
nyy 拷貝當前后開始的n行,比如2yy拷貝當前行及其下一行。
u 恢復前一個操作
Ctrl+r 重做上一個操作
. 是重復前一個操作
shift+p 在當前行前粘貼
:1,10 co 20 將1-10行插入到第20行之后。
:1,$ co $ 將整個文件復制一份並添加到文件尾部。
正常模式下按v(逐字)或V(逐行)進入可視模式,然后用jklh命令移動即可選擇某些行或字符,再按y即可復制d
dp 交換當前行和其下一行
xp 交換當前字符和其后一個字符
9. 剪切命令
正常模式下按v(逐字)或V(逐行)進入可視模式,然后用jklh命令移動即可選擇某些行或字符,再按d即可剪切
ndd 剪切當前行之后的n行。利用p命令可以對剪切的內容進行粘貼
:1,10d 將1-10行剪切。利用p命令可將剪切后的內容進行粘貼。
:1, 10m 20 將第1-10行移動到第20行之后。
10. 高亮命令
shift+* 向下查找並高亮顯示
shift+# 向上查找並高亮顯示
g+d 高亮顯示光標所屬單詞,
n 查找!
在vim編輯器中執行 :nohlsearch
永不出現,可以用 set nohlsearch
11. 退出命令
:w 保存編輯的內容
:w! 強制寫入該文件,但跟你對該文件的權限有關
:q 離開vi
:q! 強制退出並忽略所有更改
:wq 保存后離開
:x 保存后離開
:e! 放棄所有修改,並打開原來文件。
ZZ 若文件沒有更動,則不保存離開,若文件已經被更改過,則保存后離開
12. 命令行命令
:w filename 將編輯的數據保存成另一個文件(類似另存)
:r filename 在編輯的數據中,讀入另一個文件的數據。即將【filename】 這個文件的內容加到光標所在行后面。
:n1,n2 w filename 將n1到n2的內容保存成filename這個文件。
:! command 暫時離開vi 到命令行模式下執行command的顯示結果!
"""例如 【:! ls /home】即可在 vi 當中察看/home底下以ls輸出的文件信息!"""
:set nu 顯示行號
:set nonu 與 set nu 相反,為取消行