本文主要學習在Linux系統中使用Vim文本編輯器編輯文本。 ...
Linux文本文件——文本編輯器Vim
摘要:本文主要學習在Linux系統中使用Vim文本編輯器編輯文本。
什麼是Vim
Vim是一個基於文本界面的編輯工具,使用簡單且功能強大。更重要的是,Vim是所有Linux發行版本預設的文本編輯器。
很多人習慣將Vim稱為Vi,其實Vim是Vi的增強版(在Vi的基礎上增加了正則表達式的查找、多視窗的編輯等功能),使用Vim進行程式開發會更加方便。
安裝Vim文本編輯器
眾多Linux發行版系統,通常都已經預設安裝好了Vi或Vim文本編輯器,Centos也不例外,該系統就預設安裝有Vi文本編輯器,但建議大家使用Vim。
查看是否安裝了Vim文本編輯器
在命令行模式下輸入“vim”,輸出結果為“Command not found”,或者是“未找到命令”,則表示此系統中未安裝Vim:
1 [root@localhost ~]# vim 2 -bash: vim: 未找到命令 3 [root@localhost ~]#
說明沒有安裝Vim。
安裝Vim文本編輯器
CentOS系統中,使用如下命令即可安裝Vim:
1 yum install -y vim
安裝過程如下:
1 已安裝: 2 vim-enhanced.x86_64 2:7.4.160-6.el7_6 3 4 作為依賴被安裝: 5 gpm-libs.x86_64 0:1.20.7-5.el7 perl.x86_64 4:5.16.3-294.el7_6 perl-Carp.noarch 0:1.26-244.el7 6 perl-Encode.x86_64 0:2.51-7.el7 perl-Exporter.noarch 0:5.68-3.el7 perl-File-Path.noarch 0:2.09-2.el7 7 perl-File-Temp.noarch 0:0.23.01-3.el7 perl-Filter.x86_64 0:1.49-3.el7 perl-Getopt-Long.noarch 0:2.40-3.el7 8 perl-HTTP-Tiny.noarch 0:0.033-3.el7 perl-PathTools.x86_64 0:3.40-5.el7 perl-Pod-Escapes.noarch 1:1.04-294.el7_6 9 perl-Pod-Perldoc.noarch 0:3.20-4.el7 perl-Pod-Simple.noarch 1:3.28-4.el7 perl-Pod-Usage.noarch 0:1.63-3.el7 10 perl-Scalar-List-Utils.x86_64 0:1.27-248.el7 perl-Socket.x86_64 0:2.010-4.el7 perl-Storable.x86_64 0:2.45-3.el7 11 perl-Text-ParseWords.noarch 0:3.29-4.el7 perl-Time-HiRes.x86_64 4:1.9725-3.el7 perl-Time-Local.noarch 0:1.2300-2.el7 12 perl-constant.noarch 0:1.27-2.el7 perl-libs.x86_64 4:5.16.3-294.el7_6 perl-macros.x86_64 4:5.16.3-294.el7_6 13 perl-parent.noarch 1:0.225-244.el7 perl-podlators.noarch 0:2.5.1-3.el7 perl-threads.x86_64 0:1.87-4.el7 14 perl-threads-shared.x86_64 0:1.43-6.el7 vim-common.x86_64 2:7.4.160-6.el7_6 vim-filesystem.x86_64 2:7.4.160-6.el7_6 15 16 完畢! 17 [root@localhost ~]#
測試
此時在命令行中輸入vim,出現下麵的結果時,表示安裝成功:
1 ~ 2 ~ 3 ~ 4 ~ 5 ~ 6 ~ 7 ~ 8 ~ 9 ~ 10 ~ 11 ~ VIM - Vi IMproved 12 ~ 13 ~ 版本 7.4.1099 14 ~ 維護人 Bram Moolenaar 等 15 ~ 修改者 <[email protected]> 16 ~ Vim 是可自由分發的開放源代碼軟體 17 ~ 18 ~ 成為 Vim 的註冊用戶! 19 ~ 輸入 :help register<Enter> 查看說明 20 ~ 21 ~ 輸入 :q<Enter> 退出 22 ~ 輸入 :help<Enter> 或 <F1> 查看線上幫助 23 ~ 輸入 :help version7<Enter> 查看版本信息 24 ~ 25 ~ 26 ~ 27 ~ 28 ~ 29 ~ 30 ~ 31 ~ 32 ~ 33 ~ 34 0,0-1 全部
輸入 :q 返回命令行界面。
Vim的三種工作模式
使用Vim編輯文件時,存在三種工作模式,分別是普通模式、輸入模式和命令模式,這三種工作模式可隨意切換。
普通模式
在普通模式中,可以使用上下左右移動游標,並且可以對文件內容進行複製、粘貼、替換、刪除等操作,但是不能通過輸入的方式修改文件內容。
使用 vim 文件名 的命令可以進入Vim,這時就處於普通模式。
輸入模式
在輸入模式下,Vim可以對文件執行寫操作,類似於在Windows系統的文檔中輸入內容。
使Vim進行輸入模式的方式是在命令模式狀態下輸入i、I、a、A、o、O等插入命令,當編輯文件完成後按Esc鍵即可返回命令模式。
命令模式
在命令模式下,可以對文件中的指定內容執行保存、查找或替換等操作。
使Vim切換到命令模式的方法是在命令模式狀態下按“:”鍵,此時Vim視窗的左下方出現一個“:”符號,這時就可以輸入相關指令進行操作了。指令執行後Vim會自動返回普通模式,如想直接返回普通模式,按Esc即可。
按鍵說明
進入普通模式
剛打開文件時Vim處於普通模式,在普通模式中,下方會顯示文件的一些信息,包括文件的總行數和字元數,以及當前游標所在的位置等。
可以使用以下方式打開文件:
1 vim filename:打開或新建一個文件,並將游標置於第一行的首部。 2 vim -r filename:恢覆上次Vim打開時崩潰的文件。 3 vim -R filename:把指定的文件以只讀方式放入Vim編輯器中。 4 vim + filename:打開文件,並將游標置於最後一行的首部。 5 vim +n filename:打開文件,並將游標置於第n行的首部。
普通模式
移動游標用到的命令:
1 h或←:游標向左移動一個字。 2 j或↓:游標向下移動一個字。 3 k或↑:游標向上移動一個字。 4 l或→:游標向右移動一個字。 5 [Ctrl]f:屏幕向下移動一頁,相當於PageDown按鍵。 6 [Ctrl]b:屏幕向上移動一頁,相當於PageUp按鍵。 7 [Ctrl]d:屏幕向下移動半頁。 8 [Ctrl]u:屏幕向上移動半頁。 9 +:游標移動到非空白字元的下一列。 10 -:游標移動到非空白字元的上一列。 11 n[Space]:n為數字,向右移動n個字。 12 0或[Home]:移動到這一行的最前面的字。 13 $或[End]:移動到這一行的最後面的字。 14 H:游標移動到最上方一行的第一個字。 15 M:游標移動到中間一行的第一個字。 16 L:游標移動到最下方一行的第一個字。 17 G:移動到最後一行。 18 nG:n為數字,移動到第n行。 19 gg:移動到第一行。 20 n[Enter]:n為數字,游標向下移動n行。
查詢和替換用到的命令:
1 /word:向下尋找word字元串。 2 ?word:向上尋找word字元串。 3 n:n是英文按鍵,表示按上一個搜索方向搜索下一個。 4 N:N是英文按鍵。與n剛好相反,表示按上一個搜索方向的反方向搜索下一個。 5 :n1,n2s/word1/word2/g:n1和n2為數字。在第n1行到第n2行之間查詢word1字元串,並將該字串取代為word2。 6 :1,$s/word1/word2/g:從第一行到最後一行查詢word1字元串,並將該字串取代為word2。 7 :1,$s/word1/word2/gc:從第一行到最後一行查詢word1字元串,並將該字串取代為word2。且在替換前進行詢問。
複製粘貼用到的命令:
1 x或X:x表示刪除當前游標所在的一個字,相當於[del]按鍵,X表示向前刪除一個字,相當於[backspace]按鍵。 2 nx:n為數字,連續向後刪除n個字。 3 dd:刪除游標所在的一行。 4 ndd:n為數字,刪除游標所在的向下n行。 5 d1G:刪除游標所在的行到第一行。 6 dG:刪除游標所在的行到最後一行。 7 d$:刪除游標所在的位置到該行的最後一個字。 8 d0:刪除游標所在的位置到該行的第一個字。 9 yy:複製游標所在的那一行。 10 nyy:n為數字。複製游標所在的向下n行。 11 y1G:複製游標所在的行到第一行。 12 yG:複製游標所在的行到最後一行。 13 y$:複製游標所在的位置到該行的最後一個字。 14 y0:複製游標所在的位置到該行的第一個字。 15 p或P:p表示從游標的下一行開始粘貼,P表示從游標所在行開始粘貼。 16 J:將游標所在行與下一行合成一行。 17 u:複原前一個動作。 18 [Ctrl]r:重做上一個動作。 19 .:小數點,表示重覆前一個動作。
輸入模式
從普通模式切換到輸入模式:
1 i:在當前游標所在位置插入文本,當前游標所在位置的文本向右移動。 2 I:在游標所在行的行首插入文本,行首是該行的第一個非空白字元,相當於游標移動到行首執行i命令。 3 o:在游標所在行的下麵插入新的一行。游標停在空行的行首,等待輸入文本。 4 O:在游標所在行的上面插入新的一行。游標停在空行的行首,等待輸入文本。 5 a:在當前游標所在位置之後插入文本。 6 A:在游標所在行的行尾插入文本,相當於游標移動到行尾執行a命令。
命令模式
從普通模式切換到命令模式:
1 :w:保存修改。若為:w!則表示強制保存。 2 :q:退出Vim編輯器。若為:q!則表示不保存強制退出Vim編輯器。 3 :wq:保存並退出,若為:wq!則表示強制保存並退出。 4 ZZ:如果沒有改動則退出,如果修改過則保存後退出。 5 :w filename:將文件內容保存到指定文件。 6 :r filename:將指定文件的內容插入到游標所在行後面。 7 :n1,n2 w filename:將n1到n2的內容保存到指定文件。 8 :! command:暫時離開Vim編輯器執行command的顯示結果。
設置
1 :set nu:顯示行號。 2 :set nonu:取消顯示行號。