Vim 多文件開發

今天看到同事從容用vim 看文件內容時,又看到一些值得記錄的指令。

視窗相關指令

vim -o file1 file2 用水平分割的方式開啟 file1 與 file2

vim -O file1 file2 用垂直分割的方式開啟file1與 file2

在已經開啟檔案的情況下,

:vs : 可以將目前的開啟的檔案, 再同步開啟在另一個垂直分割的視窗。

:sp file1.txt : 可以再另一個水平分割視窗上開啟file1.txt.

:vs file1.txt: 可以再另一個垂直分割視窗上開啟file1.txt.

ctrl + ww : 在多個開啟的視窗中切換

Tabs 相關指令

vim -p file1 fil2 : 用tabs分割的方式開啟file1與 file2

vimi -p *.md : 用wildcard 的方式開啟所有.md 結尾的檔案。

gt : 移動到下一個tab

gT: 移動到上一個tab

number + gt : 移到動第ith個tab

:tabedit file : 在另一個tab 上開啟file

Vim configuration

github 上找到了這個別人設定好的vimrc,直接鍵入下面的指令就可以開箱即用了

git clone --depth=1 https://github.com/amix/vimrc.git ~/.vim_runtime 
sh ~/.vim_runtime/install_awesome_vimrc.sh

為開啟的檔案中,顯示row number。

vim ~/.vimrc 開啟設定檔以後,加入下面的指令以後,之後開啟任何檔案時顯示row number.

set number

Reference

Vim 常用指令

最近開始較常使用vim,感覺可以趁這個機會把一些常用的指令整理一下XD

編輯相關指令

i : 在目前編輯的指標處,直接進入編輯模式。

a : 移動到目前編輯指標處的下一個字,並直接進入編輯模式。

s : 在目前編輯的指標處,刪除目前的當下字,並進入編輯模式。

shift + i : 在目前的這一列上,將指標移到最前方,並進入編輯模式。

shift + a : 在目前的這一列上,將指標移到最後方,並進入編輯模式。

o : 在目前的這一列上插入下一列,將指標移到下一列的最前方,並進入編輯模式。

shift + o: 在目前的這一列上插入上一列,將指標移到上一列的最前方,並進入編輯模式。

移動相關指令

j : 往上移動一個單位

k: 往下移動一個單位

backspaceh: 往左移動一個單位

spacel: 往右移動一個單位

數字+{j 或 k 或 h 或 l} : 往特定方向移動所指定的單位數。 (e.g. 20j -> 往上移動20列)

w: 往右移動到下一個字開頭

b: 往左移動到這個字開頭,或移動到上一個字的開頭

e: 往右移動到目前這個字的結尾

^: 移動到目前這一列的開頭

$: 移動到目前這一列的結尾

刪除相關指令(cut)

x: 刪除目前指標所在的這個字元。

D: 刪前目前指標所在的字元到整列結束的所有字。

dd : 移除目前指標所在的這一列,並複製下來。

dw : 刪除目前指標處到這個字尾的整個字。

數字 + d + {j 或k或h或l} : 往特定方向刪除指定的單位數。

(e.g. 20dl -> 往右刪除20個單位;20dd往下刪除了20列)

搜尋相關指令

/ : 進入搜尋模式

進入搜尋模式後,就可以打入要搜尋的字,並鍵入enter開始搜尋文章中出現的字。

在開始搜尋後,可以使用n ,搜尋下一個出現的字;而用shift + n則可以搜尋上一個出現的字。

文字取代相關指令

:%s/${search_word}/${replace_word}/${sub_command}: 為最基本的取代指令,如果${sub_command}=c 則代表每次的取代發生時,都會詢問使用者。

:0,30s/${search_word}/${replace_word/${sub_command} :為只取代0-30列中間出現的${search_word}

參考連結

文字選取相關指令

v : 進入文字選取模式。

在進入了文字選取模式以後,就可以透過{j 或 k 或 h 或l }來進行文字選擇,在選擇到所想要的字節以後,就可以透過 y 來複製(copy)所選的這段文字;或著用d 來剪下(cut)所選擇的文字。

https://vim.fandom.com/wiki/Copy,_cut_and_paste

相關的查詢連結可以參考以下: