濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > Vim中列出TODO與FIXME等備注的方法

Vim中列出TODO與FIXME等備注的方法

熱門標(biāo)簽:昆明電銷機(jī)器人價(jià)格 400的電話一般從哪里辦理 怎么用百度地圖標(biāo)注坐標(biāo) 梧州防封電銷卡 江西全自動(dòng)外呼系統(tǒng)報(bào)價(jià) 益陽(yáng)400電話申請(qǐng)辦理流程 上海機(jī)器人外呼系統(tǒng)哪家好 地圖標(biāo)注人員分布 春運(yùn)地圖標(biāo)注app

前言

很多程序員,包括我,會(huì)在寫代碼的時(shí)候,習(xí)慣性的用TODO, FIXME, HACK等作為一些注釋的前綴。這樣方便自己和后來(lái)者預(yù)先知道相關(guān)注釋和代碼的狀況

不過這樣的備注只有是以后恰巧看到這段代碼的時(shí)候才能看到,沒法在一次發(fā)版或者空閑的時(shí)候,有一個(gè)直觀的界面能看到這個(gè)項(xiàng)目里面所有這樣的關(guān)鍵詞。

這個(gè)時(shí)候一個(gè)簡(jiǎn)單的自定義命令興許能幫到你:

command Todo Ack! 'TODO\|FIXME'

效果如下:


不過要想使這條命令生效,需要一些環(huán)境準(zhǔn)備工作

Ack

首先我們需要安裝Ack或者Ag,這兩個(gè)都是命令行下的一個(gè)全局搜索工具,比系統(tǒng)自帶的grep要快很多的。

這里的安裝以Ag為例,因?yàn)檫@個(gè)是基于C來(lái)重寫的Ack并新增了很多特性,效率也是比Ack快了很多的。

# OSX
brew install the_silver_searcher
# Archlinux
pacman -S the_silver_searcher
# Ubuntu
apt-get install silversearcher-ag

在安裝完成之后,就可以在shell里面測(cè)試一下

ag TODO ./

Ack.vim

Ack.vim是一款插件,用來(lái)方便在Vim里面使用Ack/Ag, 然后通過Quickfix來(lái)提供搜索結(jié)果

不過這款插件,默認(rèn)是使用的Ack作為搜索引擎,為了能用上我們剛剛安裝的Ag,需要在~/.vimrc里面作一些配置:

if executable('ag')
 let g:ackprg = 'ag --vimgrep'
endif

這段配置是引用的官方倉(cāng)庫(kù)的Readme

不過也看很多人是用的

if executable('ag')
 let g:ackprg = 'ag --nogroup --nocolor --column'
endif

本人測(cè)試之后,發(fā)現(xiàn)二者并沒有什么區(qū)別??赡軐?duì)于Ag來(lái)說 --vimgrep是等同于--nogroup --nocolor --column 的。

這個(gè)時(shí)候在Vim的命令行里面輸入

:Ack! TODO 

是可以實(shí)現(xiàn)上圖所示效果的,而且還可以通過

:AckAdd FIXME

這樣的方式來(lái)附加其它要查看的。

不過這樣的方式,命令還是有點(diǎn)長(zhǎng)。所以配置一個(gè)alias來(lái)替代上面的命令,是一個(gè)比較符合懶人的想法

~/.vimrc里面新增

command Todo Ack! 'TODO\|FIXME'

然后在Vim的命令行里面輸入:

:Todo

就能實(shí)現(xiàn)列出當(dāng)前項(xiàng)目里面的所有TODO,FIXME了,而且可以根據(jù)自己的需要來(lái)擴(kuò)展這樣的關(guān)鍵字,像我就擴(kuò)展為如下代碼:

command Todo Ack! 'TODO|FIXME|CHANGED|BUG|HACK'
command Debug Ack! 'NOTE|INFO|IDEA'

區(qū)分了Todo和Debug兩種功能。

高亮

Vim里面會(huì)自動(dòng)的高亮TODO、FIXME,但是不會(huì)高亮CHANGED這樣的關(guān)鍵字,所以需要手動(dòng)的來(lái)指定一下,在~/.vimrc里面添加如下配置:

if has("autocmd")
 " Highlight TODO, FIXME, NOTE, etc.
 if v:version > 701
 autocmd Syntax * call matchadd('Todo', '\W\zs\(TODO\|FIXME\|CHANGED\|BUG\|HACK\)')
 autocmd Syntax * call matchadd('Debug', '\W\zs\(NOTE\|INFO\|IDEA\)')
 endif
endif

上面這段代碼是摘抄的,具體的功能就是匹配TODO等關(guān)鍵字,然后加上語(yǔ)法高亮。

綜上,一個(gè)簡(jiǎn)單好用的TODO管理器就已經(jīng)完成了。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

標(biāo)簽:北京 九江 懷化 贛州 亳州 河南 惠州 新疆

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Vim中列出TODO與FIXME等備注的方法》,本文關(guān)鍵詞  Vim,中,列出,TODO,與,FIXME,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Vim中列出TODO與FIXME等備注的方法》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Vim中列出TODO與FIXME等備注的方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    额尔古纳市| 綦江县| 八宿县| 旬阳县| 车险| 正蓝旗| 岳西县| 磐安县| 湖口县| 胶南市| 政和县| 瑞安市| 专栏| 漠河县| 和田市| 锦屏县| 息烽县| 富蕴县| 平和县| 漳州市| 宁乡县| 宽城| 北安市| 新野县| 安阳市| 高台县| 霍林郭勒市| 景洪市| 合阳县| 图木舒克市| 太保市| 商水县| 全南县| 东兰县| 韶山市| 广平县| 桑日县| 资兴市| 吐鲁番市| 潍坊市| 鹤壁市|