質問

Vimでテキストの範囲をマークし、テキストの別の範囲を選択して以前のハイライトを維持したまま(緑に)色を変更するよりも、ハイライトの色を(赤に)変更することは可能ですか?

役に立ちましたか?

解決

Txtfmt プラグインが探しているものだと思います...

Txtfmt(Vim Highlighter)

Txtfmt は、一種の「リッチテキスト」を提供します。 Vimのプレーンテキスト機能。強調表示は、バッファーに直接挿入された非表示のマーカー文字を介して行われるため、ファイルとは別にメタデータを保存する必要なく、強調表示が永続的になります。

Txtfmtは高度に設定可能です。デフォルト設定は、8(設定可能な)前景色、8(設定可能な)背景色、および太字、下線、斜体属性のすべての組み合わせ(太字、太字斜体、太字下線など)をサポートします。デフォルト以外の構成では、standout、reverse、undercurlの追加属性がサポートされています。

非常に広範なヘルプファイルがあり、作成者は使用方法に関する質問に喜んでお答えします...

他のヒント

最初の基本的なものは次のとおりです。

:hi Green guibg=#33ff33
:syntax region Green start=/\%20l/ end=/\%30l/

機能:

  1. 背景色が緑色の「グリーン」ハイライトグループを定義します。
  2. nr 20行目からnr 30行目で始まる「Green」ハイライトグループで強調表示される構文領域を定義します。

ここで、視覚的に選択されたテキストを受け取り、複数の定義済みの色グループの1つを適用する関数またはコマンドを作成できます。その機能を取得したら、キーにバインドします。たとえば、緑の場合は \ g \ r 赤の場合、

更新:

そして、ここにちょっとしたvimscriptがあります:

function! HighlightRegion(color)
  hi Green guibg=#77ff77
  hi Red guibg=#ff7777
  let l_start = line("'<")
  let l_end = line("'>") + 1
  execute 'syntax region '.a:color.' start=/\%'.l_start.'l/ end=/\%'.l_end.'l/'
endfunction

vnoremap <leader>g :<C-U>call HighlightRegion('Green')<CR>
vnoremap <leader>r :<C-U>call HighlightRegion('Red')<CR>

注:

ハイライトを再適用できません(たとえば、緑から赤)。

markというプラグイン/スクリプトがあります:

  

マーク:複数の単語を異なる色で同時に強調表示する小さなスクリプト。たとえば、大きなプログラムファイルを参照しているときに、いくつかの重要な変数を強調表示できます。これにより、ソースコードのトレースが容易になります。

http://www.vim.org/scripts/script.php? script_id = 1238

Markプラグインあなたがしたいことをします。インストールしたら、視覚的に選択して \ m を押します。

ファイルの実際のコンテンツに関連しないメタデータの保存が必要になるため、このようなことを行う方法を知りません。 Vimの実行中にメモリ内にのみ存在する場合でも、その方法はわかりません。

Vimについての私の知識が限られているため、方法がないという意味ではありません。しかし、Vimができないことのように思えます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top