"==============================================================================
" vim 內(nèi)置配置
"==============================================================================
" 設(shè)置 vimrc 修改保存后立刻生效道伟,不用在重新打開(kāi)
" 建議配置完成后將這個(gè)關(guān)閉析珊,否則配置多了之后會(huì)很卡
" autocmd BufWritePost $MYVIMRC source $MYVIMRC
" 關(guān)閉兼容模式
set nocompatible
set backspace=indent,eol,start
set mouse=a
set nu " 設(shè)置行號(hào)
set cursorline "突出顯示當(dāng)前行
" set cursorcolumn " 突出顯示當(dāng)前列
set showmatch " 顯示括號(hào)匹配
set foldmethod=indent
set foldlevel=99
" tab 縮進(jìn)
set tabstop=4 " 設(shè)置Tab長(zhǎng)度為4空格
set shiftwidth=4 " 設(shè)置自動(dòng)縮進(jìn)長(zhǎng)度為4空格
"set autoindent " 繼承前一行的縮進(jìn)方式员咽,適用于多行注釋
set scrolloff=4
" 定義快捷鍵的前綴,即<Leader>
let mapleader=","
" ==== 系統(tǒng)剪切板復(fù)制粘貼 ====
" v 模式下復(fù)制內(nèi)容到系統(tǒng)剪切板
vmap <Leader>c "+yy
" n 模式下復(fù)制一行到系統(tǒng)剪切板
nmap <Leader>c "+yy
" n 模式下粘貼系統(tǒng)剪切板的內(nèi)容
nmap <Leader>v "+p
" 開(kāi)啟實(shí)時(shí)搜索
set incsearch
" 搜索時(shí)大小寫(xiě)不敏感
set ignorecase
set hls
syntax enable
syntax on " 開(kāi)啟文件類型偵測(cè)
filetype plugin indent on " 啟用自動(dòng)補(bǔ)全
" 退出插入模式指定類型的文件自動(dòng)保存
au InsertLeave *.go,*.sh,*.php,*.c,*.h,*.cc,*.hpp write
let Tlist_Ctags_Cmd="/usr/bin/ctags"
let Tlist_Show_One_File=1
let Tlist_Exit_OnlyWindow=1
let Tlist_Use_Right_Window=1
colorscheme molokai
set t_Co=256
set background=dark
"==============================================================================
" 插件配置
"==============================================================================
" 插件開(kāi)始的位置
call plug#begin('~/.vim/plugged')
" Shorthand notation; fetches https://github.com/junegunn/vim-easy-align
" 可以快速對(duì)齊的插件
Plug 'junegunn/vim-easy-align'
" 用來(lái)提供一個(gè)導(dǎo)航目錄的側(cè)邊欄
Plug 'scrooloose/nerdtree'
" 可以使 nerdtree Tab 標(biāo)簽的名稱更友好些
Plug 'jistr/vim-nerdtree-tabs'
" 可以在導(dǎo)航目錄中看到 git 版本信息
Plug 'Xuyuanp/nerdtree-git-plugin'
" 查看當(dāng)前代碼文件中的變量和函數(shù)列表的插件佑附,
" 可以切換和跳轉(zhuǎn)到代碼中對(duì)應(yīng)的變量和函數(shù)的位置
" 大綱式導(dǎo)航, Go 需要 https://github.com/jstemmer/gotags 支持
Plug 'majutsushi/tagbar'
" 自動(dòng)補(bǔ)全括號(hào)的插件,包括小括號(hào),中括號(hào)鼓鲁,以及花括號(hào)
Plug 'jiangmiao/auto-pairs'
" Vim狀態(tài)欄插件,包括顯示行號(hào)港谊,列號(hào)骇吭,文件類型,文件名歧寺,以及Git狀態(tài)
Plug 'vim-airline/vim-airline'
" 有道詞典在線翻譯
Plug 'ianva/vim-youdao-translater'
" 代碼自動(dòng)完成燥狰,安裝完插件還需要額外配置才可以使用
Plug 'Valloric/YouCompleteMe'
" 可以在文檔中顯示 git 信息
Plug 'airblade/vim-gitgutter'
" 下面兩個(gè)插件要配合使用棘脐,可以自動(dòng)生成代碼塊
Plug 'SirVer/ultisnips'
Plug 'honza/vim-snippets'
Plug 'mbbill/echofunc'
" 配色方案
" colorscheme neodark
Plug 'KeitaNakamura/neodark.vim'
" colorscheme monokai
Plug 'crusoexia/vim-monokai'
" colorscheme github
Plug 'acarapetis/vim-colors-github'
" colorscheme one
Plug 'rakr/vim-one'
" go 主要插件
Plug 'fatih/vim-go', { 'tag': '*' }
" go 中的代碼追蹤,輸入 gd 就可以自動(dòng)跳轉(zhuǎn)
Plug 'dgryski/vim-godef'
Plug 'ctrlpvim/ctrlp.vim'
"語(yǔ)義檢查“
Plug 'w0rp/ale'
" markdown 插件
Plug 'iamcco/mathjax-support-for-mkdp'
Plug 'iamcco/markdown-preview.vim'
Plug 'zivyangll/git-blame.vim'
" 插件結(jié)束的位置龙致,插件全部放在此行上面
call plug#end()
fun! ShowFuncName()
let lnum = line(".")
let col = col(".")
echohl ModeMsg
echo getline(search("^[^ \t#/]\\{2}.*[^:]\s*$", 'bW'))
echohl None
call search("\\%" . lnum . "l" . "\\%" . col . "c")
endfun
map f :call ShowFuncName() <CR>
"==============================================================================
" 主題配色
"==============================================================================
" 開(kāi)啟24bit的顏色蛀缝,開(kāi)啟這個(gè)顏色會(huì)更漂亮一些
"set termguicolors
" 配色方案, 可以從上面插件安裝中的選擇一個(gè)使用
"colorscheme one " 主題
"set background=dark " 主題背景 dark-深色; light-淺色
nnoremap <Leader>m :<C-u>call gitblame#echo()<CR>
"==============================================================================
" 文件名搜索
"==============================================================================
" ale-setting {{{
let g:ale_set_highlights = 0
"自定義error和warning圖標(biāo)
let g:ale_sign_error = '?'
let g:ale_sign_warning = '?'
"在vim自帶的狀態(tài)欄中整合ale
let g:ale_statusline_format = ['? %d', '? %d', '? OK']
"顯示Linter名稱,出錯(cuò)或警告等相關(guān)信息
let g:ale_echo_msg_error_str = 'E'
let g:ale_echo_msg_warning_str = 'W'
let g:ale_echo_msg_format = '[%linter%] %s [%severity%]'
"打開(kāi)文件時(shí)不進(jìn)行檢查
let g:ale_lint_on_enter = 0
"普通模式下,sp前往上一個(gè)錯(cuò)誤或警告目代,sn前往下一個(gè)錯(cuò)誤或警告
nmap sp <Plug>(ale_previous_wrap)
nmap sn <Plug>(ale_next_wrap)
"<Leader>s觸發(fā)/關(guān)閉語(yǔ)法檢查
nmap <Leader>s :ALEToggle<CR>
"<Leader>d查看錯(cuò)誤或警告的詳細(xì)信息
nmap <Leader>d :ALEDetail<CR>
"使用clang對(duì)c和c++進(jìn)行語(yǔ)法檢查屈梁,對(duì)python使用pylint進(jìn)行語(yǔ)法檢查
let g:ale_linters = {
\ 'c++': ['clang'],
\ 'c': ['clang'],
\ 'python': ['pylint'],
\}
" }}}
"==============================================================================
" 文件名搜索
"==============================================================================
" ctrlp settings
let g:ctrlp_map = '<c-p>'
let g:ctrlp_cmd = 'CtrlP'
let g:ctrlp_working_path_mode = 'ra'
set wildignore+=*/tmp/*,*.so,*.swp,*.zip " MacOSX/Linux
set wildignore+=*\\tmp\\*,*.swp,*.zip,*.exe " Windows
let g:ctrlp_custom_ignore = '\v[\/]\.(git|hg|svn)$'
let g:ctrlp_custom_ignore = {
\ 'dir': '\v[\/]\.(git|hg|svn)$',
\ 'file': '\v\.(exe|so|dll)$',
\ 'link': 'some_bad_symbolic_links',
\ }
"==============================================================================
" vim-go 插件
"==============================================================================
let g:go_fmt_command = "goimports" " 格式化將默認(rèn)的 gofmt 替換
let g:go_autodetect_gopath = 1
let g:go_list_type = "quickfix"
let g:go_version_warning = 1
let g:go_highlight_types = 1
let g:go_highlight_fields = 1
let g:go_highlight_functions = 1
let g:go_highlight_function_calls = 1
let g:go_highlight_operators = 1
let g:go_highlight_extra_types = 1
let g:go_highlight_methods = 1
let g:go_highlight_generate_tags = 1
let g:godef_split=2
"==============================================================================
" NERDTree 插件
"==============================================================================
" 打開(kāi)和關(guān)閉NERDTree快捷鍵
map <F10> :NERDTreeToggle<CR>
" 顯示行號(hào)
let NERDTreeShowLineNumbers=1
" 打開(kāi)文件時(shí)是否顯示目錄
let NERDTreeAutoCenter=1
"p 是否顯示隱藏文件
let NERDTreeShowHidden=1
" 設(shè)置寬度
let NERDTreeWinSize=50
" 忽略一下文件的顯示
let NERDTreeIgnore=['\.pyc','\~$','\.swp']
" 打開(kāi) vim 文件及顯示書(shū)簽列表
let NERDTreeShowBookmarks=4
" 在終端啟動(dòng)vim時(shí),共享NERDTree
let g:nerdtree_tabs_open_on_console_startup=1
let NERDTreeShowBookmarks=1
"==============================================================================
" majutsushi/tagbar 插件
"==============================================================================
" majutsushi/tagbar 插件打開(kāi)關(guān)閉快捷鍵
nmap <F9> :TagbarToggle<CR>
let g:tagbar_type_go = {
\ 'ctagstype' : 'go',
\ 'kinds' : [
\ 'p:package',
\ 'i:imports:1',
\ 'c:constants',
\ 'v:variables',
\ 't:types',
\ 'n:interfaces',
\ 'w:fields',
\ 'e:embedded',
\ 'm:methods',
\ 'r:constructor',
\ 'f:functions'
\ ],
\ 'sro' : '.',
\ 'kind2scope' : {
\ 't' : 'ctype',
\ 'n' : 'ntype'
\ },
\ 'scope2kind' : {
\ 'ctype' : 't',
\ 'ntype' : 'n'
\ },
\ 'ctagsbin' : 'gotags',
\ 'ctagsargs' : '-sort -silent'
\ }
"==============================================================================
" nerdtree-git-plugin 插件
"==============================================================================
let g:NERDTreeIndicatorMapCustom = {
\ "Modified" : "?",
\ "Staged" : "?",
\ "Untracked" : "?",
\ "Renamed" : "?",
\ "Unmerged" : "═",
\ "Deleted" : "?",
\ "Dirty" : "?",
\ "Clean" : "??",
\ 'Ignored' : '?',
\ "Unknown" : "?"
\ }
let g:NERDTreeShowIgnoredStatus = 1
let g:tagbar_ctags_bin = 'ctags' "tagbar以來(lái)ctags插件
let g:tagbar_width = 40 "設(shè)置tagbar的寬度為30列榛了,默認(rèn)40
let g:tagbar_autofocus = 1 "這是tagbar一打開(kāi)俘闯,光標(biāo)即在tagbar頁(yè)面內(nèi),默認(rèn)在vim打開(kāi)的文件內(nèi)
let g:tagbar_sort = 1 "設(shè)置標(biāo)簽不排序忽冻,默認(rèn)排序
"==============================================================================
" Valloric/YouCompleteMe 插件
"==============================================================================
" make YCM compatible with UltiSnips (using supertab)
let g:SuperTabDefaultCompletionType = '<C-n>'
" better key bindings for UltiSnipsExpandTrigger
let g:UltiSnipsExpandTrigger = "<tab>"
let g:UltiSnipsJumpForwardTrigger = "<tab>"
let g:UltiSnipsJumpBackwardTrigger = "<s-tab>"
"==============================================================================
" 其他插件配置
"==============================================================================
vim個(gè)人配置
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門(mén)臀防,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人边败,你說(shuō)我怎么就攤上這事袱衷。” “怎么了笑窜?”我有些...
- 文/不壞的土叔 我叫張陵致燥,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我排截,道長(zhǎng)嫌蚤,這世上最難降的妖魔是什么? 我笑而不...
- 正文 為了忘掉前任断傲,我火速辦了婚禮脱吱,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘认罩。我一直安慰自己箱蝠,他們只是感情好,可當(dāng)我...
- 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著抡锈,像睡著了一般疾忍。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上床三,一...
- 那天一罩,我揣著相機(jī)與錄音,去河邊找鬼撇簿。 笑死聂渊,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的四瘫。 我是一名探鬼主播汉嗽,決...
- 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼找蜜!你這毒婦竟也來(lái)了饼暑?” 一聲冷哼從身側(cè)響起,我...
- 序言:老撾萬(wàn)榮一對(duì)情侶失蹤洗做,失蹤者是張志新(化名)和其女友劉穎弓叛,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體诚纸,經(jīng)...
- 正文 獨(dú)居荒郊野嶺守林人離奇死亡撰筷,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
- 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了畦徘。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片毕籽。...
- 正文 年R本政府宣布平委,位于F島的核電站奈虾,受9級(jí)特大地震影響夺谁,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜肉微,卻給世界環(huán)境...
- 文/蒙蒙 一匾鸥、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧碉纳,春花似錦勿负、人聲如沸。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)琅摩。三九已至,卻和暖如春锭硼,著一層夾襖步出監(jiān)牢的瞬間房资,已是汗流浹背。 一陣腳步聲響...
- 正文 我出身青樓暑始,卻偏偏與公主長(zhǎng)得像搭独,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子廊镜,可洞房花燭夜當(dāng)晚...
推薦閱讀更多精彩內(nèi)容
- 新建標(biāo)簽 command+t 關(guān)閉標(biāo)簽 command+w 切換標(biāo)簽 command+數(shù)字或command+左右方...
- 簡(jiǎn)介: vundle.vim安裝 直接在命令行輸入:git clone https://github.com/gm...
- 以下內(nèi)容已過(guò)時(shí)嗤朴,詳情請(qǐng)查看 GitHub Quick Install curlsh -c "$(curl -fsS...
- 對(duì)于vim編輯器惊奇,原來(lái)我也計(jì)劃將vim打造成為一個(gè)完美的IDE,像電影里的黑客一樣自以為很帥氣的在黑色的終端里敲代...