
主要介紹了linux下的vim編輯器常用的一些用法操作舉例并說明作用。沒有花裡胡哨的概念介紹僅以實際的使用方法舉例。
一、vim常用快捷鍵和實用操作
vim打開檔案方式:用法1:vim /tmp/myshell.sh表示打開tmp目錄下的myshell.sh檔案,不存在則建立一個,預設光标會定位到上次所在位置和高亮上次高亮的内容。用法2:vim +10 /tmp/myshell.sh表示打開tmp目錄下的myshell.sh檔案并且将光标移動到第10行。用法3:vim +/hello /tmp/myshell.sh表示打開tmp目錄下的myshell.sh檔案并且高亮顯示檔案裡所有的hello内容。用法4:vim /tmp/myshell.sh /home/my.sh /root/a.txt表示同時打開tmp目錄下的myshell.sh、home目錄下的my.sh和root目錄下的a.txt檔案。
vim常用的三種模式:指令模式、編輯模式、末行模式(尾行模式)
1.指令模式[指令模式下無法編輯檔案,隻允許删除,複制,粘貼,撤銷,使用快捷鍵等操作,檔案打開時預設進入此模式]
光标移動操作:
特别技巧:數字+上下左右按鍵可以向對應方向移動光标到指定位置,如:5+向上鍵 表示是向上移動光标5行。
用法1:shift+6或^表示移動光标到所在行的行首位置。用法2:shift+4或&表示移動光标到所在行的行尾位置。用法3:gg表示将光标移動到檔案内容的第一行位置,這裡注意是小寫字母。用法4:G表示将光标移動到檔案内容的最後一行位置,這裡注意是大寫字母。用法5:5G表示将光标移動到檔案内容的第5行位置,這裡注意是大寫字母。用法6:ctrl+b或pg up表示向上翻屏。用法7:ctrl+f或pg dn表示向下翻屏。
複制、删除、粘貼、撤銷操作:
用法1:yy表示複制光标所在行的整行内容。用法2:5yy表示複制包含光标所在行向下的5行内容。用法3:dd表示删除光标所在行的整行内容并且将下面的内容上移到光标位置(dd其實剪切操作隻是效果等同于删除)。用法4:5dd表示删除包含光标所在行向下的5行内容并且将下面的内容上移到光标位置(dd其實剪切操作隻是效果等同于删除)。用法5:D表示删除光标所在行的整行内容并且目前行會變成空白行。用法6:p表示粘貼複制的内容到光标所在位置。用法7:u表示撤銷上次的操作,ctrl+r表示取消之前的撤銷操作。用法8:ctrl+v表示自定義可視化選擇内容塊 ,需要使用上下左右鍵來選中内容,選中内容塊後可以使用yy和dd進行相關的操作。
2.編輯模式[編輯模式可以對檔案的内容進行編輯操作,在指令模式下按任意鍵進入編輯模式,但大多數人按i進入編輯模式,按esc退出編輯模式并進入指令模式]
用法1:i表示進入編輯模式并且在光标所在字元的前面開始編輯内容,小寫的i,比較常用。用法2:a表示進入編輯模式并且在光标所在字元的後面開始編輯内容,小寫的a,比較常用。用法3:o表示進入編輯模式并且在光标所在行的下面插入新的一行開始編輯内容,小寫的o,不常用。用法4:I表示進入編輯模式并且在光标所在行的行首開始編輯内容,大寫的i,不常用。用法5:A表示進入編輯模式并且在光标所在行的行尾開始編輯内容,大寫的A,不常用。用法6:O表示進入編輯模式并且在光标所在行的上面插入新的一行開始編輯内容,大寫O,不常用。用法7:S表示進入編輯模式并且删除光标所在行内容後開始編輯内容,大寫S,不常用。
3.末行模式[末行模式可以執行特定的指令操作如:搜尋、替換、儲存、退出、高亮等操作,在指令模式下按:或/進入末行模式,在:或/後面可以輸入特定的指令對檔案進行操作。按esc退出末行模式并進入指令模式]
進入末行模式方式:按下:冒号進入末行模式。退出末行模式三種方式:1、按一次esc表示延遲退出末行模式并進入指令模式。2、連按兩次esc表示快速退出末行模式并進入指令模式。3、删除:後的指令後在按一次删除鍵表示退出末行模式并進入指令模式。
末行模式操作指令":"
儲存與退出檔案:用法1:w表示儲存編輯的檔案内容。用法2:w /tmp/a.txt表示将目前檔案内容另存為到tmp目錄下并命名為a.txt檔案。用法3:q表示退出檔案,需要先使用w指令儲存後才能退出檔案或者檔案未被修改時直接退出檔案。用法4:wq表示儲存檔案修改的内容并退出檔案。用法5:q!表示強制退出檔案并且不儲存對檔案内容的修改操作。用法6:w!表示強制儲存對檔案内容的修改。用法7:wq!表示強制儲存檔案内容并退出檔案。用法8:x表示檔案未修改時則直接退出,檔案被修改後則儲存并退出,小寫x。替換檔案内容:用法1:s/yy/uu表示替換光标所在行的第一個yy關鍵子字為uu。用法2:s/yy/uu/g表示替換光标所在行裡的所有yy關鍵字為uu。用法3:%s/yy/uu表示替換整個檔案的所有行的第一個yy關鍵字為uu。用法4:%s/yy/uu/g表示替換整個檔案裡的所有yy關鍵字為uu。其他指令:用法1:!ls -l表示暫時隐藏vim打開的内容并執行外部的ls指令。用法2:nohl表示取消檔案内容裡的高亮關鍵詞設定。用法3:set nu表示顯示檔案内容的行号。set nonu表示取消行号。用法4:files表示使用vim打開多個檔案時檢視檔案名稱,其中%a表示目前活動的檔案,#表示上一次打開的檔案。用法5:open a.txt表示切換到a.txt檔案,通常使用vim打開多個檔案時切換需要編輯的檔案時使用。用法6:bn表示切換到下一個打開的檔案,bp表示切換到上一個打開的檔案。vim打開多個檔案時使用。
末行模式操作指令"/"
用法:/hello表示搜尋vim打開的檔案裡面的所有hello關鍵字并且高亮搜尋到的結果,按小寫n向下查找搜尋結果,按大寫N表示向上查找搜尋到的結果。
vim配置檔案:個人配置與全局配置沖突時以個人配置為準。
1.使用者個人配置檔案[使用者家目錄下/.vimrc,編輯或自行建立]
用法1:在/home/huzibbs/.vimrc檔案中寫入:set nu表示設定huzibbs使用者每次打開vim編輯器時顯示行号。用法2:在/home/huzibbs/.vimrc檔案中寫入:syntax off表示設定huzibbs使用者每次打開vim編輯器時不啟用代碼着色功能。
2.全局配置檔案[/etc/vimrc]
用法1:編輯/etc/vimrc檔案寫入:set nu表示設定所有使用者每次打開vim編輯器時顯示行号。用法2:在/etc/vimrc檔案中寫入:syntax off表示設定目前使用者每次打開vim編輯器時不啟用代碼着色功能。
二、實用小功能
1.vim代碼着色[給代碼标記顔色功能,需要在末行模式:下執行]
用法1:syntax on表示開啟vim的代碼着色功能,預設開啟。用法2:syntax off表示關閉vim的代碼着色功能。
2.vim電腦[在編輯檔案時計算公式時使用,需要在編輯模式下使用]
用法:按ctrl+r鍵,輸入=号,在等号後面輸入需要計算的公式回車得出的結果輸出到光标所在處。
3.指令别名機制[使用者家目錄/.bashrc]
用法:編輯/home/huzibbs/.bashrc 寫入内容:alias cls='clear'表示設定huzibbs使用者環境下的clear清屏指令别名為cls,重新登入後生效。