前面我們多次提到過vi命令,它是Linux中必不可少的工具。早期的Unix都是使用vi作為系統(tǒng)默認(rèn)的編輯器。也許你會問,vi與Vim有什么區(qū)別?其實Vim是vi的升級版。很多Linux系統(tǒng)管理員都習(xí)慣用vi,因為他們接觸Linux時用的就是vi,Vim到后來才比較流行。所以無論用vi還是Vim,只要能達(dá)到我們想要的目的即可。
在阿銘看來,vi和Vim的最大區(qū)別就是編輯一個文本時vi不會顯示顏色,而Vim會顯示顏色。顯示顏色更便于用戶進(jìn)行編輯,但其他功能沒有太大的區(qū)別。所以,在Linux系統(tǒng)下,使用vi還是Vim完全取決你的個人喜好。
如果你的系統(tǒng)里沒有Vim工具,請按如下方法安裝它:
#yuminstall-yvim-enhanced
8.1Vim的3種常用模式
Vim有3種模式:一般模式、編輯模式和命令模式,這需要我們牢記。
8.1.1一般模式
當(dāng)我們使用命令vim filename編輯文件時,默認(rèn)進(jìn)入該文件的一般模式。在這個模式下,你可以做的操作有:上下移動光標(biāo)、刪除某個字符、刪除某行以及復(fù)制或粘貼一行或者多行。下面我們先復(fù)制一個文件,然后使用Vim打開該文件,如下所示:
#cp/etc/man_db.conf/tmp/1.txt#因為該文件行比較多,適合我們做實驗 #vim/tmp/1.txt
首先復(fù)制一個文件到/tmp/目錄下,并改名為1.txt。然后使用Vim工具編輯它,按回車后進(jìn)入文件1.txt,該模式就是一般模式。在該模式下,我們可以移動光標(biāo)的位置,操作方法如表8-1所示。
表8-1移動光標(biāo)
按鍵 | 作用 |
h或者向左的方向鍵 | 光標(biāo)向左移動一個字符 |
l(小寫字母l)或者向右的方向鍵 | 光標(biāo)向右移動一個字符 |
k或者向上的方向鍵 | 光標(biāo)向上移動一個字符 |
j或者向下的方向鍵 | 光標(biāo)向下移動一個字符 |
Ctrl+B | 文本頁面向前翻一頁 |
Ctrl+F | 文本頁面向后翻一頁 |
數(shù)字0或者Shift+6 | 移動到本行行首 |
Shift+4 | 移動到本行行尾 |
gg | 移動到首行 |
G | 移動到尾行 |
nG(n是任意數(shù)字) | 移動到第n行 |
在一般模式下,我們還可以實現(xiàn)字符或字符串的復(fù)制、刪除、粘貼等操作,如表8-2所示。
表8-2刪除、復(fù)制和粘貼
按鍵 | 作用 |
x和X | x表示向后刪除一個字符,X表示向前刪除一個字符 |
nx | 向后刪除n個字符 |
dd | 刪除/剪切光標(biāo)所在的那一行 |
ndd(n為number的縮寫) | 刪除/剪切光標(biāo)所在行之后的n行 |
yy | 復(fù)制光標(biāo)所在行 |
p | 從光標(biāo)所在行開始,向下粘貼已經(jīng)復(fù)制或者粘貼的內(nèi)容 |
P | 從光標(biāo)所在行開始,向上粘貼已經(jīng)復(fù)制或者粘貼的內(nèi)容 |
nyy | 從光標(biāo)所在行開始,向下復(fù)制n行 |
u | 還原上一步操作 |
v | 按v后移動光標(biāo)會選中指定字符,然后可以實現(xiàn)復(fù)制、粘貼等操作 |
8.1.2編輯模式
在一般模式下不可以修改某一個字符,如果要修改字符,只能進(jìn)入編輯模式。從一般模式進(jìn)入編輯模式,只需按i、I、a、A、o、O、r和R中的某一個鍵即可。當(dāng)進(jìn)入編輯模式時,在屏幕的尾行會顯示INSERT或REPLACE的字樣(如果你的Linux支持中文,則會顯示“插入”)。從編輯模式回到一般模式,只需按Esc鍵即可。具體行為對照表如表7-3所示。
表8-3進(jìn)入編輯模式
按鍵 | 作用 |
i | 在當(dāng)前字符前插入 |
I | 在光標(biāo)所在行的行首插入 |
a | 在當(dāng)前字符后插入 |
A | 在光標(biāo)所在行的行尾插入 |
o | 在當(dāng)前行的下一行插入新的一行 |
O | 在當(dāng)前行的上一行插入新的一行 |
8.1.3命令模式
在一般模式下,輸入:或者/即可進(jìn)入命令模式。在該模式下,我們可以搜索某個字符或者字符串,也可以實現(xiàn)保存、替換、退出、顯示行號等操作,如表8-4所示。
表8-4命令模式
命令 | 作用 |
/word | 在光標(biāo)之后查找一個字符串word,按n向后繼續(xù)搜索 |
?word | 在光標(biāo)之前查找一個字符串word,按n向前繼續(xù)搜索 |
:n1,n2s/word1/word2/g | 在n1和n2行之間查找word1并替換為word2,不加g則只替換每行的第一個word1 |
:1,$s/word1/word2/g | 將文檔中所有的word1替換為word2,不加g則只替換每行的第一個word1 |
命令模式的其他功能,如表8-5表示。
表8-5命令模式的其他功能
命令 | 作用 |
:w | 保存文本 |
:q | 退出Vim |
:w! | 強(qiáng)制保存,在root用戶下,即使文本只讀也可以完成保存 |
:q! | 強(qiáng)制退出,所有改動不生效 |
:wq | 保存并退出 |
:set nu | 顯示行號 |
:set nonu | 不顯示行號 |
8.2Vim實踐
下面阿銘教你如何在一個空白文檔中寫入一段文字,然后保存。
首先輸入vim test.txt,直接按回車,進(jìn)入一般模式,如下所示:
#vimtest.txt
然后按i鍵進(jìn)入編輯模式,在窗口的左下角會顯示“- 插入 -”或者“- INSERT -”,這說明已進(jìn)入插入模式,允許編輯文檔。下面阿銘輸入如下文字:
This is a test file. And this is the first time to using "vim". It's easy to use "vim". I like to using it, do you like it?
編輯后,按Esc鍵,窗口左下角顯示的“- 插入 -”或者“- INSERT -”消失,然后輸入“:wq”,直接按回車保存剛才輸入的文字。如下所示:
This is a test file. And this is the first time to using "vim". It's easy to use "vim". I like to using it, do you like it? ~ ~ :wq
此時我們可以查看test.txt文檔的內(nèi)容,如下所示:
# cat test.txt This is a test file. And this is the first time to using "vim". It's easy to use "vim". I like to using it, do you like it?
Vim為全鍵盤操作的編輯器,在各模式下都有很多功能鍵。阿銘在前面幾個表中列出來的都是最常用的功能,你要多加練習(xí),其他不常用的功能也需要你去了解一下。如果你能全部掌握阿銘列出來的功能,那么你基本上算是掌握了Vim。
-
Linux
+關(guān)注
關(guān)注
87文章
11123瀏覽量
207921 -
窗口
+關(guān)注
關(guān)注
0文章
66瀏覽量
10802 -
編輯器
+關(guān)注
關(guān)注
1文章
797瀏覽量
30932
原文標(biāo)題:第八章 文本編輯器vim
文章出處:【微信號:aming_linux,微信公眾號:阿銘linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論