如何設定vimrc?
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 [{()}]
當你的游標移動到 類似圓括號(譯註: <([{都算)字元時, 與之配對的另外一個也會高亮顯示.
相關文章
- 如何使用contrib/vimrc
- ~/.vimrc
- 配置檔案vimrc
- 如何設定 HomePod?HomePod設定教程分享
- 如何設定 CORSCORS
- 如何設定CookieCookie
- pycharm如何設定背景PyCharm
- postman如何設定cookiePostmanCookie
- 如何設定列印尺寸?
- mysql如何設定密碼MySql密碼
- 如何設定印表機共享
- 如何設定FreeSWITCH環境
- apipost如何設定斷言API
- CAD如何設定圖層
- CAD如何設定顏色
- 寶塔如何設定預設站點
- CSS如何設定不可點選?CSS如何設定不可點選的實現方法CSS
- chrome禁止更新如何設定 怎麼設定chrome不自動更新Chrome
- Excel如何設定列印區域?Exce列印區域設定教程Excel
- 印表機彩色列印怎麼設定 如何設定彩色印表機
- 印表機的埠如何設定 設定印表機埠的方法
- 如何設定Kubernetes資源限制
- 如何設定weblogic的nodemanger配置Web
- 如何設定h2 console
- word藝術字型如何設定?
- Hype如何設定字型樣式
- 如何安裝並設定 Vagrant
- PostgreSQL如何設定主鍵序列?SQL
- pycharm如何設定中文顯示PyCharm
- postgresql如何設定外界訪問SQL
- vuejs如何設定父子通訊VueJS
- GO 中如何設定 HTTPS 分享GoHTTP
- AWS DocumentDB 如何設定為預設 write concern
- Python中如何給字典設定預設值Python
- 如何設定cookie和刪除cookieCookie
- Python如何設定自動補全?Python
- excel如何設定自動換行?Excel
- kubernetes下的jenkins如何設定mavenJenkinsMaven