您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“Vim中如何列出TODO與FIXME等備注”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Vim中如何列出TODO與FIXME等備注”這篇文章吧。
前言
很多程序員,包括我,會在寫代碼的時候,習慣性的用TODO, FIXME, HACK等作為一些注釋的前綴。這樣方便自己和后來者預先知道相關注釋和代碼的狀況
不過這樣的備注只有是以后恰巧看到這段代碼的時候才能看到,沒法在一次發版或者空閑的時候,有一個直觀的界面能看到這個項目里面所有這樣的關鍵詞。
這個時候一個簡單的自定義命令興許能幫到你:
command Todo Ack! 'TODO\|FIXME'
效果如下:
不過要想使這條命令生效,需要一些環境準備工作
Ack
首先我們需要安裝Ack或者Ag,這兩個都是命令行下的一個全局搜索工具,比系統自帶的grep要快很多的。
這里的安裝以Ag為例,因為這個是基于C來重寫的Ack并新增了很多特性,效率也是比Ack快了很多的。
# OSX brew install the_silver_searcher # Archlinux pacman -S the_silver_searcher # Ubuntu apt-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\)') endif endif
上面這段代碼是摘抄的,具體的功能就是匹配TODO等關鍵字,然后加上語法高亮。
綜上,一個簡單好用的TODO管理器就已經完成了。
以上是“Vim中如何列出TODO與FIXME等備注”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。