vim個人常用配置文件
首先安裝Vumdle,一個vim的插件管理工具:
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
然後,將下面的內容拷貝到~/.vimrc中。
set nocompatible " 去除VI一致性,必須
filetype off " 必須
" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
" 設置包括vundle和初始化相關的runtime path
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin() " 另一種選擇, 指定一個vundle安裝插件的路徑
" call vundle#begin('~/some/path/here')
" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
" 讓vundle管理插件版本,必須
Plugin 'VundleVim/Vundle.vim' "這個插件需要去github下載安裝後,這個.vimrc纔好用
" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
" 以下範例用來支持不同格式的插件安裝.
" 這裏相當於Vundle的幫助,教你如何設置想要安裝的插件
" 請將安裝插件的命令放在vundle#begin和vundle#end之間.
" Github上的插件
" 格式爲 Plugin '用戶名/插件倉庫名'
Plugin 'tpope/vim-fugitive'
" 來自 http://vim-scripts.org/vim/scripts.html 的插件
" Plugin '插件名稱' 實際上是 Plugin 'vim-scripts/插件倉庫名' 只是此處的用戶名可以省略
Plugin 'L9'
" 由Git支持但不再github上的插件倉庫 Plugin 'git clone 後面的地址'
" Plugin 'git://git.wincent.com/command-t.git'
" 本地的Git倉庫(例如自己的插件) Plugin 'file:///+本地插件倉庫絕對路徑'
" Plugin 'file:///home/gmarik/path/to/plugin'
" 插件在倉庫的子目錄中.
" 正確指定路徑用以設置runtimepath. 以下範例插件在sparkup/vim目錄下
" Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}
" 安裝L9,如果已經安裝過這個插件,可利用以下格式避免命名衝突
" Plugin 'ascenator/L9', {'name': 'newL9'}
" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
" 這裏是個人安裝的一些插件
Plugin 'szw/vim-tags' "ctags 爲了查看函數定義 ctags需要手動安裝
Plugin 'brookhong/cscope.vim' "cscope 查找函數調用關係等 cscope需要手動安裝
Plugin 'vim-scripts/taglist.vim' "查看函數列表
Plugin 'scrooloose/nerdtree' "查看樹結構
Plugin 'vim-scripts/winmanager' "組織窗口結構
Plugin 'scrooloose/nerdcommenter' "註釋使用
Plugin 'Shougo/neocomplete.vim' "自動補全
Plugin 'vim-airline/vim-airline' "狀態欄
Plugin 'godlygeek/tabular'
Plugin 'plasticboy/vim-markdown' "這兩個配合爲了生成markdown
Plugin 'iamcco/mathjax-support-for-mkdp'
Plugin 'iamcco/markdown-preview.vim' "這兩個配合爲了markdown效果顯示
Plugin 'vim-scripts/DoxygenToolkit.vim' "自動註釋
" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
" 你的所有插件需要在下面這行之前
call vundle#end() " 必須
filetype plugin indent on " 必須 加載vim自帶和插件相應的語法和文件類型相關腳本
" +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
" +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
" 忽視插件改變縮進,可以使用以下替代:
"filetype plugin on
" 簡要幫助文檔
" :PluginList - 列出所有已配置的插件
" :PluginInstall - 安裝插件,追加 `!` 用以更新或使用 :PluginUpdate
" :PluginSearch foo - 搜索 foo ; 追加 `!` 清除本地緩存
" :PluginClean - 清除未使用插件,需要確認; 追加 `!` 自動批准移除未使用插件
" 查閱 :h vundle 獲取更多細節和wiki以及FAQ
" 將你自己對非插件片段放在這行之後
" +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
" +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
" 這裏開始對每個工具的使用進行配置
set tabstop=4 "設置tab前進四個空格
set nu "設置行號
set exrc "這兩行的設置可以使vim識別不同路徑下的.vimrc
set secure "這裏主要爲了方便多個項目時不同的環境設置,例如不同項目的ctag,或者縮進等等
" 以下幾行是爲了設置cscope的一些映射的,爲了避免:call xxxx()
" 這裏的leader默認是\
nnoremap <leader>fa :call CscopeFindInteractive(expand('<cword>'))<CR>
nnoremap <leader>l :call ToggleLocationList()<CR>
" s: Find this C symbol
nnoremap <leader>fs :call CscopeFind('s', expand('<cword>'))<CR>
" g: Find this definition
nnoremap <leader>fg :call CscopeFind('g', expand('<cword>'))<CR>
" d: Find functions called by this function
nnoremap <leader>fd :call CscopeFind('d', expand('<cword>'))<CR>
" c: Find functions calling this function
nnoremap <leader>fc :call CscopeFind('c', expand('<cword>'))<CR>
" t: Find this text string
nnoremap <leader>ft :call CscopeFind('t', expand('<cword>'))<CR>
" e: Find this egrep pattern
nnoremap <leader>fe :call CscopeFind('e', expand('<cword>'))<CR>
" f: Find this file
nnoremap <leader>ff :call CscopeFind('f', expand('<cword>'))<CR>
" i: Find files #including this file
nnoremap <leader>fi :call CscopeFind('i', expand('<cword>'))<CR>
" 以上幾行是爲了設置cscope的一些映射的,爲了避免:call xxxx()
let NERDTreeWinPos ="left"
let NERDTreeWinSize=20 "這兩行是爲了設置NERDTree默認在左邊
let Tlist_Auto_Open=1
let Tlist_Ctags_Cmd='/usr/bin/ctags'
let Tlist_Use_Right_Window=1
let Tlist_WinWidth=25 "這兩行是爲了讓Taglist默認在右邊
let Tlist_Exit_OnlyWindow = 1
" 這裏開始是爲了自動註釋配置註釋內容
let g:DoxygenToolkit_briefTag_funcName = "yes"
" for c style, change the '@' to '\'
let g:DoxygenToolkit_commentType = "c"
let g:DoxygenToolkit_briefTag_pre = "@"
" let g:DoxygenToolkit_templateParamTag_pre = "@param "
let g:DoxygenToolkit_paramTag_pre = "@param "
let g:DoxygenToolkit_returnTag = "@return "
" let g:DoxygenToolkit_throwTag_pre = "\\throw " " @exception is also valid
let g:DoxygenToolkit_fileTag = "@file "
let g:DoxygenToolkit_dateTag = "@date "
let g:DoxygenToolkit_authorTag = "@author "
let g:DoxygenToolkit_versionTag = "@version "
let g:DoxygenToolkit_blockTag = "@name "
" let g:DoxygenToolkit_classTag = "\\class "
let g:DoxygenToolkit_authorName = "Binresist"
let g:doxygen_enhanced_color = 1
"let g:load_doxygen_syntax = 1
" 自動註釋結束
"Markdown開始
let g:mkdp_path_to_chrome = "chromium"
" path to the chrome or the command to open chrome(or other modern browsers)
let g:mkdp_auto_start = 1
" set to 1, the vim will open the preview window once enter the markdown
" buffer
let g:mkdp_auto_open = 1
" set to 1, the vim will auto open preview window when you edit the
" markdown file
let g:mkdp_auto_close = 1
" set to 1, the vim will auto close current preview window when change
" from markdown buffer to another buffer
let g:mkdp_refresh_slow = 1
" set to 1, the vim will just refresh markdown when save the buffer or
" leave from insert mode, default 0 is auto refresh markdown as you edit or
" move the cursor
let g:mkdp_command_for_global = 0
" set to 1, the MarkdownPreview command can be use for all files,
" by default it just can be use in markdown file
"Markdown結束
" +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
" +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
最後,vim ~/.vimrc
後執行:PluginInstall
,一切順利。
特殊的,這裏有配置ctags和cscope,用來在各個文件之間查找定義、調用等,可能操作系統沒有安裝這個命令,需要自己手動安裝,這裏用openSUSE舉例:
sudo zypper install ctags
sudo zypper install cscope
20200314,作出一次修改,配置文件修改如下:
set nocompatible " 去除VI一致性,必須
filetype off " 必須
" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
" 設置包括vundle和初始化相關的runtime path
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin() " 另一種選擇, 指定一個vundle安裝插件的路徑
" call vundle#begin('~/some/path/here')
" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
" 讓vundle管理插件版本,必須
Plugin 'VundleVim/Vundle.vim' "這個插件需要去github下載安裝後,這個.vimrc纔好用
" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
" :Gstatus調出git status查看當前狀態;
" -添加或刪除文件;
" p爲當前文件運行git add -patch;
" Gcommit提交當前文件,編輯提交當前運行的Vim的內部消息,完了以後輸入命令Gwrite保存提交;
" :Gblame帶來git blame 輸出的交互式垂直分割。按行上的Enter鍵以編輯行更改的提交,或者o在拆分中打開它;
" :Gedit 歷史緩衝區返回工作樹版本;
" :Gmove做了git mv一個文件,同時重命名的緩衝區;
" :Gdelete做了git rm一個文件,同時刪除該緩衝區;
" :Gread是git checkout -- filename緩衝區而不是文件名的變體;
Plugin 'tpope/vim-fugitive'
" 來自 http://vim-scripts.org/vim/scripts.html 的插件
" Plugin '插件名稱' 實際上是 Plugin 'vim-scripts/插件倉庫名' 只是此處的用戶名可以省略
Plugin 'L9'
" 由Git支持但不再github上的插件倉庫 Plugin 'git clone 後面的地址'
" Plugin 'git://git.wincent.com/command-t.git'
" 本地的Git倉庫(例如自己的插件) Plugin 'file:///+本地插件倉庫絕對路徑'
" Plugin 'file:///home/gmarik/path/to/plugin'
" 插件在倉庫的子目錄中.
" 正確指定路徑用以設置runtimepath. 以下範例插件在sparkup/vim目錄下
" Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}
" 安裝L9,如果已經安裝過這個插件,可利用以下格式避免命名衝突
" Plugin 'ascenator/L9', {'name': 'newL9'}
" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
" 這裏是個人安裝的一些插件
Plugin 'szw/vim-tags' "ctags 爲了查看函數定義 ctags需要手動安裝
Plugin 'brookhong/cscope.vim' "cscope 查找函數調用關係等 cscope需要手動安裝
Plugin 'vim-scripts/taglist.vim' "查看函數列表
Plugin 'scrooloose/nerdtree' "查看樹結構
Plugin 'vim-scripts/winmanager' "組織窗口結構
Plugin 'scrooloose/nerdcommenter' "註釋使用
Plugin 'Shougo/neocomplete.vim' "自動補全
Plugin 'vim-airline/vim-airline' "狀態欄
Plugin 'vim-scripts/DoxygenToolkit.vim' "自動註釋
Bundle 'Yggdroot/LeaderF'
" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
" 你的所有插件需要在下面這行之前
call vundle#end() " 必須
filetype plugin indent on " 必須 加載vim自帶和插件相應的語法和文件類型相關腳本
" +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
" +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
" 忽視插件改變縮進,可以使用以下替代:
"filetype plugin on
" 簡要幫助文檔
" :PluginList - 列出所有已配置的插件
" :PluginInstall - 安裝插件,追加 `!` 用以更新或使用 :PluginUpdate
" :PluginSearch foo - 搜索 foo ; 追加 `!` 清除本地緩存
" :PluginClean - 清除未使用插件,需要確認; 追加 `!` 自動批准移除未使用插件
" 查閱 :h vundle 獲取更多細節和wiki以及FAQ
" 將你自己對非插件片段放在這行之後
" +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
" +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
" 這裏開始對每個工具的使用進行配置
set tabstop=4 "設置tab前進四個空格
set nu "設置行號
set exrc "這兩行的設置可以使vim識別不同路徑下的.vimrc
set secure "這裏主要爲了方便多個項目時不同的環境設置,例如不同項目的ctag,或者縮進等等
let NERDTreeWinPos ="left"
let NERDTreeWinSize=20 "這兩行是爲了設置NERDTree默認在左邊
let Tlist_Auto_Open=1
let Tlist_Ctags_Cmd='/usr/bin/ctags'
let Tlist_Use_Right_Window=1
let Tlist_WinWidth=25 "這兩行是爲了讓Taglist默認在右邊
let Tlist_Exit_OnlyWindow = 1
" 這裏開始是爲了自動註釋配置註釋內容
let g:DoxygenToolkit_briefTag_funcName = "yes"
" for c style, change the '@' to '\'
let g:DoxygenToolkit_commentType = "c"
let g:DoxygenToolkit_briefTag_pre = "@"
let g:DoxygenToolkit_paramTag_pre = "@param "
let g:DoxygenToolkit_returnTag = "@return "
let g:DoxygenToolkit_fileTag = "@file "
let g:DoxygenToolkit_dateTag = "@date "
let g:DoxygenToolkit_authorTag = "@author "
let g:DoxygenToolkit_versionTag = "@version "
let g:DoxygenToolkit_blockTag = "@name "
let g:DoxygenToolkit_authorName = "zhengshibin"
let g:doxygen_enhanced_color = 1
" 自動註釋結束
" +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
" +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++