国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Linux Shell > 正文

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

2020-07-27 18:53:53
字體:
來源:轉載
供稿:網友

前言

很多程序員,包括我,會在寫代碼的時候,習慣性的用TODO, FIXME, HACK等作為一些注釋的前綴。這樣方便自己和后來者預先知道相關注釋和代碼的狀況

不過這樣的備注只有是以后恰巧看到這段代碼的時候才能看到,沒法在一次發版或者空閑的時候,有一個直觀的界面能看到這個項目里面所有這樣的關鍵詞。

這個時候一個簡單的自定義命令興許能幫到你:

command Todo Ack! 'TODO/|FIXME'

效果如下:


不過要想使這條命令生效,需要一些環境準備工作

Ack

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

這里的安裝以Ag為例,因為這個是基于C來重寫的Ack并新增了很多特性,效率也是比Ack快了很多的。

# OSXbrew install the_silver_searcher# Archlinuxpacman -S the_silver_searcher# Ubuntuapt-get install silversearcher-ag

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

ag TODO ./

Ack.vim

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

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

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

這段配置是引用的官方倉庫的Readme

不過也看很多人是用的

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

本人測試之后,發現二者并沒有什么區別。可能對于Ag來說 --vimgrep是等同于--nogroup --nocolor --column 的。

這個時候在Vim的命令行里面輸入

:Ack! TODO 

是可以實現上圖所示效果的,而且還可以通過

:AckAdd FIXME

這樣的方式來附加其它要查看的。

不過這樣的方式,命令還是有點長。所以配置一個alias來替代上面的命令,是一個比較符合懶人的想法

~/.vimrc里面新增

command Todo Ack! 'TODO/|FIXME'

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

:Todo

就能實現列出當前項目里面的所有TODO,FIXME了,而且可以根據自己的需要來擴展這樣的關鍵字,像我就擴展為如下代碼:

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

區分了Todo和Debug兩種功能。

高亮

Vim里面會自動的高亮TODO、FIXME,但是不會高亮CHANGED這樣的關鍵字,所以需要手動的來指定一下,在~/.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/)') endifendif

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

綜上,一個簡單好用的TODO管理器就已經完成了。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如有疑問大家可以留言交流,謝謝大家對武林網的支持。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 濮阳县| 石狮市| 寻乌县| 迁安市| 苏州市| 白水县| 丹巴县| 金乡县| 肥乡县| 郴州市| 申扎县| 曲松县| 宣威市| 肇庆市| 宁津县| 依安县| 乌兰察布市| 桃园县| 洛隆县| 土默特左旗| 绥棱县| 肥城市| 南木林县| 邓州市| 红桥区| 海伦市| 湖州市| 合山市| 马龙县| 石狮市| 安图县| 娱乐| 延长县| 上栗县| 庄河市| 乐山市| 沅陵县| 河津市| 佳木斯市| 金湖县| 商水县|