之前實習的時候用過,但是都是不懂的直接搜,加上記憶力差,安居客面試的時候面試官問到了,但是答不出來。直到現在心裡還是很痛。。。好好學習,一個一個坑的補回來吧。
vi和vim是linux下的文本編輯工具,而vim是vi的更新版本,不僅相容vi所有指令,還有一些新的特性在裡面。
這篇筆記主要記錄vi的基本操作。
一、兩個操作模式
一個是輸入模式,一個是指令模式。在輸入模式下,可以輸入文本,在指令模式下,可以輸入指令。
在輸入模式下,按Esc鍵切換到指令模式下。
在指令模式下,按輸入指令(a、i、o)進入輸入模式。
二、進入vi
$ vi filename
如果檔案不存在,則建立一個内容為空的檔案。
view filename
以隻讀方式打開檔案。
三、指令模式
1.進入指令模式
指令 | 作用 |
---|---|
a | 在目前遊标後面輸入 |
A | 在目前行末輸入 |
i | 在目前遊标前面輸入 |
I | 在目前行首輸入 |
o | 在目前行之下新增一行,并在新增行輸入 |
O | 在目前行之上新增一行,并在新增行輸入 |
2.遊标移動
指令 | 作用 |
---|---|
h | 向左移動一個字元長度 |
l | 向右移動一個字元長度 |
j | 向下移動一個字元長度 |
k | 向上移動一個字元長度 |
b | 左移一個單詞,至詞首 |
w | 右移一個單詞,至詞尾 |
移到目前行行首 | |
$ | 移到目前行行尾 |
+ | 移到下一行行首 |
- | 移到上一行的行首 |
H | 移至視窗的第一行 |
M | 移至視窗的中間一行 |
L | 移至視窗的最後一行 |
G | 移至該檔案的最後一行 |
nG | 移至該文檔的第n行 |
n+ | 下移n行 |
n- | 上移n行 |
3.視窗移動
指令 | 作用 |
---|---|
+ | 視窗下卷一頁 |
+ | 視窗上卷一頁 |
+ | 視窗下卷半頁 |
+ | 視窗上卷半頁 |
+ | 視窗下卷一行 |
+ | 視窗上卷一行 |
4.删除操作
指令 | 作用 |
---|---|
x | 删除遊标所在的字元 |
X | 删除遊标所在的前一字元 |
dw | 從遊标目前位置開始向後删除一個單詞 |
db | 從遊标目前位置開始向前删除一個單詞 |
d0 | 從行首删除至目前遊标位置 |
d$ | 從遊标目前位置删除至行尾 |
D | 同d$ |
dd | 删除遊标所在行 |
5.修改操作
指令 | 作用 |
---|---|
s | 修改遊标所在字元,修改完成後按Esc結束 |
S | 修改整行内容,修改完成後按Esc鍵結束 |
r | 替換目前遊标所在字元 |
R | 進入替換狀态,直至按Esc鍵結束 |
cw | 修改一個單詞(從遊标位置至詞尾) |
cb | 修改一個單詞(從詞首至遊标位置) |
cc | 修改整行内容,完成後按Esc鍵結束,同S |
c0 | 修改行首至遊标位置的内容 |
c$ | 修改遊标位置至行尾的内容 |
~ | 遊标所在字元大小寫切換 |
6.指令重複
在指令模式中,可以在指令前面加上一個數字n,則該指令會重複執行n次。常用的有:
指令 | 作用 |
---|---|
nx | 删除n個字元 |
ndd | 删除n行 |
ns | 修改n個字元 |
7.取消前一動作(Undo)
指令 | 作用 |
---|---|
u | 取消前一動作 |
8.查找字元串
指令 | 作用 |
---|---|
/字元串 | 從目前遊标向後查找該字元串 |
?字元串 | 從目前遊标向前查找該字元串 |
n | 從目前遊标向後查找下一個字元串 |
N | 從目前遊标向前查找下一個字元串 |
9.檢視編輯狀态
指令 | 作用 |
---|---|
+ | 顯示正在編輯的檔案名、目前遊标所在行數、檔案總行數、檔案是否被修改 |
四、儲存和退出
指令 | 左右 |
---|---|
w | 儲存,但不退出 |
wq | 儲存并退出 |
x | 同wq |
q | 退出,如果目前檔案沒有儲存,禁止退出 |
q! | 不儲存退出 |
w file1 | 将内容儲存至檔案file1中,此時編輯的仍未原檔案 |
w! file1 | 将内容覆寫儲存至檔案file1中,如檔案file1存在,:w file1将禁止執行 |
以上。