亚洲精品久久久久久第一页-人妻少妇精彩视品一区二区三区-91国产自拍免费视频-免费一级a在线播放视频正片-少妇天天日天天射天天爽-国产大屁股喷水视频在线观看-操美女骚穴抽插性爱视频-亚洲 欧美 中文字幕 丝袜-成人免费无码片在线观看

vim配置c語(yǔ)言開發(fā)環(huán)境 vim簡(jiǎn)單配置教程( 二 )


最后請(qǐng)更新你的 ctags,不要再使用老舊的 Exuberant Ctags,這貨停止更新快十年了,請(qǐng)使用最新的 Universal CTags 代替之,它在 Exuberant Ctags 的基礎(chǔ)上繼續(xù)更新迭代了近十年,如今任然活躍的維護(hù)著,功能更強(qiáng)大,語(yǔ)言支持更多 。
(注意最新版 universal ctags 調(diào)用時(shí)需要加一個(gè) –output-format=e-ctags,輸出格式才和老的 exuberant ctags 兼容否則會(huì)有 windows 下路徑名等小問題) 。
自動(dòng)索引
過去寫幾行代碼又需要運(yùn)行一下 ctags 來生成索引,每次生成耗費(fèi)不少時(shí)間 。如今 Vim 8 下面自動(dòng)異步生成 tags 的工具有很多,這里推薦最好的一個(gè):vim-gutentags,這個(gè)插件主要做兩件事情:
– 確定文件所屬的工程目錄,即文件當(dāng)前路徑向上遞歸查找是否有 `.git`, `.svn`, `.project` 等標(biāo)志性文件(可以自定義)來確定當(dāng)前文檔所屬的工程目錄 。
– 檢測(cè)同一個(gè)工程下面的文件改動(dòng),能會(huì)自動(dòng)增量更新對(duì)應(yīng)工程的 `.tags` 文件 。每次改了幾行不用全部重新生成,并且這個(gè)增量更新能夠保證 `.tags` 文件的符號(hào)排序,方便 Vim 中用二分查找快速搜索符號(hào) 。
vim-gutentags 需要簡(jiǎn)單配置一下:
" gutentags 搜索工程目錄的標(biāo)志,碰到這些文件/目錄名就停止向上一級(jí)目錄遞歸let g:gutentags_project_root = ['.root', '.svn', '.git', '.hg', '.project']" 所生成的數(shù)據(jù)文件的名稱let g:gutentags_ctags_tagfile = '.tags'" 將自動(dòng)生成的 tags 文件全部放入 ~/.cache/tags 目錄中,避免污染工程目錄let s:vim_tags = expand('~/.cache/tags')let g:gutentags_cache_dir = s:vim_tags" 配置 ctags 的參數(shù)let g:gutentags_ctags_extra_args = ['--fields=+niazS', '--extra=+q']let g:gutentags_ctags_extra_args += ['--c++-kinds=+px']let g:gutentags_ctags_extra_args += ['--c-kinds=+px']" 檢測(cè) ~/.cache/tags 不存在就新建if !isdirectory(s:vim_tags)silent! call mkdir(s:vim_tags, 'p')endif有了上面的設(shè)置,你平時(shí)基本感覺不到 tags 文件的生成過程了,只要文件修改過,gutentags 都在后臺(tái)為你默默打點(diǎn)是否需要更新數(shù)據(jù)文件,你根本不用管,還會(huì)幫你:setlocal tags+=… 添加到局部 tags 搜索列表中 。
為當(dāng)前文件添加上對(duì)應(yīng)的 tags 文件的路勁而不影響其他文件 。得益于 Vim 8 的異步機(jī)制,你可以任意隨時(shí)使用 ctags 相關(guān)功能,并且數(shù)據(jù)庫(kù)都是最新的 。需要注意的是,gutentags 需要靠上面定義的 project_root 里的標(biāo)志,判斷文件所在的工程,如果一個(gè)文件沒有托管在 .git/.svn 中,gutentags 找不到工程目錄的話,就不會(huì)為該野文件生成 tags,這也很合理 。想要避免的話,你可以在你的野文件目錄中放一個(gè)名字為 .root 的空白文件,主動(dòng)告訴 gutentags 這里就是工程目錄 。
最后啰嗦兩句,少用 CTRL-] 直接在當(dāng)前窗口里跳轉(zhuǎn)到定義,多使用 CTRL-W ] 用新窗口打開并查看光標(biāo)下符號(hào)的定義,或者 CTRL-W } 使用 preview 窗口預(yù)覽光標(biāo)下符號(hào)的定義 。
我自己還寫過不少關(guān)于 ctags 的 vimscript,例如在最下面命令行顯示函數(shù)的原型而不用急著跳轉(zhuǎn),或者重復(fù)按 `ALT+;` 在 preview 窗口中輪流查看多個(gè)定義,不切走當(dāng)前窗口,不會(huì)出一個(gè)很長(zhǎng)的列表讓你選擇,有興趣可以刨我的 vim dotfiles 。
編譯運(yùn)行
再 Vim 8 以前,編譯和運(yùn)行程序要么就讓 vim 傻等著結(jié)束,不能做其他事情,要么切到一個(gè)新的終端下面去單獨(dú)運(yùn)行編譯命令和執(zhí)行命令,要么開個(gè) tmux 左右切換 。如今新版本的異步模式可以讓這個(gè)流程更加簡(jiǎn)化,這里我們使用 AsyncRun 插件,簡(jiǎn)單設(shè)置下:
Plug 'skywind3000/asyncrun.vim'" 自動(dòng)打開 quickfix window ,高度為 6let g:asyncrun_open = 6" 任務(wù)結(jié)束時(shí)候響鈴提醒let g:asyncrun_bell = 1" 設(shè)置 F10 打開/關(guān)閉 Quickfix 窗口nnoremap <F10> :call asyncrun#quickfix_toggle(6)<cr>該插件可以在后臺(tái)運(yùn)行 shell 命令,并且把結(jié)果輸出到 quickfix 窗口:


以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問題,請(qǐng)您及時(shí)就醫(yī)或請(qǐng)專業(yè)人士給予相關(guān)指導(dǎo)!

「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對(duì)您有所幫助: