所有的 Unix/linux 系統(tǒng)都會內建 vi 文書編輯器,其他的文書編輯器則不一定會存在。但是目前我們使用比較多的是 vim 編輯器。
Vim是從 vi 發(fā)展出來的一個文本編輯器。提供了代碼補完、編譯及錯誤跳轉等方便編程的功能特別豐富,在程序員中被廣泛使用。
簡單的來說, vi 是老式的字處理器,不過功能已經(jīng)很齊全了,但是還是有可以進步的地方。 vim 則可以說是程序開發(fā)者的一項很好用的工具。
基本上 vi/vim 共分為三種模式,分別是命令模式(Command mode),插入模式(Insert mode)和末行模式(Last line mode)
1. 如何進入插入模式
命令 | 說明 |
i | 光標前一個字符插入 |
I | 行首插入 |
a | 光標后一個字符插入 |
A | 行末插入 |
o | 向下新開一行,插入行首 |
O | 向上新開一行,插入行道 |
2. 如何進入命令模式
按ESC 從插入模式或末行模式進入命令模式
在命令模式下移動光標:
3. 不同模式間的互相轉換
命令模式->末行模式 | 輸入冒號 : |
末行模式->命令模式 | 輸入兩次 ESC |
4. 命令模式的命令:
命令 | 說明 |
0 | 移動至絕對行首 |
^ | 移動至相對行首 |
$ | 移動至行尾 |
j | 向下移動 |
k | 向上移動 |
h | 向左移動 |
l | 向右移動 |
M | 移動至中間行 |
L | 移動至最后一行的行首 |
行號+G | 移動至指定行 |
G | 移動至文件末尾 |
gg | 移動至文件開頭 |
w/W | 向后移動一個字 |
b | 向前移動一個字 |
{ | 按段移動,上移 |
} | 按段移動,下移 |
ctl+d | 向下翻半屏 |
ctl+u | 向上翻半屏 |
ctl+f | 向下翻一屏 |
ctl+b | 向上翻一屏 |
4.1 關于刪除
1
2
3
4
命令 | 說明 |
x | 刪除光標后一個字符 |
X | 刪除光標前一個字符 |
dd | 刪除光標所光標所在行 |
n | dd刪除光標后指定行數(shù) |
D | 刪除光標后本行所有內容,包含光標所在字符 |
d0 | 刪除光標前本行所有內容,不包含光標所在字符 |
全部刪除 | 按esc后,然后dG |
dw | 刪除光標開始位置字符,包含光標所在字符 |
4.2 關于撤銷命令
4.3 關于重復命令
4.4 關于文本行移動
4.5 關于選擇行
v 進入“可視”,按鍵盤選擇行
4.6 關于復制/粘貼
命令 | 說明 |
yy | 復制當前行 |
n yy | 復制n行 |
yw | 復制單詞 |
p | 在光標所在位置向下新開辟一行,粘貼 |
4.7 關于復制多行
任務:將第9行至第15行的數(shù)據(jù),復制到第16行
:9,15 copy 16 或:9,15 co 16
由此可有:
:9,15 move 16 或 :9,15 m 16 將第9行到第15行的文本內容到第16行的后面
復制多行,然后粘貼。
1. 將光標移動到要復制的文本開始的地方,按v
進入可視模式。
2. 將光標移動到要復制的文本的結束的地方,按y復制。此時vim會自動將光標定位到選中文本的開始的地方,并退出可視模式。
3. 移動光標到文本結束的地方,按p
粘貼。
全部刪除:按esc后,然后dG
全部復制:按esc后,然后ggyG
4.8 關于可視模式
命令 | 說明 |
v | 按字符移動,選中文本 |
V | 按行移動,選中文本可視模式可以配合 d,y,>>,<<實現(xiàn)對文本塊的刪除,復制,左右移動 |
4.9 末行模式下 . 點號表示當前行; $ 表示末行
例如,在末行模式下輸出
命令 | 說明 |
1,.-3y | 表示復制第1行至光標所在位的前3行 |
1,.+3y | 表示復制第1行至光標所在位的后3行 |
.,.+3d | 表示刪除光標所在行至光標往行3行 |
4.10 關于替換操作
4.11 關于查找命令
命令 | 說明 |
/str | 光標位置開始向下查 |
?str | 光標位置開始向上查找 |
n | 下一個 |
N | 上一個 |
例如,查找Sock

4.12 關于替換命令s
把abc 全部替換成123
末行模式下,將光標所在行的abc替換成123
:%s/abc/123/gi % 表示全部,整個文檔;
g 表示全部替換,
i 表示忽略大小寫,不加i表示區(qū)別大小寫
末行模式下,將第一行至第10行之間的abc替換成123
:1,10s/abc/123/g
末行模式下,感嘆號!+命令可以在vi模式下執(zhí)行命令,例如
:!cp /root/abc.txt /root/abcd.tx
4.13 關于保存退出
所處模式 | 命令 |
末行模式下 | :wq 或 :x |
命令模式下 | ZZ |
4.14 關于不保存退出
5. 其它說明
如何顯示行號
1. 末行模式輸入: set number/set nu 可以顯示行號
2.修改當前用戶vimrc文件:
arvindeMacBook-Air:~ arvin$ vi ~/.vimrc
set nu 顯示行號
set ts=4 TAB縮進字符數(shù)
或
Set tabstop=4
Set shiftwidth=4
【其中】:~/ 表示當前用戶的家目錄
當用vi編輯文件時,非正常退出時將產(chǎn)生一個隱藏文件,原文件將不能修改,需要將隱藏文件刪除后才可以修改
掃碼關注5G通信官方公眾號,免費領取以下5G精品資料
1、回復“YD5GAI”免費領取《中國移動:5G網(wǎng)絡AI應用典型場景技術解決方案白皮書》
2、回復“5G6G”免費領取《5G_6G毫米波測試技術白皮書-2022_03-21》
3、回復“YD6G”免費領取《中國移動:6G至簡無線接入網(wǎng)白皮書》
4、回復“LTBPS”免費領取《《中國聯(lián)通5G終端白皮書》》
5、回復“ZGDX”免費領取《中國電信5G NTN技術白皮書》
6、回復“TXSB”免費領取《通信設備安裝工程施工工藝圖解》
7、回復“YDSL”免費領取《中國移動算力并網(wǎng)白皮書》
8、回復“5GX3”免費領取《 R16 23501-g60 5G的系統(tǒng)架構1》