2016-04-23 12 views
1

プログラムのインプリメンテーションプロセスでは、主にprintコマンドを使用して、多くの追加コード行を挿入します。残念ながら、コードからどの行が追加されたのかを忘れてしまい、しばらくしてから削除する必要があります。この問題は、大きなプログラムでは最悪になります。VIMの任意の行を強調表示する

これは、任意のユーザーが選択した行をハイライト表示する方法を教えています(カーソルが移動した後でも強調表示されるを参照してください)。だから

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

私は、現在の行が強調表示され、その保持され、以前の強調表示された行、場合はL \ を押すたびに:記事によって与えられた解決策は、次のコードの.vimrcに含めることです1つは、強調されていません。

これは私が望む動作ではありません。代わりに、以前の強調表示されている行の強調表示を解除せずに、必要な数だけ任意の行をハイライトすることができます。可能であれば、\ lのようなユニークなコマンドを使用してください。

誰かがこれに対する解決策を知っていますか?

ありがとうございます。

EDITED

yolenoyerによって提案されたコマンドは、最初の問題を解決しました。しかし、今他の問題が提起されました。次のコマンドを実行します。

:call clearmatches() 

が強調表示された行をきれいにする提案は、すべてのラインをきれいにし、私は特定の清掃できるようにしたいと思い、一度に代わりにそれらのすべてオフ、ラインを強調しました。出来ますか?

答えて

2

私はCでかなりプログラムしていますが、デバッグ時にはデバッグプリントでコードをペーストする傾向があります。

私は単語「debug_printf」は、特定のカラースキームのデフォルトの「エラー」の色で強調表示されていることを確認するためにVimのコマンドに

:syntax match Error /\<debug_printf\>/ 

を使用しています。

これは一連の行をブックマークするのには役立ちませんが、そのためには、ブックマークを作成したり削除したりするための「ブックマーク」プラグインをチェックする必要があります。

VIM Bookmarks Plugin

0

:matchは、1つの一致のみを受け入れます。

例えば、代わりにmatchadd({highlight-group}, {pattern})機能を使用します。

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

:call clearmatches()を実行し、追加した試合をクリアします。

+0

魔法のように動作します。 **:call clearmatches **コマンドはすべての強調表示された行を消去します。特定のユーザーが選択した行だけをコマンドで消去することは可能ですか? – Randerson

+0

はい、 ':h matchdelete()'と ':h matchadd()'を参照してください – yolenoyer

0

私はあなたの問題を説明し、あなたの最初の段落は、VIMとは何の関係もないと思うので、多分あなたはあなたの問題を解決するためにVimを使用する必要はありません。

でない通常のprintステートメントでデバッグしますが、印刷をラップする機能はありますか?そうすれば、プログラム全体を検索したり、ファイル全体を検索したりすることが簡単になります(デバッグ印刷機能がすべて発生した場合は、*または#で検索するだけです)。

+0

これはすばらしいでしょう...私はそれを探します。私はどこで私はすべての耳を開始する必要がありますについての提案がある場合。 – Randerson

+0

@Randersonどの言語を使用していますか?例えば、あなたがPythonを使っているなら、 'def myprint(* msgs):print(" \ n ".join(map(str、msgs))' ) 'とターミナルから(少なくともLinux/OSX上では)' grep -Re my_folder_with_code_in_it '\ bmyprint \ b''となります。これは非常に粗末な解決策ですが、それはあなたとVimを使用していなくてもあなたのコードを見たり、Vimを使わずに作業している人のために、Vimの設定をしていない別のコンピュータでも動作させるべきです。 – chelmertz

関連する問題