一、介紹
vi編輯器
-
- ①所有的UNIX-like系統都會内置vi文本編輯器,其他的文本編輯器則不一定會存在
- ②許多軟體的編輯接口都會主動調用vi(例如:crontab、visudo、edauota等)
vim編輯器
-
- ①vim視為vi的進階版本,可以使用顔色或下劃線的方式來顯示一些特殊資訊
- ②vim具有程式編輯能力,是以vim也主要作為程式開發的工具
- ③vim具有程式編輯的能力,并且可以主動地識别字型顔色判别文法的正确性、友善程式設計(例如:使用vim打開C語言檔案與HTML檔案,由于文法不同,字型的顔色也會不同)
- ④vim還支援其他很多功能,例如:正規表達式的查找方式、多檔案編輯、區塊複制等
- vim與vi的操作方式是一樣的
二、安裝與配置
- 安裝:apt-get install vim-gtk
- 第二步:輸入vim檢驗是否安裝成功,指令行直接輸入vim
- 配置vim:剛安裝的VIM,使用的是預設的界面與字型顔色等。如果想要更改,需要修改vim的配置檔案。請看下面介紹
三、vim緩存檔案介紹
-
- 概念:如果你使用vim在編輯一個檔案時,突然電腦當機或者種種原因導緻檔案未儲存或處理就關閉了vim編輯器,那麼系統此時就會将檔案這些資料儲存為一個緩存檔案
- 注意事項:
-
- 緩存檔案名為:原檔案名.swp
- 緩存檔案為系統隐藏檔案
- 緩存檔案隻有當編輯器不正常退出時才會建立
- 因為vim非正常退出,是以檔案資料尚未儲存。但是資料儲存在緩存檔案中,是以可以通過緩存檔案來恢複資料
示範案例
- 第一步:例如我們模拟系統,讓vim編輯器非正常退出,可以看到有個緩存檔案産生
- 第二步:再使用vim編輯器打開檔案(注意:是打開源檔案,不是緩存檔案)
-
- 因為檔案非正常退出,是以再次打開檔案時,系統會提示你一些錯誤提示資訊,并且在最底下可以讓你輸入一些指令來進行下一步操作
- 系統提示你(1)和(2),這是兩個錯誤提示資訊
- (1)的意思是:可能有其他人或程式同時在編輯你這個檔案,有以下解決方法
-
- ①找到另外一方,讓其停止編輯操作
- ②在最底下輸入O,進入隻讀狀态來讀取檢視檔案
- (2)的意思是:在前一個vim環境中,因為某些不知名的原因導緻vom中斷,有以下解決方法
-
- ①輸入R來進行緩存檔案恢複資料
- ②如果緩存檔案無用,輸入D指令删除緩存檔案并打開這個檔案
- 最下方有6個可以選擇進行操作的選項
O(open read-only) | 打開此檔案進入隻讀狀态,不能夠進行編輯。可用于一個檔案正在被他人編輯時來進行讀取 |
E(edit anyway) | 還是使用正常的方式打開你這個要編輯的檔案,并不會加載緩存檔案的内容。不過可能會出現多個使用者同時更改檔案資料的問題,緩存檔案還存在 |
R(recover) | 以緩存檔案的内容打開這個檔案,此時就可以将以前那些未儲存的資料再讀取進來。不過當你退出vim後,緩存檔案還存在,需要手動删除 |
D(delete it) | 确定這個緩存檔案是無用的,然後打開原檔案并且删除這個緩存檔案 |
Q(quit) | 直接退出vim,不存在任何操作 |
A(abort) | 忽略這個編輯操作,與Q的功能類似 |
- 第三步:我們在最下方輸入R,來進行緩存恢複資料方式打開檔案
四、區塊編輯操作
- vim編譯器提供了對一個區域/行/列進行操作的功能。下面這些操作是在一般模式下操作的,不是在編輯模式下操作的
v | 單字元選擇,會将光标經過的地方反白選擇 |
V | 行選擇,會将光标經過的行反白選擇 |
ctrl+v | 以矩形的方式選擇資料 |
y | 将反白的地方複制起來 |
d | 将反白的地方删除掉 |
p | 将剛剛複制的内容,在光标處粘貼 |
示範案例
- 第一步:打開1.txt,按下ctrl+v選擇一個區塊
-
- 第二步:按下y将選中的地方複制
- 第三步:輸入o進入編輯模式,将光标移動到第一行的最後然後移動兩位。再按下esc回到一般模式,将剛才選擇的資料按下p鍵粘貼
五、多檔案同時編輯功能
- 概念:可以使用vim編輯器來同時在一個視窗編輯兩個檔案的内容
示範案例
- 第一步:使輸入指令vim 1.txt 2.txt同時打開兩個檔案。打開檔案之後會預設先編輯第一個檔案,是以顯示的是第一個檔案的内容
- 第二步:一般模式下輸入:files檢視兩個檔案的資訊
- 第三步:在第一行輸入4yy來複制四行資料,下面會有提示
- 第四步:輸入:n,來到第二個檔案中
- 第五步:按下G來到最後一行,然後按下p進行粘貼
- 第六步:按下u撤回上一步操作,相當于Windows中的ctrl+z撤回操作(因為此處我們不想改變資料)
- 第七步:輸入:q離開vim
六、多視窗功能
-
- 概念:開啟了多視窗功能,就可以同時打開多個檔案并且在同一個視窗顯示
- 方法:
-
- 在指令行模式下輸入:sp即可,後面可接/不接檔案名
- 如果:sp後面不接檔案,則預設再打開一個目前檔案。如果:sp後面接其他檔案,則代表打開其他檔案
- 注意事項:輸入:sp打開的檔案預設接在目前檔案的上方顯示
- 相關操作:當輸入sp進入多視窗時,可以輸入一下指令來進行操作
ctrl+w+↑或者ctrl+w+j(按的方法是:先按ctrl不放,再按下w,然後松開所有鍵再按↑或者j) | 從目前檔案視窗移動到上方檔案視窗 |
ctrl+w+↓或者ctrl+w+k(按的方法同上)) | 從目前檔案視窗移動到下方檔案視窗 |
ctrl+w+q(按的方法同上))或者:q,或者:close | 關閉目前這個視窗 |
示範案例
- 第一步:我們輸入指令vim 1.txt打開1.txt
- 第二步:輸入:sp 2.txt,再打開2.txt檔案
-
- 可以看到,2.txt檔案被打開,并且是在上方打開
- 第三步:輸入:sp。可以看到又打開了一個檔案。因為:sp後面沒有接檔案名,并且目前操作路徑在2.txt,是以預設打開2.txt
七、關鍵字補全功能
-
- 概念:因為vim可以作為各種程式設計語言的編輯器,是以vim也提供了關鍵字補齊功能
- 相關按鍵操作:
ctrl+x加上ctrl+n(先按下ctrl+x,然後松開再按ctrl+n) | 通過目前正在編輯的這個檔案的内容文字作為關鍵字,給予補齊 |
ctrl+x加上ctrl+f | 以目前目錄内的檔案名作為關鍵字,給予補齊 |
ctrl+x加上ctrl+f | 以擴充名作為文法補齊,以vim内置的關鍵字給予補齊 |
-
- 注意:ctrl+x加上ctrl+f對檔案的字尾名有要求,如果字尾名有誤則不提供補齊功能,即C語言需要.c字尾名,css文法需要.html字尾名等
- 例如:我們編寫C語言檔案時,按下i,然後按下ctrl+x加上ctrl+f,則會顯示出以i開頭的關鍵給你選擇
八、vim環境設定與記錄(~/.vimrc,~/.viminfo)
- ~/.viminfo檔案:這個檔案會記錄你vim的使用記錄,例如你在vim中查找檔案内容,退出檔案時光标停留在檔案中何處等都會記錄下來
-
- /etc/vim/vimrc檔案:系統的vim的環境設定參數配置檔案。例如:記錄了檔案是否首行縮進,字型顔色如何顯示,是否自動儲存備份檔案等等。這個檔案是針對所有使用者使用vim時都生效的系統配置檔案,是預設配置檔案
- ~/.vimrc配置檔案:這個檔案與/etc/vim/vimrc檔案功能相同,也是記錄vim的環境設定參數。不過這個配置檔案是隻針對此配置檔案的擁有者與使用者組才生效的配置檔案。另外,這個檔案預設不存在,需要手動在~目錄下建立。例如:想要設定不同使用者自己的vim編輯器配置,則建立~/.vimrc檔案。如果建立了此配置檔案,則vim編譯器不再使用系統的/etc/vim/vimrc配置檔案,而是使用此配置檔案
-
- 注意事項:~/.vimrc為自己手動建立檔案,是以該配置檔案的擁有者與使用者組十分重要,配置檔案隻對自己的擁有者和使用者組使用vim編輯器時才生效(例如:dongshao使用者的~/.vimrc配置檔案裡面的參數隻有當donsghao這個使用者使用vim編輯器時才生效,其他人使用不生效)
- 相關配置參數:
:set nu :set nonu | 就是設定與取消行号啊! |
:set hlsearch :set nohlsearch | hlsearch 就是 high light search(高亮度搜尋)。這個就是設定是否将搜尋的字元串反白的設定值。預設值是 hlsearch |
:set autoindent :set noautoindent | 是否自動縮排?autoindent 就是自動縮排。 |
:set backup | 是否自動儲存備份檔?一般是 nobackup 的,如果設定 backup 的話,那麼當你更動任何一個檔案時,則源檔案會被另存成一個檔名為 filename~ 的檔案。舉例來說,我們編輯 hosts ,設定 :set backup ,那麼當更動 hosts 時,在同目錄下,就會産生 hosts~ 檔案名的檔案,記錄原始的 hosts 檔案内容 |
:set ruler | 還記得我們提到的右下角的一些狀态欄說明嗎?這個 ruler 就是在顯示或不顯示該設定值的啦! |
:set showmode | 這個則是,是否要顯示 --INSERT-- 之類的字眼在左下角的狀态欄。 |
:set backspace=(012) | 一般來說,如果我們按下 i 進入編輯模式後,可以利用倒退鍵 (backspace) 來删除任意字元的。但是,某些 distribution 則不許如此。此時,我們就可以透過 backspace 來設定啰~當 backspace 為 2 時,就是可以删除任意值;0 或 1 時,僅可删除剛剛輸入的字元,而無法删除原本就已經存在的文字了! |
:set all | 顯示目前所有的環境參數設定值。 |
:set | 顯示與系統預設值不同的設定參數,一般來說就是你有自行變動過的設定參數啦! |
:syntax on :syntax off | 是否依據程式相關文法顯示不同顔色?舉例來說,在編輯一個純文字檔時,如果開頭是以 # 開始,那麼該行就會變成藍色。如果你懂得寫程式,那麼這個 :syntax on 還會主動的幫你除錯呢!但是,如果你僅是編寫純文字檔案,要避免顔色對你的螢幕産生的幹擾,則可以取消這個設定 。 |
:set bg=dark :set bg=light | 可用以顯示不同的顔色色調,預設是『 light 』。如果你常常發現批注的字型深藍色實在很不容易看,那麼這裡可以設定為 dark 喔!試看看,會有不同的樣式呢! |
示範案例
- 第一步:我們在~/目錄下手動建立一個.vimrc配置檔案(該配置檔案屬于dongshao,是以隻有當dongshao使用vim時才生效)
- 第二步:設定配置檔案,将下面的設定參數寫入.vimrc檔案中并儲存。備注:set前面有沒有:都是一樣的(即:set與set都可以),檔案中"為注釋
- 我是小董,V公衆點選"筆記白嫖"解鎖更多【Linux入門基礎】資料内容。