Vim的經常使用命令筆記

【簡介】shell

Vim是vi編輯器的改進版。vi是類UNIX系統裏最經常使用的編輯器。vim

 

【模式】編輯器

在shell中直接打vim filename就會進入普通模式。按i鍵進入編輯模式,此時Vim底部顯示INSERT表示能夠編輯內容了。按Esc鍵退出編輯模式,按:切換到命令模式。spa

 

【經常使用命令】code

進入viorm

vi filename   打開或新建文件,並將光標置於第一行首blog

vi +n filename  打開文件,並將光標置於第n行首文檔

vi + filename  打開文件,並將光標置於最後一行首cmd

vi +/pattern filename  打開文件,並將光標置於第一個與pattern匹配的串處
it

vi filename....filename  打開多個文件,依次進行編輯

vi -r filename  在上次正用vi編輯時發生系統崩潰,恢復filename

 

從光標開始處向文件尾搜索。好比搜user  按Esc再按/user

從光標開始處向文件首搜索。  ?user

在同一方向重複上一次搜索命令  n

在反方向重複上一次搜索命令  N

查看某行  :行號

撤銷上次操做  u

代碼自動補全  Ctrl+n

刪除當前字符  x或DEL鍵  (刪除內容保存在緩衝區。x刪除光標後的,X刪除光標前的)

刪除當前行  dd  (刪除內容保存在緩衝區)

刪除當前光標至行尾的全部內容  d$

刪除從當前行至文件末尾的全部行  dG

刪除至當前行首  d0

左右字符互換  xp

上下兩行內容互換  ddp

把當前行復制到緩衝區  y

把緩衝區中的文本插入到當前位置  p

把當前行復制到a緩衝區(可用26個字母命名多個緩衝區)  ay

把a緩衝區中的文本插入當前位置  ap

上下兩行合併成一行  J

重複執行上次執行的命令  .

複製粘貼一整行。假如光標在行首,要複製一行,先按Esc到命令模式,再按yy,再按p,就在該行下面複製粘貼了一整行。或者V選擇拷貝內容(一行高亮),Y拷貝,P粘貼到新地方。

複製粘貼某一區間。光標移動到想要複製的字符下,按Esc,按v進入visual模式(可用高亮的色塊選擇內容),按左右鍵移動到想要複製的字段末尾,按y複製,光標移動到想要粘貼的地方,按p粘貼。

對比2個文件  vimdiff file1 file2

 

移動光標類命令

h  j  k  l

左  下  上  右

nk  向上移動n行 

nj  向下移動n行 

nh  向左移動n列 

nl  向右移動n列 

$  光標移動到當前行行尾

G  光標移動到文檔最後一行開頭

H  光標移動到當前屏幕首行開頭

L  光標移動到當前屏幕末行開頭

M  光標移動到當前屏幕中間行開頭

{  光標上移一個段落

}  光標下移一個段落

(  光標移動到句首

)  光標移動到句尾

w或W   光標右移一個字至字首

b或B   光標左移一個字至字首

e或E   光標右移一個字至字尾

nG  光標移至第n行首

n+  光標下移n行

n-  光標上移n行

n$  光標移至第n行尾

0  (注意是數字零)光標移至當前行首 
 

插入文本類命令

i  在光標前

I  在當前行首

a  光標後

A  在當前行尾

o  在當前行之下新開一行

O  在當前行之上新開一行

r  替換當前字符

R  替換當前字符及其後的字符,直至按ESC鍵

s  從當前光標位置處開始,以輸入的文本替代指定數目的字符

S  刪除指定數目的行,並以所輸入文本代替之

ncw或nCW  修改指定數目的字

nCC  修改指定數目的行

 

命令模式下

:q!  不保存退出vim

:w  保存文檔,不退出vim

:x  保存並退出

:! command  運行shell命令

:r! command  將命令cmmand的輸出結果放到當前行

:e filename  編輯/打開一個文件

:s/one/two  在當前行中把第一個one替換成two

:s/one/two/g  把當前行中全部的one替換成two

:%s/one/two/g  在全局範圍內把one替換成two

:n1,n2s/one/two/g  將第n1行至n2行中全部的one替換成two

:tabe  新建一個標籤頁

:close  關閉當前標籤頁

:tabp  切換到上一個標籤頁

:tabn  切換到下一個標籤頁

:qa  關閉全部標籤頁並退出

:set number  列出行號  

:reg  列出緩衝區內容

:set all  列出全部參數的配置狀況 

:set ignorance  設置在搜索中忽略大小寫 

:set nowrapscan  禁止vi在搜索到達文件兩端時,又從另外一端開始

:set warn  在轉到別的文件時若沒保存當前文件則顯示NO write信息 

:n1,n2 d   將n1到n2行之間的內容刪除  

:n1,n2 co n3  將n1行到n2行之間的內容拷貝到第n3行下

:n1,n2 m n3  將n1行到n2行之間的內容移至到第n3行下

 

屏幕翻滾類命令

Ctrl+u  向文件首翻半屏

Ctrl+d  向文件尾翻半屏

Ctrl+f  向文件尾翻一屏

Ctrl+b  向文件首翻一屏

nz  將第n行滾至屏幕頂部,不指定n時將當前行滾至屏幕頂部

 

【vimrc配置】

在命令模式下用set命令設置的東西是不能保存的,下次打開vim時又要從新設置。因此vim提供了一個配置文件叫vimrc,能夠保存自定義的配置信息。該文件在Debian系統中位於/etc/vim/目錄下。在該文件中,以雙引號開頭的是註釋。

set autoindent

自動縮排,如當前行是從第3個字符的位置開始編輯的,按回車後光標會自動定位在下一行第三3個字符的位置。

set paste

置粘貼模式,這樣粘貼過來的程序代碼就不會錯位了。

打開文件時自動回到上次編輯位置。

if has("autocmd")
   autocmd BufRead *.txt set tw=78
   autocmd BufReadPost *
      \ if line("'\"") > 0 && line ("'\"") <= line("$") |
      \   exe "normal g'\"" |
      \ endif
endif
相關文章
相關標籤/搜索