專案資料夾瀏覽:
// 在 vim 的編輯視窗下:
:e .:可進到當前的目錄結構來瀏覽
// 安裝 Vundle
$ git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
// 在 NERDTreeToggle按?可看指令說明
更新:
$ cd ~/Documents
// 然後直接打 vim 進入 vim 編輯視窗
$ vim
// 然後編輯完檔案按 :w filename.text 即可新增這個檔案於 ~/Documents
:pwd:可直接看目前的所在目錄路徑
:e ~/.vimrc:在編輯某個檔案時,直接切換編輯 ~/.vimrc 檔案
:so %:在編輯 ~/.vimrc 時,直接輸入這個並儲存後,可直接讓所編輯的設定生效。so 指的是source,百分比符號指的是目前這個檔案。
:echo $MYVIMRC:顯示 .vimrc 檔案所在的路徑。
:bd:buffer delete,若有用 tabedit 來開啟分頁,可用 bd 關閉,但這會關閉所有的 tab(分頁)。
:bp:buffer previous,可用 bp 回上一個 buffer。
:bn:buffer next,可用 bp 回上一個 buffer。
:ls:列出所有 buffer,然後可用 :b1、:b2 來切換 buffer
:tabc:僅關閉當前這個 tab (分頁)。
.:重覆執行上一次的指令。
zz:將畫面移到游標這行的中間
:sp:水平分割視窗
:vsp:垂直分割視窗
^wj:移動到下面的視窗,其它方向:(^wk)、(^wh)、(^wl)
^ww:直接切換視窗
^w|:將目前所在視窗整個放大。
^w=:平均分割所有視窗。
$ cd ~/.vim $ mkdir colors // 若此資料夾已存在,就不用再建立 // 進到此網址,再到 colors 資料夾,點選 atom-dark.vim 檔案,再點 raw 按鈕。 // $ wget [網址],此例為: $ wget https://raw.githubusercontent.com/gosukiwi/vim-atom-dark/master/colors/atom-dark.vim
編輯與移動
i:進入編輯模式,游標會停留在原來的位置。(insert)
a:進入編輯模式,游標會停留在原來位置的右邊。(append)
u:回覆上一次的編輯。
ctrl + r:回覆上一個按u的動作。
U:回覆最後一行的編輯。
ZZ:儲存並離開所編輯的文件。
o:在游標的下方新增一行,並進入編輯模式。
O:在游標的上方新增一行,並進入編輯模式。
:help
ctrl + ]:在查閱文件時,看到|包起來的符號,代表是連結,可用”ctrl + ]”來進入看該指令的說明,例如:|:grep|。
ctrl + t:在查閱文件時,已進入連結,若要離開,即可使用”ctrl + t”。
:help x:查閱x指令的文件,x也可以換成其它要查詢的指令。
2k:代表要將游標往上移動2行。
3a!
3x:刪除3個字元。
w:游標往前移動一個單字,也可以在前面加數字,例如3w,可移動3個單字。
b:游標往回移動一個單字,也可以在前面加數字,例如3b,可往回移動3個單字。
$:將游標移動到該行的結尾,可加數字在前面,例如:2$,就是移到下面一行的結尾。
^或0:將游標移動到該行的開始。
f:游標所在該行的forward search,例如:fs,則會在該行往前停在有s的位置;可加數字,例如2fs,游標會停在第二個s的位置。
F:同上,但是是往回搜尋。
t:與f類似,但會停在所找到字元的前一個位置,例如ts:會往前找到s,並停留在前一個字元。
T:與t同,但是是往回搜尋該行。
G:若只打G,則會跳至最後一行的開始;若打2G,則會跳至第二行的開始。
ctrl+g:會顯示目前檔名、所在行數/共有幾行、百分比、所在為第幾個字元。
ctrl+u:往上捲動半個頁面。
ctrl+d:往下捲動半個頁面。
dd:刪除一整行,並行底下的所有行會往上移。
dw:刪除一個單字,含後面的空白。前面可加數字,例如:2dw。
d$:刪除目前游標所在這行的位置至這行的結尾。
cw:刪除游標所在位置至該單字的結尾,並進入編輯模式。
c$:刪除游標所在位置至該行的結尾,並進入編輯模式。
cc:刪除該行,並並進入編輯模式。
.:可以重覆執行最後刪除或更改的動作。
J:可以合併游標目前所在這行及下一行,且該行最後會加一個空格,以利區隔;若加入數字,例如3J,則會合併游標所在這行及下面2行。
ra:將游標目前所在位置的字元,取代為a,所以a可換為其它字元。5ra則可替換成5個a。
~:將大寫轉為小寫,或小寫轉為大寫。前面也可加數字。
:dig:可查詢特殊字元(或輸入:digraphs),在編輯模式下,輸入(ctrl+k)Eu,則可輸出€
:set nu 及 :set nonu:顯示行號 及 不顯示行號。(也可以是:set number 及 :set nonumber)
搜尋
/string:搜尋string這個字串,有分大小寫(可藉由:set ic來忽略大小寫)。搜尋完後,再按n可持續往下一個搜尋;或按N是往回搜尋,前面可加數字,例2n或2N。
?string:往回搜尋string這個字串,有分大小寫(可藉由:set ic來忽略大小寫)。其餘同上。
:set hlsearch:設定高亮度顯示搜尋結果。
:set nohlsearch:關閉高亮度顯示搜尋結果,若要再啟用,需再輸入:set hlsearch
:nohlsearch:關閉目前這次搜尋結果的高亮度顯示。
:set incsearch:在關鍵字邊輸入就邊顯示搜尋結果。
:set noincsearch:關閉”在關鍵字邊輸入就邊顯示搜尋結果”。
正規表達式(Regular Expression)
/^string:找出開頭是string的每一行。
/string$:找出結尾是string的每一行。
/c.o:找出com、company等字詞。若要找特殊字元,例如.那就使用\.來找出。
剪下、貼上、複製
p:可將使用d與x所刪除的內容,用p來貼上。例如按下dd、dw、x,再按下p,就會再度貼上。p即是put的意思。會將所貼的內容,貼至游標之後。前面可加數字,代表貼上幾次。
P:同p,但會將所貼的內容,貼至游標之前。前面可加數字,代表貼上幾次。
ma或mb:a跟b可為a~z的字母,代表將目前游標所在位置標示位置,位置名稱即為a~z。
:marks:顯示所有的marks。
`a:將標游移到mark為a的位置,所以也可以是`b、`c。
‘a:若是打單引號的話,會將游標移到mark為a的那行一開始處。
:marks a:只顯示mark為a的資訊。
d’a:將mark為a的那行到游標所在的位置,整個刪除。
:vi file2.txt:編輯另一個檔案,會跳離目前所在的這個檔案,若尚未儲存,會出現警告訊息,可使用:vi! file2.txt來強制離開目前此檔案,直接編輯file2.txt。
:view file2.txt:會以唯讀模式開始file2.txt,然後若想要編輯,則需強制儲存,輸入:w!
編輯多個檔案
vim file.txt file2.txt file3.txt:下該指令,可同時編輯這3個檔案。
:next:可進入到下個檔案,使用:next!可強制儲存目前所要離開的檔案。也可使用:2next直接往下進入後面第2個檔案。
:set autowrite:開啟自動儲存功能。
:set noautowrite:關閉自動儲存功能。
:previous或:Next:可往回編輯上一個檔案。
:args:可顯示目前用vim所開啟的檔案,並用中括號顯示目前所編輯的該檔。
:rewind或:first:無論你在編輯哪一個檔案,可跳回至第1個檔案。
:last:無論你在編輯哪一個檔案,可跳至最後一個檔案。
視窗(Windows)
:split:分割視窗,會開啟同一個檔案。
ctrl+ww:可讓游標切換視窗。
ctrl+wj:可讓游標往下切換視窗。
ctrl+wk:可讓游標往上切換視窗。
:q:類閉目前視窗。
:split file2.txt:分割視窗,會開啟file2.txt這個檔案。
:5split file2.txt:分割視窗,會開啟file2.txt這個檔案,並設定只顯示5行的高度。
:new:一樣是分割視窗,但會是開啟新的檔案來編輯。
:sview file2.txt:分割視窗,會以唯讀方式來開啟file2.txt檔案。
ctrl + n:水平平割視窗。
ctrl + v:垂直分割視窗。
5ctrl+w,-:按數字5,接著按ctrl+w,然後按-,可將目前視窗縮小5列的高度。(注意:ctrl+w按完後要放開,才接著按-)。
5ctrl+w,+:按數字5,接著按ctrl+w,然後按+,可將目前視窗增高5列的高度。(注意:ctrl+w按完後要放開,才接著按+)。
5ctrl+w,=:按數字5,接著按ctrl+w,然後按=,可將目前視窗分均分配。(注意:ctrl+w按完後要放開,才接著按=)。
Basic Visual Mode
v:直接進入visual mode模式。此時按上下左右都會框選起來,若再按d,就會將所框選起來的這些行都刪除。按下Esc可離開visual mode模式。
V:會進入line visual mode模式,但游標所經過的,都會是以整行來框選。按下Esc可離開visual mode模式。
ctrl + v:會進入block visual mode模式,但游標所經過的,都會是以區塊的方式來框選。按下Esc可離開visual mode模式。
d:在visual mode下,按d可刪除所框選的字。
D:在visual mode下,按D可刪除所框選的那些行。即使該行只有部份字被框選,一樣會刪除整行。
y:在visual mode下,複製所框選的字。
Y:在visual mode下,複製所框選的整行。
c:在visual mode下,使用c可以刪除所框選的字,並進入insert mode下。
C:在visual mode下,使用C可以刪除所框選的字的所有行,並進入insert mode下。
J:在visual mode下,使用J可以合併所框選的行,並以空白來做區隔。
gJ:在visual mode下,使用gJ可以合併所框選的行,但並不會以空白來做區隔。
Istring<Esc>:進入block visual mode後,用游標框選任何區塊後,按Istring<Esc>,就會在每一行插入string文字。
cstring
Cstring
Astring
rstring:在block visual mode下,按rstring,所有被框選的範圍內,都會被取代成為string字串。
>:可讓所框選的文字向右位移,預設是8個空格。可藉由:set shiftwidth=2來重新設定位移的空格數。
格。可藉由:set shiftwidth=2來重新設定位移的空格數。
程式設計師常用的指令
:set background?:可以查詢目前背景所用的是dark還是light模式,可使用:set background=dark或:set background=light來指定。
:set filetype?:查詢目前顏色的類型是什麼,可用:set filetype=php來指定該檔為php類型的檔案。vim預設會用副檔名來判斷是何種類型。
>>:向右位移,預設是8個空白。可使用:set shiftwidth=2來更新預設值。
<
5>>:指定5行一起向右位移。
5<
:set cindent:可以再{}內自動縮排。視需求也可以是:set smartindent或:set autoindent
==:讓目前這行自動縮排,2==讓目前這行及下一行自動縮排,很好用。因為會自動偵測要內縮還是外縮,會自動跑到適當位置。也可以在visual mode模式下,按一個=即可。
gd或gD:搜尋目前所在位置的單字。
%:可以在{}、[]、()、/*…*/之間,直接在區塊頭尾之間跳動。
關於 ~/.vimrc
// 編輯程式碼時,可以讓文字以亮色顯示。 set background=dark // 顯示行號 set nu // 不要顯示行號 set nonu