2021-05-12 14:32:11
Vim組態檔和外掛管理
本文通過總結零碎的資料總結而成,更多是去引導學習Vim組態檔及外掛使用。
.vimrc組態檔,內容如下(備註清晰)
"引入外掛pathogen使用
execute pathogen#infect()
call pathogen#helptags()
"禁用vi相容模式
set nocompatible
"vim的內部編碼
set encoding=utf-8
"vim在與螢幕和鍵盤互動師傅使用的編碼(取決於實際的終端的設定)
set termencoding=utf-8
"vim開啟檔案時的嘗試使用的編碼
set fileencodings=utf-8,gbk,gb2312,default,latin1
"開啟語法高亮功能
syntax enable
"允許用指定高亮替換方案
syntax on
"顯示行號
set nu
"括號匹配
set showmatch
"自動檢測檔案型別
filetype plugin indent on
"在縮排和遇到Tab鍵時使用空格替代
set expandtab
"根據檔案型別設定縮排格式
au FileType html,vim,Javascript setl shiftwidth=2
au FileType html,vim,javascript setl tabstop=2
au FileType java,php,pathon setl shiftwidth=4
au FileType java,php,pathon setl tabstop=4
"啟動vim時不要自動折疊程式碼
set foldlevel=100
"自動對齊
set ai
"根據下面的格式對齊
set si
set smarttab
set wrap
set lbr
set tw=0
set foldmethod=syntax
"總是顯示狀態列
set laststatus=2
"顯示游標當前位置
set ruler
"高亮顯示當前行
set cursorline
"高亮顯示搜尋結果
set hlsearch
"禁止拆行
set nowrap
"設定快捷鍵前最,即<Leader>
let mapleader=":"
"設定快捷鍵將選中文字塊複製到系統剪貼簿
map <Leader>y "+y
"設定快捷鍵將系統剪貼簿內容粘帖到vim
map <Leader>p "+p
noremap <F9> :!ctags -R<CR>
"設定tags檔案為當前目錄下的tags,預設情況也是
"set tags+=./tags
"組態檔.vimrc更改後自動重新載入使設定生效
autocmd! bufwritepost .vimrc source ~/.vimrc
"vim對一些流行的程式語言的語法提供自動完成的功能,但是預設是沒有啟用。
autocmd FileType php set omnifunc=phpcomplete#CompletePHP
autocmd FileType html set omnifunc=htmlcomplete#CompleteTags
autocmd FileType css set omnifunc=csscomplete#CompleteCSS
"vim對一些語言實現的格式化命令
"在命令模式下直接輸入“gg=G”。
"
"以下為外掛設定引數
"
"-----------------------------------------------------------------
"auto-pairs外掛,用於自動補全括號,引號等
"
"-----------------------------------------------------------------
"vim-surroun.vim外掛,處理分隔符,包括新增、修改、刪除。
"新增"",選擇內容,輸入S"。
"修改""為'',在分隔符內部,輸入cs"'。
"刪除"",在分隔符內部,輸入ds"。
"刪除<>xml標籤時,t可以代替<>xml標籤。
"
"-----------------------------------------------------------------
"nerdtree外掛,目錄樹。
"設定預設開啟
autocmd vimenter * NERDTree
"開啟關閉快捷鍵
map <F3> :NERDTreeToggle<CR>
"當只剩下目錄樹時,自動關閉vim。
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTreeType") &&b:NERDTreeType == "primary") | q | endif
"
"-----------------------------------------------------------------
"xptemplate外掛,程式碼片段補全
"提示方式:Ctrl+。
"
"vim-Markdown外掛,實現markdown高亮。
"
"tagbar外掛顯示方法屬性列表
map <silent> <F4> :TagbarToggle<CR>
let g:tagbar_width=30
let g:tagbar_autofocus=1
"
"-----------------------------------------------------------------
"NERD_commenter.vim 注釋程式碼用的,
"[count]<Leader>cc 游標以下count行逐行新增註釋(7,cc)
"[count]<Leader>cu 游標以下count行逐行取消註釋(7,cu)
"[count]<Leader>cm 游標以下count行嘗試新增塊注釋(7,cm)
"<Leader>cA 在行尾插入 /* */,並且進入插入模式。 這個命令方便寫注釋。
"註:count引數可選,無則預設為選中行或當前行
"-----------------------------------------------------------------
let NERDSpaceDelims=1 " 讓注釋符與語句之間留一個空格
let NERDCompactSexyComs=1 " 多行註釋時樣子更好看"
這份組態檔只能是基礎使用,開始是簡單的字元編碼設定,再是語法高亮(VIM自帶javascript語法高亮,但是自帶的那個位於syntax目錄下的javascript.vim那個組態檔比較弱,有很多關鍵詞沒有高亮。我們可以到www.vim.org搜尋最新的javascript.vim代替了原來的那個檔案的),其次是對Tab鍵的設定,並且可以設定根據不同檔案區分Tab鍵寬度。最後是對快捷鍵的設定,注意這裡的複製粘帖是指vim之外電腦本身的剪下板。
以上就是.vimrc組態檔,一些基本的引導,可以自己做適合自己的快捷鍵或設定。
接下來具體記錄如何處理外掛
(註:做同樣的事肯定存在多種選擇,外掛也是,相同功能有很多不同外掛可以實現,以下是我個人的選擇)
正常安裝外掛較為繁瑣,需要到/usr/share/vim/vim**/檔案下操作,外掛比較不好管理,所以推薦使用外掛管理器。pathogen和vundle都是用來管理vim外掛的,但是其作用的方面不同。
- pathogen是為了解決每一個外掛安裝後檔案分散到多個目錄不好管理而存在的。
- vundle是為了解決自動搜尋及下載外掛而存在的。
我個人使用的是apthogen外掛,當外掛過多時,條理的安置外掛才是最好的,另外大部分使用的外掛可以看到並不會短期內更新。介紹pathogen外掛:首先,在使用者目錄的.vim目錄下建立autoload目錄和bundle目錄,autoload目錄中放pathogen.vim。可以在~/.vim/autoload/目錄下,用如下命令下載
curl –Sso pathogen.vim https://raw.github.com/tpope/vim-pathogen/master/autoload/pathogen.vim
然後在組態檔的首行新增如下命令execute pathogen#infect()
,回頭看看上方.vimrc組態檔開頭。
有了pathogen後,下載的外掛就直接把它們放到bundle目錄下即可,而不需要管理相應的autoload、colors、plugin等目錄。新增help檔案,在vim下用命令:helptags ~/.vim/doc/
即可通過help命令檢視外掛文件。
(註:哪怕外掛只是一個.vim檔案,也可以先新建一個資料夾,然後再建plugin資料夾,最後將該外掛放入即可)
有了這麼好的外掛管理器,安裝外掛就變得非常方便,因為vim畢竟是IT開發人員開發出來的,所以vim最終受益者還會是開發人員,設定IDE開發環境外掛。
檔案瀏覽外掛
一個好的檔案瀏覽肯定少不了目錄樹,並且能夠方便切換。我推薦使用NERDTree。我們先安裝然後後續可以自己多看文件,正如我前面所說的有了好的外掛管理器,就可以很方便完成安裝使用。我們可以直接去到官網http://www.vim.org/scripts/script.php?script_id=1658選擇最新版本直接下載即可。我們將壓縮包解壓以後,通過cp命令列將資料夾直接複製到~/.vim/bundle/下即可,可以開啟vim,並在並在命令列輸入:NERDTree,並可以看到左邊跳出當前檔案下的目錄樹,為了便於方便可以設定每次開啟vim自動跳出NERDTree所以我們可以在.vimrc檔案中設定,同時可以設定開啟關閉快捷鍵。是不是很方便!
對齊文字外掛
對於經常寫程式碼來說,有Tabular會很方便,文字可以按等號,冒號等來對齊文字。我們還是先直接安裝外掛,到https://github.com/godlygeek/tabular下載,這次是git上的一個專案,不用慌還是直接下載即可,得到安裝包後解壓到~/.vim/bundle/即可直接使用。
顯示方法屬性列表
tagbar外掛顯示方法屬性列表,幫助開發人員檢視當前檔案中的宏、全域性變數、函數等標籤,先通過http://www.vim.org/scripts/script.php?script_id=3465安裝,然後在.vimrc檔案中設定外掛,參考上面文件內容,就可以自定義顯示方式。通過選擇標籤也可以實現直接跳轉功能,具體實現可以檢視幫助文件。
NERD_commenter註釋程式碼
xptemplate外掛,程式碼片段補全
auto-pairs外掛,用於自動補全括號,引號等
vim-Markdown外掛,實現markdown高亮。
vim-surroun.vim外掛,處理分隔符,包括新增、修改、刪除。
函數跳轉(沒有使用外掛)
對於IDE而言也算最基本也是最方便的功能之一了吧。正常情況下可以下載外掛,但是我選擇使用vim自帶的跳轉,快捷鍵:control+]
跳入,control+o
返回。
但是任何方法都要基於tags來實現。這裡不多加解釋,需要自己慢慢去啃。http://www.linuxidc.com/Linux/2017-01/139378.htm,這篇文章將tags介紹的很詳細,簡單的說tags是一個linux上很普遍的原始碼分析工具, 可以將程式碼中的函數變數等定義的位置記錄在一個名稱為tags的檔案,類似於資料庫記錄功能,而接下來的外掛就是需要用的這些標籤,可以通過命令sudo apt-get install ctags
進行安裝(Ubuntu下),然後在工作目錄下生成tags標籤檔案,最方便的命令是ctags -R
直接根據目錄下所有檔案來獲取標籤,類似於函數名,變數名等,最後在.vimrc檔案中新增路徑:set tags+=/home/user/tags
就可以讓vim在每次啟動的時候自動找到tags標籤文件。
vim使用建議(重要)
- 以上只是帶領大家簡單了解和設定vim,大家可以按照前面介紹的把後面幾個推薦的外掛安裝到自己的vim中。在以後學習中可以慢慢的不斷完善設定文件和外掛的選擇,最後希望能有真正屬於自己並且適合自己的.vimrc。
- 在使用vim過程中盡量使用vim自帶的快捷鍵或功能,也盡量不要過多的依賴使用很多外掛,可以避免在別人的電腦上原裝的vim什麼也不會操作。
- 如果換了主機,可以通過將,.vim資料夾和.vimrc檔案放置到github之類的程式碼託管上,下次無論在誰的電腦上都可以很快拉取下來使用。
Vim 8.0 釋出 http://www.linuxidc.com/Linux/2016-09/135178.htm
Linux下編譯安裝Vim8.0 http://www.linuxidc.com/Linux/2017-01/139210.htm
Vim學習指南 http://www.linuxidc.com/Linux/2013-08/89096.htm
Vim編輯器設定 http://www.linuxidc.com/Linux/2016-09/135460.htm
Vim編輯器使用 http://www.linuxidc.com/Linux/2016-09/135043.htm
快速學會 Vi編輯器 http://www.linuxidc.com/Linux/2013-08/88586.htm
強大的Vim 編輯器 http://www.linuxidc.com/Linux/2013-07/87544.htm
Linux文字編輯器Vim的一般用法 http://www.linuxidc.com/Linux/2016-11/137263.htm
把Vim打造成優秀的C++ IDE http://www.linuxidc.com/Linux/2016-06/132262.htm
Ubuntu 14.04升級Vim7.4到8.0 http://www.linuxidc.com/Linux/2016-11/136816.htm
Vim安裝youcompleteme自動補全外掛 http://www.linuxidc.com/Linux/2016-11/137665.htm
Linux Vim編輯器使用簡單講解 http://www.linuxidc.com/Linux/2016-12/138930.htm
本文永久更新連結地址:http://www.linuxidc.com/Linux/2017-01/139377.htm
相關文章