この質問は これ に関連しています。
ダミアンコンウェイは、彼の 最近のOSCON 2013トーク Vimについての過剰な行の長さをマークするための素晴らしいスニペットを提供しました。
highlight ColorColumn ctermbg=Magenta
call matchadd('ColorColumn', '\%81v', 100)
その結果:
コンソールVimを使用するとうまく機能します。ただし、ctermbg=Magenta
の部分をguibg=Magenta
に変更すると、文字が強調表示されるだけで、マゼンタでは色付けされません。
これをgVimで正しく機能させるにはどうすればよいですか?
うーん、私のために働く?参考までに、Vim v7.4パッチ335を実行しています(出血はあまりありません!!)
.vimrc
に次の2行を追加しました。
highlight ColorColumn ctermbg=Magenta guibg=Magenta
call matchadd('ColorColumn', '\%81v', 100)
Vimとtaa-daaをリロードしました! 81位のキャラクターは魔法のようにマゼンタ化されました。
編集:以下のコメントによると、@ isxekはこれらの2行を.vimrcファイルの最後に置く必要があることがわかりました。明らかに、使用されるカラースキーム(Molokai)はColorColumnハイライトスキームを設定します。すべてがロードされた後にColorColumnハイライトを設定し、基本的に「行を最後に置く」と同じことを実行したため、この問題は発生しませんでした。
個人的には、実際のGroup
ハイライトグループに設定されているハイライト色を台無しにしないように、一意のColorColumn
識別子を使用することをお勧めします。
highlight MyLineTooLongMarker ctermbg=Magenta guibg=Magenta
call matchadd('MyLineTooLongMarker', '\%81v', 100)
Vimとgvimの両方で動作します。
試しましたか/ ColorColumn
を使用していますか? textwidth
に基づいて1つまたは複数の列を強調表示するVimの比較的新しいオプション。 version 7.3
で追加されました。とても便利な!
私はこのようにそれを使用します:
" it didn't exist before Vim v7.3, sometimes I encounter older versions of vim (centOS, looking at you!!)
if v:version >= 703
" a faint grey (gray?) color, not too insistent
highlight ColorColumn term=reverse ctermbg=233 guibg=#202020
" put the marker(s) at 'textwidth+2' (and at position 120)
set colorcolumn=+2,120
" if we're called as '*view', or on a console, turn off the colorcolumn
if v:progname =~? 'view' || &term =~? 'linux|console'
set colorcolumn=
endif
endif
したがって、基本的に、デフォルトとしてtextwidth + 2
と位置120
に表示される2行がディスプレイに表示されます。スクリーンショットを取得し、set colorcolumn=+2,90
で行を移動したので、ここでは幅が広すぎません。このように見えます:
textwidth + 2
と90
の位置にある2本の灰色の縦線が表示されます。ここでは、私のtextwidth
が78に設定されているため、行は80文字、90文字外に配置されます。
これで、v7.3より前のバージョンのvimにcolorcolumn
の形式を追加するために必要な2行を使用できます。上記のバージョンチェックブロックのelse
句に貼り付けてください。