天天看點

linux基礎之vim的使用

1.    vi的介紹

基本上vi共分為三種模式:

指令模式(command mode)

         以vi打開一個檔案就直接進入指令模式。在這個模式中,可以使用[上下左右]按鍵來移動光标,删除字元來處理檔案内容,也可以複制粘貼檔案資料。

插入模式(insert mode)

         在指令模式下輸入:[i Ia A o O]等任何一個字母就會進入插入模式。這時候就可以進行檔案編輯工作了。

         i:在目前光标所在處前輸入。

         I:在目前光标所在處行首輸入。

         a:在光标所在處後輸入

         A:在光标所在處行尾輸入

         o:在光标所在處的下一行增加一個空白行

         O:在光标所在處的上一行增加一個空白行

指令行模式(command-line mode)

         在指令模式當中,輸入[:/ ?]任何一種,就可以進行指令行模式。

那麼如何退出vi呢?

         如果是在插入模式,那麼要敲入【ESC】鍵,輸入

         :q!強制退出,即不儲存退出

         :wq儲存退出

         :wfilename 儲存檔案

         :x儲存并退出

         如果是在指令行模式下,直接輸入ZZ,即為儲存退出.

2.    vi使用

1.      按鍵說明

指令模式下的按鍵說明:

                               移動光标

h或 向左箭頭鍵               光标向左移動一個字元

j 或 向下箭頭鍵               光标向下移動一個字元

K或 向上箭頭鍵               光标向上移動一個字元

l 或 向右箭頭鍵               光标向右移動一個字元

     如果想要進行多次移動,例如向下移動30列,可以使用30j的組合按鍵

【Crtl】+【f】                 螢幕向下移動一頁,相當于【page Down】按鍵

【Crtl】+【b】                螢幕向上移動一頁,相當于【page up】按鍵

【Ctrl】+【d】                螢幕向下移動半頁

     【Ctrl】+【u】                螢幕向上移動半頁

n【space】                   光标向右移動n個字元

0                            移到光标所在行的行首

$                            移到光标所在行的行尾

G                            移動這個檔案的最後一行

nG                           移動到這個檔案的第n行

gg                           移動到這個檔案的第一行

     N【enter】                   光标向下移動n行

w                           跳至下一個單詞的詞首

b                            跳至前一個單詞的詞首

e                            跳至目前或下一個單詞的詞尾

                        搜尋與取代

/key                         向光标之下尋找key這個關鍵字

?key                         向光标之上尋找key這個光鍵字

使用 /key 配合n或N是非常有幫助的。

n                            向下搜尋下一個關鍵字

N                            向上搜尋下一個關鍵字

:n1,n2s/word1/word2/g       取代

:1,$s/word1/word2/g        從第一行到最後一行尋找word1,并用word2取代

s/ / /gci

g:鎖定所有查找的内容

c:人機互動

i:忽略大小寫

其中,為了避免轉義的問題,/可以用@,#等符号來代替。

                      删除,複制與粘貼

X,x                           在一行中,x為向後删除一個字元,X為向前删除一個字元

#x                            #為數字,連續向後删除#個字元  

dd                            删除光标所在的一行  

#dd                           删除光标所在向下#行

d0  d^   d$  dG等

yy                            複制光标所在的行

#yy                           複制光标所在的向下#行

P                             粘貼

u                             撤銷

【Crtl】+【r】                 撤銷此前的撤銷

2.      vim可視化模式

在指令模式下輸入v,可進行手動全選模式。

V:標明光标所在的目前行

標明之後,之前的編輯指令都可以使用

3.      打開多個檔案

:next    下一個

: prev   上一個

:first    第一個

:last    最後一個

為了友善比較,可以使用–o或-O選項

vim –o :橫屏比較

vim –O:豎屏比較

怎樣在兩個檔案中移動光标呢?

橫屏比較  使用【Crtl】+w   上下箭頭

豎屏比較  使用【Crtl】+w   左右箭頭

在同一個檔案中,可以使用分屏來比較不同之處

使用【Crtl】+w,s 水準分割

使用【Crtl】+w,v 垂直分割

4.      vim的環境設定參數

:set nu                             設定行号

:set nonu                           取消行号

:set ai                              自動縮進

:set ic                              忽略大小寫

:set sm                             顯示與之比對的符号

:syntax on                          文法高亮

:set hlsearch                        搜尋高亮

:set autoindent                      自動縮進