vim簡單的實用總結(jié)
介紹vim常用的四種模式:一般模式,編輯模式,指令列命令模式與可視模式。
一,一般模式
用vim filename打開文件后直接進入的就是一般模式,在這個模式下可以用hjkl移動光標,這四個字母都是右手控制的,h往左,j往下(食指), k往上(中指),l往右,助記中指高食指低所以按k光標是往高處走,按j光標往下面走。
在一般模式下最常用的是光標定位,比如光標移動到第n行,則按nG,光標移動到最后一行直接按G就行。光標定位到該行末尾按$,光標移動到該行最前面按數(shù)字0,如果按數(shù)字n再按空格則光標向后移動n個字符的距離,如果數(shù)字n再按回車則光標相下移動n行.H將光標移動到該屏幕最上方第一個字符,M移動到該屏中央的第一個字符,L移動到該屏最下方那行的第一個字符.
在一般模式下經(jīng)常處理行操作,比如從光標所在行開始,nyy表示復(fù)制n行,p粘貼在光標之后,大P粘貼在光標之前,ndd刪除n行。其實記住y表示復(fù)制d表示刪除,然后記下面的操作就很簡單了,比如y1G表示復(fù)制光標所在行到第一行的所有數(shù)據(jù),yG復(fù)制光標所在行到最后一行的所有數(shù)據(jù),這樣大家就知道ynG是指復(fù)制到哪一行的意思了,由于w代表單詞或漢字所以ynw就代表從光標所在處開始復(fù)制n個單詞或復(fù)制n個漢字。yn回車直的就是復(fù)制下面的n行,yn空格指的就是復(fù)制接下來的n個字符。當然還可以復(fù)制到該行開始y0,復(fù)制到該行結(jié)尾y$.刪除也是同樣的只是將y換成d而已,
在一般模式下經(jīng)常用的一個撤銷是u重做是ctrl加r,如果要把光標所在行的下一行追加成一行,則按j就可以。
二,插入模式
就是進入可以編輯的模式,常用的有4個按鍵可以進入。i,a,o,r大小寫都可以,但是進入的位置不同,i是插入到光標所在處之前,a是插入到光標所在處之后,I是插入到這一行的最前面,A是插入到這一行的最后面,(其實a指的是after所以它每次都是在后面插入),o是插入到光標行的下一行,O是插入到光標行的上一行。r是替換光標處的字符(只能替換一個字符),R會一直取代光標所在的文字,直到按下esc為止。esc是從插入模式回到一般默式的鍵.插入模式就完了。
三,可視模式
一般的復(fù)制粘貼用可視模式是最直觀的也是比剛剛一般模式下復(fù)制粘貼更能滿足用戶感官的。主要有三種復(fù)制和刪除方式,第一種光標選中多少就可以復(fù)制多少,(按字符復(fù)制)。第二種總是復(fù)制成長方形區(qū)域,(也就是按列復(fù)制)。第三種是按行復(fù)制.
1,按字符選擇
按下v之后,光標所到之處都會變成白顏色,停止光標移動之后就代表選擇完了(光標可以由h,j,k,l控制),然后按y就表示把剛剛選中的白色區(qū)域復(fù)制下來了,然后到你想粘貼的地方按p或者P就可以粘貼了。如果選擇完后不是按y而是按d則會把剛剛選中的白色區(qū)域刪除。
2,按列選擇
ctrl+v之后再選擇的話就是按照長方形的塊選擇了,語言不好表述試試一下就明白了,選擇完成之后按y或者按d由你決定了。
3,按行選擇
按V之后就是按行選擇,光標所到行都會選中,相當于nyy的作用。
四,指令列模式
這個模式下功能最多了基本可以分為:/?這三種命令
1,"/"和"?"表示的是搜索功能
/后面跟要查找的字符串然后按回車鍵,表示從光標處向后搜索該字符串,如果要繼續(xù)向后查找下一個就按n表示next,N表示向上搜索下一個;?后面跟要查找的東西,然后回車表示向光標之前查找該字符串,不過此時n表示向前查找的下一個,而N表示向后搜尋的下一個,也就是說n是跟/和?的方向是一樣的,而N是跟/和?的方向相反。只需要掌握任意一種搜索法即可。
2,":"后面可以跟的命令就太多了。介紹三種第一種替換功能,第二種窗口分割功能,第三種vim設(shè)置功能
(1)替換
:n1,n2s/word1/word2/g 這個命令表示在第n1行和n2行之間尋找word1然后替換成word2,最后面的g表示行內(nèi)所以后查到的全部替換,如果g后面再緊接一個c表示每次替換之前系統(tǒng)都會提示你是否要替換。如果一直替換到文件末尾則n2可以用$表示,例如1,$s/hj/houjiao/g表示從第一行到最后一行將hj替換為houjiao,n2也可以用.替換,表示從n1行到當前位置進行查找。
(2)窗口分割
首先vim可以一次打開多個文件進行編輯,而不是用多次vi打開,因為多個vi打開的文檔之間不能直接nyy和p所以,用vim file1 file2 ..就可以一次打開多個文件,在一般模式下輸入 :n 表示切換到下一個檔案 :N 表示切換到上一個檔案進行編輯,用:files 顯示這次vi打開的所有文件信息。下面引出多窗口分割,即在打開文件之后再打開多個文件并且顯示在同一屏幕中,按不同窗口分割開來,具體的做法是在一般模式下輸入:sp [filename] 中括號表示該項可有可無,如果后面不加文件名,表示再新窗口中再打開一個與正在編輯的文件一樣的文件,如果加文件名表示在新窗口打開一個新文件。如果想在不同窗口間切換,則按ctrl + w + j切換到下面的窗口或者 ctrl + w +k切換到上面的窗口。這個功能真是強大。跟total command 那個軟件都差不多了。
(3)vim設(shè)置
進入vim后如果嫌文檔顯示界面不友好則可以設(shè)置很多東西,比如加行號:set nu可以讓你光標定位更直觀,加列號:set ruler可以在右下角看到你光標此時在哪一列,又比如:set bg=dark 可以使注釋行顏色鮮艷,:set backspace=2可以讓你在進入插入模式后能用回格鍵刪東西(設(shè)為0和1時不能),又比如:set hlsearch 可以使搜尋時的字符串高亮顯示。所有的這些都是可以在/etc/vimrc文件里面改的,但是這個文件里面的是不全的,你要是想看能設(shè)置哪些東西在一般模式下:set all 就可以看到關(guān)于vim設(shè)置的巨多功能。
(4)再補充一下文件的保存。 ZZ兩個大寫的Z表示存儲后離開與:wq是一樣的功能,:w是保存但是不退出,:q是離開vi 這些命令后面如果多加一個!表示強制執(zhí)行,:w filename 表示將文件另存為。:n1,n2 w filename 表示將n1行到n2的內(nèi)容保存到filename里面,再補充一點,如果正在vi里面想執(zhí)行shell命令是不需要:q退出vi后再輸入命令的,而是用:!command 就行,比如:! ls /home 就可以在vi中查看 /home 底下輸出的檔案信息。
最后補充一點,當遠程到服務(wù)器然后用vi打開文檔時中文可能出現(xiàn)亂碼情況這時你:set fileencoding 如果不是utf-8(因為一般設(shè)置的encoding都是utf-8的,可以用:set encoding查看)而是ansi1格式那就說明轉(zhuǎn)碼錯誤,你只需要在一般模式下按:edit ++enc=cp936然后回車基即可。
如果:set fileencoding是utf-8的那很有可能是終端顯示的問題,這時你設(shè)置:set termeencoding=gbk 即可,這個不是絕對能解決問題的,因為具體與終端顯示編碼方式,文件內(nèi)部編碼方式和文件轉(zhuǎn)換編碼方式和locale編碼方式有關(guān),但是以上兩種辦法是最常見的,可以解決大部分問題。
--jimmy_hou

浙公網(wǎng)安備 33010602011771號