Vim 學習筆記

2021-07-03 18:08:47 字數 4910 閱讀 1340

1.開啟檔案

vim filename 直接使用vim命令開啟乙個檔案。

q! / quit! 強制退出

zz  儲存檔案為常規的unix檔案

ls  列舉出當前目錄下的檔案

w   寫入檔案,但是不退出vim

wq  寫入檔案並離開vim,與zz類似

e! / q! 退出vim編輯器,不儲存編輯結果

w! filename 強制覆蓋現有檔案

!rm filename 刪除檔案

2. 移動游標

h, j, k, l

對應與向左移動乙個字元,向下移動一行,向上移動一行,向右移動乙個字元。

0  移到一行的開頭

$  移到一行的結尾

w / b  移動乙個單詞,向後/向前

g  移動到乙個特定的行,1g 移動到第一行

+  下一行的第乙個字元

-  上一行的第乙個字元

e / e  到單詞的結尾

vim的移動命令

ctrl+end  移動到檔案的末端

ctrl+home 移動到檔案的第一行,第乙個非空字元

count%    移動到檔案%n的地方,50% 移動到檔案的中間位置

4. 編輯命令

i  表示插入,在游標當前位置開始插入

a  表示追加,在當前游標之後的乙個位置開始

c  表示更改,

d  表示刪除,

a  在一行的結尾處附加文字

i  在一行的開頭處插入文字

o  在游標所在位置的下一行開啟新行

o  在游標的上一行開啟新行

s  刪除游標所在位置的字元後,再替換文字

s  刪除一整行後,再替換文字

r  用新的字元覆蓋現有的字元

c 命令:

cw  從游標到這個單詞結尾,修改

c2b 從游標往前的兩個單詞

c$ / c  從游標到行結尾

c0  從游標到行的開頭

cc  會將一整行換成任何輸入的文字。它刪除原來的行。

r  修改當前的字元,修改後直接回到命令列模式

修改字元,如將|| 替換為 && 可以輸入 2r& 

r  進入整行的覆蓋模式,直到按esc為止

s  修改幾個字元 3s 刪除當前游標及之後兩個字元,進入插入模式

s  刪除整行,並在行其實位置進入插入模式

~  將當前的文字變為大寫

dw 刪除游標到本單詞的結尾處

dd 刪除當前行  2dd 刪除兩整行

db 刪除游標到單詞開始處

d$ / d0 刪除游標到行末/行起始位置

d  刪除游標到行的結束所有的內容

x  刪除乙個字元  3x 刪除三個字元

u  只會撤銷最近一次命令

p  恢復最近幾次的刪除動作,vim儲存了最近9次的動作 3p

恢復緩衝區的第三個

複製、剪下與貼上:

dd  刪除一整行,p 將刪除的行貼上到游標所在行的下一行

x p 可以將兩個字元對調

y 複製命令   yw複製乙個單詞,y$複製游標到行末  4yy 複製4行內容

y 和yy的功能相同(d,c的功能和 dd,cc功能不同)

. 用於重複上一條命令

j  用於將當前行 和下一行 合併

[++ 

注釋:(command)(number)(text object)

或者相等的模式

(number)(command)(text object)

命令+數字+文字物件 

3k 向上移動三行 / d3 刪除當前行及其之後兩行,共三行

--]5. 高階移動命令

滾動:ctrl+f   往前滾動一整屏

ctrl+b   往後滾動一整屏

ctrl+d   往前滾動半螢幕

ctrl+u   往後滾動半螢幕

z enter

將游標移動到螢幕頂端,並滾動螢幕

z .

將游標移動到螢幕中心,並滾動螢幕

z -

將游標移動到螢幕底端,並滾動螢幕

200z enter  會將200行移動到螢幕頂端

h  移動到螢幕頂端的行

m  移動到螢幕**的行

l  移動到螢幕底端的行

nh 移動到螢幕往下的第n行

nl 移動到螢幕底端網上的第n行

enter 移動到下一行的其實位置

+  移動到下一行的第乙個字元

-  移動到上一行的第乙個字元

^  移動到當前行的第乙個非空格處

n| 移動到當前行的第n列

e  移動到單詞的結尾

e  移動到單詞的結尾,忽略標點符號

(  移動到當前句子的開頭

)  移動到下乙個句子開頭

移到下一段的開頭

[[ 移到本節的開頭

]] 移到下節的開頭

搜尋:/  搜尋命令,向後搜尋,/pattern  pattern可以是乙個完整單詞,或字串

?  向前搜尋,用法和 / 相同

n  向同乙個方向重複搜尋

n  向相反的方向重複搜尋

/enter 往前重複搜尋

?enter 往後重複搜尋

g(轉至)命令

100g  轉到文字的一百行。

``    回到移動前的位置

''    回到移動前位置所在行,行首位置

6. :set option 命令

