特定の列にルーラーを設定するにはどうすればよいですか?


50

異なる言語でコーディングする場合、行を特定の長さ(通常は79または80文字)に制限する必要があります。

これは他のエディターでルーラー(列に表示される実線)を使用するか、テキストの色を変更して消えたことを示すことで行われました。

79文字に近づいたり、1行で移動したりするときに、Vimにどのように通知させることができますか?

回答:


64

Vim 7.3以降でのみ使用可能な:set colorcolumn:set cc略称)オプションを使用して、特定の行にルーラーを表示できます。

set colorcolumn=80

これにより、その列の背景色が赤に設定され、作業する視覚的な定規が提供されます。

80に設定されたデフォルトの色列の画像

赤以外の別の色(本当に目立つ)を使用する場合は、highlightforを設定して色を変更できますColorColumn

highlight ColorColumn ctermbg=0 guibg=lightgrey

列のカスタマイズされた色

cterm引数を使用してVimのターミナルバージョンの色を設定し、引数を使用してVimのGUIバージョンを設定できguibgます。0明るくするとき(それはデフォルトである)グレーブラックのASCIIエスケープコードの値です。この値lightgreyは、gVimなどのVimのGUIバージョンで使用され、背景色を明るい灰色に変更します。


10
複数のコンマで区切られた色の列を持つことさえできます!
200_success

4
それを結合と範囲と組み合わせると、非常に少ないコードで多数の列を色付けできます。私の.vimrcがあります:execute "set colorcolumn=" . join(range(81,335), ',')
コーディ投票

19

Kevinの答えの補遺として、複数の色の列を持つことができます。コーディングするとき、80カラムに「ソフト」制限があり、120カラムに「ハード」制限があることがあります。したがって、80の行と、120の後のすべての列に色を付けます。

私はこれをします

let &colorcolumn="80,".join(range(120,999),",")

もちろん、これは他の設定に簡単に変更できます。


14

Vim 7.3には、colorcolumn他の回答で詳しく説明されているように、オプションがあります。

ただし、何らかの理由でバージョン7.3を使用していない場合でも、vimのmatch機能を使用して特定の列数を超えていることを視覚的に示すことができます(詳細:help matchについては参照)。

基本的に、matchコマンドを使用すると、特定の正規表現に一致するテキストの永続的なハイライトを作成できます。:match ColorColumn "\%80v."「ColorColumn」グループで列80のテキストを強調表示します。もちろん、任意のハイライトグループと任意の列値を置き換えることができます。強力な視覚的表示が必要な場合、式"\%>79v.\+"は列80以降を強調表示します。

\%80v手段と「一致仮想列80における」\%>79v手段「試合後に仮想カラム79;参照:help /\%c多くのため。)

このアプローチは、指定された列に実際の文字が存在する場合にのみ強調表示されますが、視覚的に一貫性が低下しcolorcolumnます。


4
個人的には、matchesの一貫性の低いアプローチの方が良いと思います。これは、画面の右側に(私にとって)邪魔な大きな赤い線を表示するのではなく、80カラムの制限を超えている行のみを強調表示するためです。したがって、Python用のvimrcではcall matchadd('ColorColumn', '\(\%80v\|\%100v\)')、PEP 8で推奨される長さである80と100 を使用します
-jalanb
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.