學(xué)習(xí)vi
作者:夏武
1 vi介紹
vi是Unix世界里極為普遍的全螢?zāi)晃谋揪庉嬈鳎瑤缀蹩梢哉f任何一臺(tái)Unix機(jī)器都會(huì)提供這套軟件。Linux當(dāng)然也有,它的vi其實(shí)是elvis(版權(quán)問題),不過用法都差不多。由于vi的廣泛使用,因此學(xué)習(xí)vi是很有意義的。
2 基本概念
vi存在兩種模式:指令模式和輸入模式。在指令模式下輸入的按鍵將做為指令來處理。而在輸入模式下,vi則把輸入的按鍵當(dāng)作插入的字符來處理。指令模式切換到輸入模式只需鍵入相應(yīng)的輸入命令即可,而從輸入模式切換到指令模式,則需在輸入模式下鍵入ESC鍵。
3 快捷鍵
3.1 由指令模式進(jìn)入輸入模式
表1是由指令模式進(jìn)入輸入模式的指令列表。
快捷鍵 | 用途 | 快捷鍵 | 用途 |
---|---|---|---|
a | 從光標(biāo)所在位置后面開始新增 | A | 從光標(biāo)所在行行尾新增 |
i | 從光標(biāo)所在位置前面插入 | I | 從光標(biāo)所在行的第一個(gè)非空格字符前面插入 |
o | 在光標(biāo)所在行下新增一行并進(jìn)入輸入模式 | O | 在光標(biāo)所在行上新增一行并進(jìn)入輸入模式 |
3.2 文件操作
表2是文件操作的指令列表。
快捷鍵 | 用途 | 快捷鍵 | 用途 |
---|---|---|---|
:wq | 保存退出 | :q! | 不保存退出 |
3.3 基本編輯操作
表3是基本編輯指令列表。
快捷鍵 | 用途 | 快捷鍵 | 用途 |
---|---|---|---|
x | 刪除光標(biāo)所在位置的字符 | dd | 刪除光標(biāo)所在的行 |
r | 修改光標(biāo)所在位置的字符,接著輸入新的字符 | R | 進(jìn)入替換狀態(tài),新增字符會(huì)覆蓋原有字符,直到按 [ESC] 回到指令模式下為止 |
s | 刪除光標(biāo)所位置字符,并進(jìn)入輸入模式 | S | 刪除光標(biāo)所在行,并進(jìn)入輸入模式 |
0 | 移動(dòng)到光標(biāo)所在行的行首 | j | 移動(dòng)到下一行 |
k | 移動(dòng)到上一行 | CTRL-n | 移動(dòng)到下一行 |
CTRL-p | 移動(dòng)到上一行 | CTRL-d | 向下半頁 |
CTRL-f | 向下一頁 | CTRL-u | 向上半頁 |
CTRL-b | 向上一頁 | H | 移動(dòng)到窗口的首行 |
M | 移動(dòng)到窗口的中間行 | L | 移動(dòng)到窗口的末行 |
w | 移動(dòng)到后一個(gè)單詞的第一個(gè)字母 | e | 移動(dòng)到光標(biāo)處的單詞最后一個(gè)字母處 |
b | 移動(dòng)到光標(biāo)處的單詞第一個(gè)字母處 | $ | 移動(dòng)到光標(biāo)所在行行尾 |
d0 | 移動(dòng)到光標(biāo)所在行行首 | ( | 移動(dòng)到光標(biāo)所在行的上一行 |
) | 移動(dòng)到光標(biāo)所在行的下一行 | { | 移動(dòng)光標(biāo)所在段落的結(jié)尾 |
} | 移動(dòng)光標(biāo)所在段落的開頭 | n- | 向上移動(dòng)n行 |
n+ | 向下移動(dòng)n行 | nG | 移動(dòng)到第n行 |
4 組合編輯指令
組合指令包括指令和范圍組成。表3的指令可以用來指定范圍。例如:刪除當(dāng)前行以后的5行,指令為d5G。表4是組合編輯的指令列表:快捷鍵 | 用途 | 快捷鍵 | 用途 |
---|---|---|---|
d | 刪除 | y | 復(fù)制 |
p | 粘貼 | c | 剪切 |
5 雜項(xiàng)
快捷鍵 | 用途 | 快捷鍵 | 用途 |
---|---|---|---|
:%s/[被替換字符串]/[替換字符串]/g | 替換字符串 | /[查找的字符串] | 查找字符串 |
gg=G | 自動(dòng)縮進(jìn) | CTRL-n | 自動(dòng)完成(輸入模式下) |
6 .vimrc文件配置
很多情況下,我們使用的vi其實(shí)應(yīng)該叫vim,這是一種vi的增強(qiáng)版。當(dāng)在終端下使用vim的時(shí)候,默認(rèn)情況下,編輯的界面上是沒有顯示行號(hào)、語法高亮度顯示、智能縮進(jìn)等功能。為了更好的在vim下進(jìn)行工作,需要手動(dòng)設(shè)置一個(gè)配置文件:.vimrc。下面是.vimrc的配置樣例:
" 顯示行號(hào)set nummber" 檢測(cè)文件類型filetype on" 記錄歷史的行數(shù)set history=1000" 語法高亮顯示syntax on" 設(shè)置自動(dòng)對(duì)齊set autoindent" 設(shè)置智能對(duì)齊set smartindent" 設(shè)置TAB鍵為4個(gè)空格set tabstop=4" 顯示匹配模式set showmatch" 去掉編輯錯(cuò)誤時(shí)的響聲set vb t_vb=" 在終端中使用鼠標(biāo)set mouse=a" 查找時(shí)忽略大小寫set ignorecase" 當(dāng)執(zhí)行:make,:next指令時(shí)自動(dòng)保存文件內(nèi)容set autowrite
7 總結(jié)
8 參考資料
- Learning the vi editor, O'REILY
- vim.org