簡易vi指南

2021-04-12 21:28:13 字數 3360 閱讀 6818

vim 中可供使用者定製的選項非常非常多, 作為初學者, 我們沒有必要了解這麼多東西。下面, 滇狐簡單列出了一些最常用的配置項, 大家可以根據自己的需要將這些內容新增到自己的 .vimrc 中。

set ru

該命令開啟 vim 的狀態列標尺。 預設情況下, vim 的狀態列標尺在螢幕底部, 它能即時顯示當前游標所在位置在檔案中的行號、列號, 以及對應的整個檔案的百分比。 開啟標尺可以給檔案的編輯工作帶來一定方便。

set hls

搜尋時高亮顯示被找到的文字。 該指令的功能在 vimtutor 中已經有過介紹, 這裡就不多說了。 其實似乎許多人並不喜歡這個功能。

set is

搜尋時在未完全輸入完畢要檢索的文字時就開始檢索。 vimtutor 對該命令也有過介紹, 滇狐並不喜歡這個功能, 因此滇狐自己的配置檔案裡是沒有這條命令的。 但是周圍有朋友很喜歡這個, 因此滇狐還是將它列在這裡。

syntax on

開啟關鍵字上色。 進行程式設計的朋友應該都知道關鍵字上色是什麼東西, 因此這裡就不多說了。 不進行程式設計的朋友不妨也開啟這個功能, 雖然不一定能夠用得著, 但這個功能其實也是很好玩的。

set backspace=indent,eol,start

設想這樣乙個情況: 當前游標前面有若干字母, 我們按下 i 鍵進入了 insert 模式, 然後輸入了 3 個字母, 再按 5 下刪除(backspace)。 預設情況下, vim 僅能刪除我們新輸入的 3 個字母, 然後喇叭「嘟嘟」響兩聲。 如果我們「set backspace=start」, 則可以在刪除了新輸入的 3 個字母之後, 繼續向前刪除原有的兩個字元。

再設想乙個情況: 有若干行文字, 我們把游標移到中間某一行的行首, 按 i 鍵進入 insert 模式, 然後按一下 backspace。 預設情況下, 喇叭會「嘟」一聲, 然後沒有任何動靜。 如果我們「set backspace=eol」, 則可以刪除前一行行末的回車, 也就是說將兩行拼接起來。

當我們設定了自動縮排後, 如果前一行縮排了一定距離, 按下回車後, 下一行也會保持相同的縮排。 預設情況下, 我們不能在 insert 模式下直接按 backspace 刪除行首的縮排。 如果我們「set backspace=indent」, 則可以開啟這一項功能。

上述三項功能, 你可以根據自己的需要, 選擇其中一種或幾種, 用逗號分隔各個選項。 建議把這三個選項都選上。

set whichwrap=b,s,<,>,[,]

預設情況下, 在 vim 中當游標移到一行最左邊的時候, 我們繼續按左鍵, 游標不能回到上一行的最右邊。 同樣地, 游標到了一行最右邊的時候, 我們不能通過繼續按右跳到下一行的最左邊。 但是, 通過設定 whichwrap 我們可以對一部分按鍵開啟這項功能。 如果想對某乙個或幾個按鍵開啟到頭後自動折向下一行的功能, 可以把需要開啟的鍵的代號寫到 whichwrap 的引數列表中, 各個鍵之間使用逗號分隔。 以下是 whichwrap 支援的按鍵名稱列表:

set encoding=utf-8

設定當前字元編碼為 utf-8。 utf-8 是支援字符集最多的編碼之一, 在 utf-8 下進行工作, 會帶來許多方便之處。 由於 vim 在執行過程中切換 encoding 會造成許多問題, 如提示資訊亂碼、 register 丟失等, 因此強烈建議大家在啟動 vim 的時候把 encoding 設定為 utf-8, 在編輯非 utf-8 的檔案時, 通過 fileencoding 來進行轉碼。

set fileencodings=ucs-bom,utf-8,cp936,big5,euc-jp,euc-kr,latin1

設定編碼的自動識別。 關於這條設定的詳細含義, 請參看這篇文章

。 set ambiwidth=double

防止特殊符號無法正常顯示。 在 unicode 中, 許多來自不同語言的字元, 如果字型足夠近似的話, 會把它們放在同乙個編碼中。 但在不同編碼中, 字元的寬度是不一樣的。 例如中文漢語拼音中的 ā 就很寬, 而歐洲語言中同樣的字元就很窄。 當 vim 工作在 unicode 狀態時, 遇到這些寬度不明的字元時, 預設使用窄字元, 這會導致中文的破折號「——」非常短, 五角星「★」等符號只能顯示一半。 因此, 我們需要設定 ambiwidth=double 來解決這個問題。

// :0

//// switch 語句之下的 case 語句縮排 0 個空格,也就是說不縮排,與 switch 塊平

// 齊,使用這樣風格:

switch(x)

// g0

//// class、struct 等之下的訪問許可權控制語句,如 public、protected、private 等,

// 相對 class、struct 等所在的塊縮排 0 個空格,與 class 等塊平齊,使用這樣的

// 風格:

classfoo

;// t0

//// 如果函式返回值與函式名不在同一行,則返回值縮排 0 個空格,也就是說不縮排,如

// 下所示:

// set cino=t4

int

func1()

// set cino=t0

int

func()

// (sus

//// 當一對括號跨越多行時,其後的行縮排前面 sw 指定的距離,效果如下:

inta = (1 + 2 + 3

+ 4 + 5 + 6

+ 7 + 8) * 9;

同乙個配色方案, 在 gvim 下和字元介面的 vim 下效果大相徑庭, 滇狐個人的習慣是,在 gvim 下使用 torte 配色方案, 在 vim 下使用 ron 配色方案。 因此我們有必要針對 gvim 和 vim 進行不同的設定。

另外, 前面我們在 gvim 下不使用折行, 開啟水平滾動條, 但在 vim 下,是沒有滾動條可用的, 因此還是有必要為 vim 保留自動折行。

條件選擇設定的格式如下:

if(has("gui_running"

))

" 圖形介面下的設定

setnowrap

setguioptions+=b

colotorte

else

" 字元介面下的設定

setwrap

coloron

endif

Vi 簡易教程

vi file1 file2 此時,您會發現您面對如下視窗 圖 4.4.vim 開始 您現在是在開啟的第乙個檔案的最前面,並處於 命令模式 在此模式下,您不能往檔案中插入文字。要插入文字,您需要先切換到 插入模式 以下是一些插入文字的快捷方式 在插入模式中,您會在螢幕底部看到 插入 字串 提示您所處...

vi 操作指南

進入vi的命令 vi filename 開啟或新建檔案,並將游標置於第一行首 vi n filename 開啟檔案,並將游標置於第n行首 vi filename 開啟檔案,並將游標置於最後一行首 vi pattern filename 開啟檔案,並將游標置於第乙個與pattern匹配的串處 移動游標...

git簡易指南

助你開始使用 git 的簡易指南,木有高深內容,tweet 感謝 tfnico,fhd and namics 其他語言 english,deutsch,espa ol,fran ais,italiano,nederlands,portugu s,t rk e,日本語,如有紕漏,請到 github 填...