:set all 列舉出所有的選項

:set autoindent  設定自動縮排縮排

:set shiftwidth=4 設定shiftwidth與製表符 tabstop 距離相同

:set tabstop=4    設定製表符 tab為4個字元

set nu

設定行號

set wm / wrapmargin  設定自動換行的寬度

7. 程式設計

特殊的搜尋命令:

( [ ) 上,輸入zf%,將其中的內容摺疊。

zfgg  將游標到檔案開始處的內容摺疊。

自動智慧型縮排:

:set cindent  可以理解c語法,

關鍵字補全:

:help compl -generic / :help 'complete' / :help ins-completion 

調出自動補全的功能。

ctrl-n  ctrl-p 在當前緩衝區 查詢以游標前關鍵字開始的單詞。

ctrl-x ctrl-l  整行補全

ctrl-x ctrl-n  根據當前檔案裡關鍵字補全

ctrl-x ctrl-k  根據字典補全

ctrl-x ctrl-t  根據同義詞字典補全

ctrl-x ctrl-i  標頭檔案內關鍵補全

ctrl-x ctrl-j  根據標籤補全

ctrl-x ctrl-f  補全檔名

ctrl-x ctrl-d  補全巨集定義

ctrl-x ctrl-o  呼叫omnifunc定義的函式

在全能補全中,ctrl-x / ctrl-n 用於選擇。不需要回車。

ctrl-x ctrl-u  呼叫completefunc定義的函式

:imap tab

將tab對映為補全鍵。在tab鍵前後輸入ctrl+v就可以輸入tab鍵了。

語法的高亮:

:syntax enable

:syntax on

:highlight comment  以高亮顯示乙個單詞

8.vim多視窗的功能

vim -o file1 file2  -o 命令指明使用多視窗的方式開啟兩個檔案

-o 後新增數字, vim -o5 file1 file2 將vim分割為5個視窗,前兩個開啟檔案

:split  建立新的視窗(水平分割),兩個視窗均顯示相同的檔案內容

:vsplit 建立垂直分割的視窗

:split otherfile  則在新的視窗中開啟 otherfile

:[n]split [++opt] [+cmd] [file]

完整的split命令形式

n    為vim指定新視窗顯示的行數

opt  為vim新視窗傳遞選項資訊 前面要加兩個 加號

cmd  傳入欲在新視窗中執行的命令,前面必須加乙個加號

file 在新視窗中編輯的檔案

new / vnew  命令與split / vsplit含義類似

sview filename  新建視窗以唯讀方式 開啟檔案

sfind [++opt] [+cmd] filename 搜尋檔案,找到則建立新視窗開啟檔案

視窗之間切換:

ctrl+w down / ctrl+w j 切換到下乙個視窗

ctrl+w up / ctrl+w k   切換到上乙個視窗

ctrl+w left / ctrl+w h 切換到當前視窗的左邊視窗

ctrl+w right / ctrl+w l切換到當前視窗右邊的視窗

ctrl+w t / ctrl+w ctrl+t 切換到左上角的視窗

ctrl+w b / ctrl+w ctrl+b 切換到右上角的視窗

ctrl+w 在視窗之間切換

ctrl+w p 移動到前乙個訪問視窗

ctrl+w r 向右或向下方輪換視窗,ctrl+w r,輪換方向相反。

(注意這個不是在視窗之間切換,而是移動視窗位置)

ctrl+w x 向右或向下方輪換視窗,ctrl+w x,輪換方向相反。

建立多個分頁,tab。

:tabnew filename

在新的分頁開啟並編輯新檔案,不指定檔案則開啟乙個空的tab。

:tabclose 關閉當前的分頁

:tabonly 關閉其他的所有分頁,除非檔案被修改了,沒有設定 autowrite。

quit 離開視窗

close 關閉視窗

hide 隱藏視窗

vim學習筆記

首先安裝vim,接著進行最基本命令的聯絡。在命令列模式下輸入 vimtutor 會開啟乙個文件,按照文件上的步驟進行最基本的使用練習。1 檢視文件編碼 開啟乙個在windows下的文字時中文顯示亂碼,於是網上搜了一下,首先是檢視編碼 set fileencoding 2 查詢替換 s aaa bbb...

vim學習筆記

江湖傳說linux下最強的編輯器emacs與vim一直相持不下,很難分辨誰強誰弱,但對於個人來說最強大並不表示最適合,選擇一款適合自己的編輯器,才是硬道理。所以本人選擇了vim。學習vim之前先要有個心理準備。為什麼?網上有個主流文字編輯器的學習曲線,知道vim的曲線是怎麼樣的嗎?請看下圖。陡峭的學...

VIM學習筆記

using vim 2003 02 15 tips in programing quickly find the object cfile clist clist cccc nr cnext cprevious cfirst clast crewind about indent set autoin...