2017-12-19Linux基礎知識(18)vi編輯器
一、文本編輯器
vi編輯器是一款純文本編輯器,所謂的純文本也就是沒有任何的修飾的文本信息,和我們的網頁以及辦公軟件不同的是,後者是有文本標記語言的,例如.html和.xml可以進行修飾,能夠更改字體大小、添加下劃線以及更改字體的顏色等,這樣能夠在確保在下次打開之前還能夠保留這樣的格式。
1.1 文本編輯器種類
在Linux當中,文本編輯器的種類一共有兩種,一種是行編輯器,另一種是全屏編輯器,在行編輯器中的代表為sed;而在全屏編輯器中,一個是nano,另一個就是vi了,而vi的意思為(Vistual Interface)稱之為可視化接口,還有一個是vi的增強版,我們稱之為vim(VI IMproved)。
二、vim編輯器
如果不加說明的話,在這裏vi/vim是通用的,vim是一款模式化的編輯器,每種模式的功能是不盡相同的,一般來說,它的基本常用模式有以下幾種:
編輯模式, 命令模式(復制、刪除等); 輸入模式:在原有的文本基礎上編輯該文本以及修改輸入; 末行模式: 內置的命令行接口;
2.1 打開文件
vim編輯器和之前nano的打開方式相同,如果在本地或指定的路徑沒有文件時,會自動創建此文件,並將編輯好之後信息保留在此文件中,其基本用法如下:
# vim [OPTIONS] [FILE...]
當打開某個文件後,光標默認在最左上角的第一行中的第一列當中,我們可以通過某個選項來可以對光標進行指定,用來定位讓光標處於哪一行的行首,選項如下:
+#:打開文件後,直接讓光標處於第#行的行首; +/PATTERN:打開文件後,直接讓光標處於第一個被PATTERN匹配到的行的行首位置;
那麽打開文件之後,就默認處於編輯模式,我們如果想要修改該文件時,就要從編輯模式轉換到輸入模式,有以下幾種方式可提供選擇:
編輯模式:默認模式 編輯模式 --> 輸入模式: i:insert, 在光標所在處輸入; a:append, 在光標所在處的後方輸入; o:在光標所在處的下方插入一個新行; I:在光標所在行的行首輸入; A:在光標所在行的行尾輸入; O:在光標所在處的上方打開一個新行;
那麽從輸入模式回到編輯模式時,使用ESC鍵就可以回到編輯模式。
輸入模式 --> 編輯模式 ESC
當我們從編輯模式轉換為末行模式時,要使用":"
來進行轉換。
編輯模式 --> 末行模式 : (這是個內置命令行接口)
從末行模式中要是回到編輯模式的話,也要使用ESC鍵來進行轉換;如果末行模式有命令的話,需連按兩次ESC鍵。
末行模式 --> 編輯模式 ESC
2.2 關閉文件
當我們了解完以上幾種模式的時候,那麽現在了解一下如何關閉文件,在編輯模式下使用快捷鍵ZZ就能夠保存並退出,也可以在末行模式下退出,那麽在末行模式下退出的方法有很多種。
:q 退出; :q! 強制退出; :wq 保存並退出; :w :q :x 保存並退出; :w /PATH/TO/SOMEFILE 可理解另存為
2.3 光標跳轉
光標跳轉實際上可以理解為man手冊的翻頁,或者為單詞之間的跳轉等,根據跳轉範圍,我們大致能分為以下幾種:
光標跳轉: 字符間跳轉: h:左 j:下 k:上 l:右 # COMMAND:跳轉由#指定個數的字符; 單詞間跳轉: w:下一個單詞的詞首; e:當前或後一個單詞的詞尾; b:當前或前一個單詞的詞首; # COMAND:跳轉由#指定個數的單詞; 行首行尾跳轉: ^:跳轉至行首的第一個非空白字符; 0:跳轉至行首; $:跳轉至行尾; 行間跳轉: #G:跳轉至由#指定的行; 1G, gg:跳轉至第一行; G:最後一行; 句間跳轉: ) ( 段間跳轉: } {
2.4 翻屏
我們在man命令中,如果要翻到下一屏,要使用f鍵,向上翻一屏要使用b鍵,但在vim中翻屏操作要比man命令有所區別:
翻屏: Ctrl+f:向文件尾部翻一屏; Ctrl+b:向文件首部翻一屏; Ctrl+d:向文件尾部翻半屏; Ctrl+u:向文件首部翻半屏; Enter:按行向後翻;
三、vim的編輯命令
用vim的編輯命令,我們可以對該文件進行大規模的操作,通常編輯命令包含以下編輯操作:
字符編輯: x:刪除光標所在處的字符; #x:刪除光標所在處起始的#個字符; xp:交換光標所在處的字符與其後面的字符位置 替換命令(replace): r:替換光標所在處的字符; rCHAR 刪除命令: d:刪除命令,可結合光標跳轉字符,實現範圍刪除; d$:刪除從當前字符到行尾的內容; d^:刪除從當前字符到行首的內容; dw:刪除從當前字符到下一個單詞的詞首; de:刪除從當前字符到下一個單詞的次衛; db:當前或前一個單詞的詞首; # COMMAND dd:刪除光標當前所在的行; #dd:刪除光標所在處的行起始共#行; 粘貼命令(p, put, patse): p:緩沖區中的內容如果為整行,則粘貼在當前光標所在行的下方;否則,則粘貼至當前光標所在處的後方; P:緩沖區中的內容如果為整行,則粘貼在當前光標所在行的上方;否則,則粘貼至當前光標所在處的前方; 復制(yank,y): y:復制,工作行為相似於d命令; y^: y0: ye: yw: ya: #COMMAND yy:復制一整行 #yy:復制#行;
3.1 改變命令
改變命令功能是能從編輯模式轉換為輸入模式,因為改變什麽是需要用戶的介入,其次它也能實現刪除的操作。
改變命令(change, c) 編輯模式 --> 輸入模式,實現刪除操作; c$ c^ c0 cb ce cw #COMMAND cc:刪除光標所在的行,並轉換為輸出模式; #cc:
四、其它編輯操作
以上就是對行進行操作,在windows中,點擊鼠標左鍵我們就能劃過某個字段來進行編輯操作,在vim編輯器中也可以實現,我們可以稱之為可視化模式。
可視化模式: v:按字符選定; V:按行選定; 結合編輯命令使用:d, c, y
接下來是撤銷操作,如果說在文件中我們編輯錯誤或者刪除錯誤時,可以進行撤銷操作來進行還原,需要註意的是,如果進行了保存並退出的話,則撤銷不回原點。
撤銷(undo)操作: u:撤銷此前的操作; #u:撤銷此前的#個操作
如果撤銷錯誤的話,我們可以撤銷此前撤銷的操作,也可以稱作為向前還原。
撤銷此前的撤銷操作: Ctrl+r
如果某一個操作能夠執行多次,也可以重復執行前一個編輯操作:
重復執行前一個編輯操作: .
如果還想學習更多關於vim的其它操作,在Linux中自帶有vim教程,該教程的命令為:vimtutor
2017-12-19Linux基礎知識(18)vi編輯器