如何設定Vimrc

2021-07-24 19:20:55 字數 3001 閱讀 1825

# how to vimrc

在炮製你自己的.vimrc配置時, 這裡只有乙個原則.

不要把任何你不理解的一行放到你的vimrc中.

網際網路上有以噸計的入門手冊, 諸如這篇文章. 它們之中包含各種令人驚嘆的hack技巧, 這可以記你的vim更好, 但為了讓你的環境更好完全從別人那兒照搬那些配置, 完全是 **最糟糕** 的做法.

真真切切地花一些時間來學習你的編輯器的構造, 其價值無可估量. 從投影儀上手抄下來通常會有且於增多的資訊逐漸保留, 同樣的道理, 將特性乙個乙個地新增到你的vimrc有助於提高你對vim的總體理解程度.

因此, 這篇文章餘下部分將會是我來解釋我當前vimrc中的全盤使用的每一行, 希望你能在其中找到你此前沒有見到的技巧. 但, 我的vimrc離完美還差得遠.  我也一直在尋找可以使我的環境更好的東西新增進來, 所以如果你認為我遺漏了什麼重要的東西, 敬請告之: [@duogblackio](

我將按邏輯分成幾個部分

-   顏色

-   空格與製表

-   ui配置

-   搜尋

-   摺疊

-   自定義移動

-   自定義leader按鍵

-   ctrlp設定

-   啟動配置

-   tmux配置

-   autogroups

-   備份

-   自定義函式

-   組織

-   摺疊起來

這篇文章幾乎肯定會落後於我最近的vimrc, 你可以在 [github]( 上找到最新的vimrc版本.

# colors

colorscheme badwolf         " awesome colorscheme

顏色! 配色方案是主觀的, 我當前是安頓在steve losh所寫的badwolf上了. 我發現solarized難以至信的完整, 但也發現就我的品味而言它也那麼點兒乏味. 我的大量的時間也是和 molokai 度過的. 並且我仍然認為 molokai 是乙個非常好的配色方案, 只是當前更偏好 badwolf.

繼續前進

syntax enable           " enable syntax processing

注釋足以說清它的意思.  我將借這點時間, 盡可能地新增注釋, 以避免你的vimrc沒有此中的任何一行. 如果你像我一樣, 檔案寫得很長, 基本上你不會一直記住每一行在做什麼, 所以新增注釋有助於你以後能知道這些都是什麼鬼.

另外, 許多 vim 中的設定既有長名又有短名. 例如 background 和 bg 是一樣的. 為了此後的可讀性, 我強烈建議使用長名.

# spaces & tabs

要使 tabs/spaces 能像你期望那樣正常工作, 你必須將如下像咒語一樣的符號, 扔到你的vimrc中. 你可能對這串符號相當困惑, 所以這兒有讓你快速進修的說明.

set tabstop=4       " number of visual spaces per tab

tabstop 就是視覺上顯示的乙個 算作的空格個數. 所以, 當 vim 開啟檔案讀取到乙個 字元時, 就會使用這麼多個空格來顯示 .

set softtabstop=4   " number of spaces in tab when editing

編輯時乙個 算作的空格數. 所以這既是你插入 時插入的空格數, 也是你用 backspace 移除的 (譯註: 連續的) 空格數.

set expandtab       " tabs are spaces

expandtab 會將 轉換為多個空格. 僅此而已. 所以 僅僅成為了 "插入4個空格" 的快捷鍵.

(以上幾個配置)一起拿走吧, 這些選項是非常不錯, 對於編輯那些偏好空格而不是 tab的語言, 因為這可以確保不會使用 . 我每天花大多數時間與python與bash打交道, 二者的規範中寫明了要使用空格. 我喜歡它, 因為它意味著我的源**在所有的機器上看起來都是一樣的.

# ui config

這些選項會改變 vim 中那此散亂的視覺材料.

set number              " show line numbers

顯示行號, 不解釋.

set showcmd             " show command in bottom bar

`showcmd` 顯示在最右下角展示最近輸入的命令. 我雖然在這裡設定了, 但實際上由於我使用powerline外掛程式(稍後我們會涉及到), 所以在我的vim中找不到這一行的.

set cursorline          " highlight current line

cursorline 會突出顯示(或加下劃線, 取決於你的本色方案)你的游標當前所在水平行. 我發覺當你 vim 的多個視窗來回切換或離開 vim 後再切換回來, 這樣更容易找到離開時那一行.

filetype indent on      " load filetype-specific indent files

這既開啟檔案型別檢測, 又開啟基於此檢測的與語言相關的縮排檔案. 對於我來說, 這意味著, 每當我開啟乙個 \*.py 檔案, python 的縮排檔案即 ~/.vim/indent/python.vim 將會被載入.

set wildmenu            " visual autocomplete for command menu

這是乙個相當酷的特性, 我以前都不知道vim有它. 你知道 vim 會自動補全類似檔名的東西, 舉例子, 執行 :e ~/.vim? 那麼它將會提供乙個所有匹配項的圖形選單, 如果你開啟了 wildmenu, 你就可以迴圈遍歷它們.

set lazyredraw          " redraw only when we need to.

vim 喜歡重繪螢幕, 即便是在它根本不必這樣做的期間內 – 比如在巨集(回放)的期間. 這告訴 vim 不要費神地在這些場景下重繪螢幕, 以讓巨集更快.

set showmatch           " highlight matching

當你的游標移動到 類似圓括號(譯註: <([{都算)字元時, 與之配對的另外乙個也會高亮顯示.

使用 vimrc設定vim編輯器

使用.vimrc設定vim編輯器 問題 編輯配置檔案,使得每次vim開啟檔案時 顯示行號 自動縮排 乙個tab等於4個空格鍵 方案 首先注意此配置檔案預設是不存在的,需要手工建立。建立的位置在家目錄,本題使用者為root,其家目錄為 root 建立的檔案必須命名為 vimrc 需注意是以 開頭的隱藏...

Vimrc 配置檔案 包括GO外掛程式設定

set encoding utf 8 set nobomb set ts 4 set expandtab set autowrite 自動儲存 set autoindent 自動縮排 set background dark set backspace 2 設定退格鍵可用 set completeop...

vimrc入門配置

csharp set number set tabstop 4colorscheme the creator syntax on inoremap jj map nerdtreetoggle nmap ss easymotion s2 set hlsearch set incsearch call ...