提醒:本文為合集文章,後續會持續更新!
關注我,每日提升!
前面我們多次提到過vi命令,它是Linux中必不可少的工具。早期的Unix都是使用vi作為系統默認的編輯器。也許你會問,vi與Vim有什麼區别?其實vim是vi的升級版。很多Linux系統管理員都習慣用vi,因為他們接觸Linux時用的就是vi,Vim到後來才比較流行。所以無論用vi還是Vim,隻要能達到我們想要的目的即可。
在阿銘看來,vi和Vim的最大區别就是編輯一個文本時vi不會顯示顔色,而Vim會顯示顔色。顯示顔色更便于用戶進行編輯,但其他功能沒有太大的區别。所以,在Linux系統下,使用vi還是Vim完全取決你的個人喜好。
如果你的系統裡沒有Vim工具,請按如下方法安裝它:
# yum install -y vim-enhanced
8.1 Vim的3種常用模式
Vim有3種模式:一般模式、編輯模式和命令模式,這需要我們牢記。
8.1.1 一般模式
當我們使用命令vim filename編輯文件時,默認進入該文件的一般模式。在這個模式下,你可以做的操作有:上下移動光标、删除某個字符、删除某行以及複制或粘貼一行或者多行。下面我們先複制一個文件,然後使用Vim打開該文件,如下所示:
# cp /etc/man_db.conf /tmp/1.txt #因為該文件行比較多,适合我們做實驗
# vim /tmp/1.txt
首先複制一個文件到/tmp/目錄下,并改名為1.txt。然後使用Vim工具編輯它,按回車後進入文件1.txt,該模式就是一般模式。在該模式下,我們可以移動光标的位置,操作方法如表8-1所示。
表8-1 移動光标
按 鍵 |
作 用 |
h或者向左的方向鍵 |
光标向左移動一個字符 |
l(小寫字母l)或者向右的方向鍵 |
光标向右移動一個字符 |
k或者向上的方向鍵 |
光标向上移動一個字符 |
j或者向下的方向鍵 |
光标向下移動一個字符 |
Ctrl B |
文本頁面向前翻一頁 |
Ctrl F |
文本頁面向後翻一頁 |
數字0或者Shift 6 |
移動到本行行首 |
Shift 4 |
移動到本行行尾 |
gg |
移動到首行 |
G |
移動到尾行 |
nG(n是任意數字) |
移動到第n行 |
在一般模式下,我們還可以實現字符或字符串的複制、删除、粘貼等操作,如表8-2所示。
表8-2 删除、複制和粘貼
按 鍵 |
作 用 |
x和X |
x表示向後删除一個字符,X表示向前删除一個字符 |
nx |
向後删除n個字符 |
dd |
删除/剪切光标所在的那一行 |
ndd(n為number的縮寫) |
删除/剪切光标所在行之後的n行 |
yy |
複制光标所在行 |
p |
從光标所在行開始,向下粘貼已經複制或者粘貼的内容 |
P |
從光标所在行開始,向上粘貼已經複制或者粘貼的内容 |
nyy |
從光标所在行開始,向下複制n行 |
u |
還原上一步操作 |
v |
按v後移動光标會選中指定字符,然後可以實現複制、粘貼等操作 |
8.1.2 編輯模式
在一般模式下不可以修改某一個字符,如果要修改字符,隻能進入編輯模式。從一般模式進入編輯模式,隻需按i、I、a、A、o、O、r和R中的某一個鍵即可。當進入編輯模式時,在屏幕的尾行會顯示INSERT或REPLACE的字樣(如果你的Linux支持中文,則會顯示“插入”)。從編輯模式回到一般模式,隻需按Esc鍵即可。具體行為對照表如表7-3所示。
表8-3 進入編輯模式
按 鍵 |
作 用 |
i |
在當前字符前插入 |
I |
在光标所在行的行首插入 |
a |
在當前字符後插入 |
A |
在光标所在行的行尾插入 |
o |
在當前行的下一行插入新的一行 |
O |
在當前行的上一行插入新的一行 |
8.1.3 命令模式
在一般模式下,輸入:或者/即可進入命令模式。在該模式下,我們可以搜索某個字符或者字符串,也可以實現保存、替換、退出、顯示行号等操作,如表8-4所示。
表8-4 命令模式
命 令 |
作 用 |
/word |
在光标之後查找一個字符串word,按n向後繼續搜索 |
?word |
在光标之前查找一個字符串word,按n向前繼續搜索 |
: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! |
強制保存,在root用戶下,即使文本隻讀也可以完成保存 |
:q! |
強制退出,所有改動不生效 |
:wq |
保存并退出 |
:set nu |
顯示行号 |
:set nonu |
不顯示行号 |
8.2 Vim實踐
下面阿銘教你如何在一個空白文檔中寫入一段文字,然後保存。
首先輸入vim test.txt,直接按回車,進入一般模式,如下所示:
# vim test.txt
然後按i鍵進入編輯模式,在窗口的左下角會顯示“- 插入 -”或者“- INSERT -”,這說明已進入插入模式,允許編輯文檔。下面阿銘輸入如下文字:
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文檔的内容,如下所示:
#
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為全鍵盤操作的編輯器,在各模式下都有很多功能鍵。阿銘在前面幾個表中列出來的都是最常用的功能,你要多加練習,其他不常用的功能也需要你去了解一下。如果你能全部掌握阿銘列出來的功能,那麼你基本上算是掌握了Vim。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!