目前主要的編輯器都有恢復功能,vim也不例外。vim是經過「保存」文件來挽回數據的。vim
每當咱們在用vim編輯時,vim都會自動在被編輯的文件的目錄下面再新建一個名爲filename.swap的文件。這就是一個暫存文件,咱們對文件filename所作的操做都會被記錄到這個文件當中。若是系統意外崩潰,致使文件沒有正常保存,那麼這個暫存文件就會發揮做用。下面用一個例子來講明(Note:我用的是Ubuntu)。編輯器
打開終端,輸入命令,將etc目錄下面的manpath.config複製到tmp目錄下面,而且更改當前工做目錄爲tmp:ui
cp /etc/manpath.config /tmpspa
cd /tmp
.net
用vim編輯manpath.config文件:vim manpath.config。命令行
咱們在vim的通常模式下按下Ctrl+z組合鍵,vim就會被丟到後臺執行。回到命令提示符環境後,咱們模擬將vim的工做不正常中斷。blog
kill -9 %1;強制殺死制定的進程。進程
這樣致使暫存盤沒法經過正常的流程結束,因此暫存文件不會消失,而是繼續保留下來。當再次編輯那個文件時(輸入命令vim manpath.config),出現:get
這時,有六個按鈕可使用:it
O(pen for Read-Only):打開成只讀文件。
E(dit):用正常方式打開要編輯的文件,並不會載入暫存文件的內容。這很容易出現兩個用戶相互改變對方的文件的問題。
R(ecover):加載暫存文件的內容。
D(elete):若是你肯定這個暫存文件是沒有用的,則能夠刪除。
Q(uit):不進行任何操做,回到命令行。
A(bort):忽略這個編輯行爲,和Q相似。
須要注意的是:這個暫存文件不會應爲你結束vim後自動刪除,必需要手動刪除。不然每次打開對應的文件時都會出現這樣的提示。
3、vim的功能
【1】塊選擇:
這個功能可讓咱們複製一個矩形區域的內容,十分方便。
v:字符選擇,會將光標通過的地方反白選擇;
V:行選擇;
Ctrl+v:塊選擇; 這個用法方便刪除註釋 和文章前面的沒用信息
y:複製反白的地方;
d:刪除反白的地方。
示例以下:
須要注意的是,粘貼時候也是粘貼在一個塊的範圍內,而不是以行爲單位來處理的。
【2】多文件編輯
咱們在兩個或多個文件之間複製粘貼內容時,這個功能會讓咱們方便不少。
使用命令vim name1 name2 name3...(各個文件名之間用空格隔開)能夠同時打開多個文件。
:n:編輯下一個文件;
:N:編輯上一個文件;
:files:列出目前vim打開的全部文件。
【3】多窗口功能
能夠在一個窗口中打開多個文件。
輸入命令:sp{filename}即可以實現這個功能。若是想要在新窗口啓動另一個文件,則加入文件名。若是省略文件名,則打開的是同一個文件。
用一個例子來講明。
vim manpath.config打開一個文件。在通常模式下輸入:sp。發現打開的是同一個文件。若是再輸入:sp /etc/hosts。則變成:
其餘的按鍵功能:
Ctrl+w+j:先按下Ctrl不放,再按下w後放開全部的按鍵,再按下j(或向下箭頭鍵),則光標能夠移到下方的窗口;
Ctrl+w+k:同上,不過光表移到上面的窗口;
Ctrl+w+q:離開。
【4】vim環境設置
須要注意的是,vim會將i咱們的之前的行爲都記錄下來,以方便咱們操做。它保存在文件:~/.viminfo中。
vim經常使用的環境設置參數命令以下:
:set nu 設置行號
:set nonu 取消行號
:set hlsearch 設置高亮度查找
:set nohlsearch 取消高亮度查找
:set backup 自動備份文件
:set ruler 開啓右下角狀態欄說明
:set showmode 顯示左下角的INSERT之類的狀態欄
:set backspace={0,1,2} 設置退格鍵功能。爲2時能夠刪任意字符。爲0或1時僅能夠刪除剛纔輸入的字符。
:set all 顯示目前全部的環境參數值
:set 顯示與系統默認值不一樣的參數值
:syntax on/off 是否開啓依據相關程序語法顯示不一樣的顏色
:set bg=dark/light 是否顯示不一樣的顏色色調
可是咱們沒有必要每次使用vim都要從新設置一次各個參數值。咱們能夠經過配置文件來直接規定咱們習慣的vim操做環境。總體vim的設置值通常是放在/etc/vimrc中的。咱們通常不要修改這個文件。咱們能夠經過修改~/.vimrc這個文件,若是不存在,能夠手動建立。而後將咱們所但願的設置值寫入。例如,咱們能夠這樣寫:
建立並保存這個文件以後,當下次從新以vim編輯某個文件時,該文件的默認環境就是這麼設置的。