2016-04-23 83 views
1

在程序的實現過程中,我通常插入許多附加代碼行,主要是使用print命令來幫助我理解和調試已實現的程序。不幸的是,我常常忘記代碼中的哪些行是附加的,應該在一段時間後刪除。這個問題在大型程序中變得最糟糕。突出顯示VIM中的任意行

那麼,我發現這article,教導如何保持一個任意用戶選定的行高亮顯示(請參閱部分:光標移動後保持高亮)。本文給出的解決方案是在.vimrc中下面的代碼包括:

:nnoremap <silent> <Leader>l ml:execute 'match Search /\%'.line('.').'l/'<CR> 

所以,每次當我按下\升當前行被突出顯示,並保持這樣了,以前的突出顯示的行,如果有一個,是不重要的。

這不是我想要的行爲。相反,我希望能夠突出顯示儘可能多的任意行,而不需要突出顯示之前突出顯示的行。如果可能的話,使用獨特的命令,如\ l

有人知道這個解決方案嗎?

在此先感謝。

EDITED

通過yolenoyer提出的命令解決了最初的問題。但是,現在提出了其他問題。下面的命令:

:call clearmatches() 

提出清理高亮行清除所有行,我希望能夠清理特定一下子凸顯的線條,而不是關閉所有的人。可能嗎?

回答

2

我用C編寫的程序相當多,而且在調試的時候往往會用調試打印的方式來代碼。

我使用vim的命令

:syntax match Error /\<debug_printf\>/ 

確保單詞「debug_printf」默認「錯誤」的顏色爲特定的色彩方案突出。

這不會幫助您爲一系列行添加書籤,但爲此您應該查看允許您在整個文件中創建和刪除書籤的「書籤」插件。

VIM Bookmarks Plugin

0

:match只接受一個匹配。

使用matchadd({highlight-group}, {pattern})函數來代替,例如:

nnoremap <silent> <leader>l :call matchadd('Search', '\%'.line('.').'l')<cr> 

要清除添加的比賽中,運行:call clearmatches()

+0

工程像魔術。命令**:調用clearmatches **清理所有突出顯示的行。有沒有可能讓一個命令乾淨只是特定的用戶選擇的行? – Randerson

+0

是的,請參閱':h matchdelete()'和':h matchadd()' – yolenoyer

0

我想你的第一個段落,這說明你的問題,無關用vim,所以也許你並不需要使用vim來解決問題。

不是使用普通打印語句進行調試,但使用打印打印功能?這對於搜索程序範圍和文件範圍非常簡單(只需使用*#查找所有出現的調試打印功能)。

+0

這將是偉大的......我會尋找它。如果你有什麼建議,我應該從哪裏開始。 – Randerson

+0

@Randerson您正在使用哪種語言?例如,如果你使用的是Python,你可以執行'def myprint(* msgs):print(「\ n」.join(map(str,msgs)))'並使用'myprint(「 )'和終端(至少在Linux/OSX上):'grep -Re my_folder_with_code_in_it'\ bmyprint \ b''。這是一個非常粗略的解決方案,但它應該可以讓你和那些使用/查看你的代碼而不使用vim的人以及在另一臺沒有vim設置的計算機上工作。 – chelmertz