vim / gvimでライン長マーカーを設定する方法は?


75

一部のGUIテキストエディターには、行の長さのマーカーとして機能する垂直線があります(ソースコードファイルで80文字より短い行を維持するのに役立ちます)。

vim / gvimで似たようなものを持つことは可能ですか?定規 vimオプションについては知っていますが、大画面で視覚的にそれに従うのはあまり便利ではありません。

編集:詳細を学ぶために「colorcolumn」をグーグルで検索すると、この質問はhttps://stackoverflow.com/questions/235439/vim-80-column-layout-concernsの複製であることがわかりました


回答:


131

これを実行するだけです

:set colorcolumn=72

引数の前に-または+を付けて、の左側または右側に多くの列のマーカーを配置することもできtextwidth、列のコンマ区切りリストを受け入れます。このcolorcolumnオプションはVim 7.3のみにあると思います。見る

:help colorcolumn

8
うわー、vimは私を驚かせるのをやめません!
ピーターノア

4
いいね!が設定され、-が最初の列が強調表示された最大10行の折り返し行を表示する場合columns=80にも役立ちます。wrapcolorcolumn=81,161,241,321,401,481,561,641,721,801
アミール

20

OSCON 2013でのDamian Conwayの「More Instantly Better Vim」トークから:

highlight ColorColumn ctermbg=magenta
call matchadd('ColorColumn', '\%81v', 100)

これによりDarkCyan、行が最大80文字を超えると、文字がマゼンタで強調表示されます(スクリーンショットはにあります)。

ハイライトが有効なvim

gvimのために:それはするのがベストです最後の部分に、これらの2行を移動し、あなたの.vimrcそれが動作することを確認するファイル。


えっ!これについてのあなたの非常に似た質問に答えました...小さな世界! superuser.com/questions/771558/...
lornix

この答えを入れてから、gVimでできなかったことを思い出して、尋ねました。;)
Isxek 14年

うわー、これは本当に素晴らしいです!これは私が探すことすら知らないような機能です。'\$81v\S'空白以外の文字のみに一致するパターンを使用しています。これは、行の長さが正確に80文字の場合、ハイライトが表示されないことを意味します(これは本当に私を悩ませたものです)。より多くの情報のためにこれを参照してくださいstackoverflow.com/questions/12985042/...
fvgs

1
以前のコメントにいくつか修正を加えたい。する$必要があります%。同様に、\%81v.81番目の列のすべての文字について81番目の列が強調表示されるようにするため、パターンを使用します。
fvgs

2

これを試すことができます:

grep '.\{81\}' file

または

set colorcolumn=80

(または略記)

set cc=80

または前述のとおり:

match ErrorMsg '\%>80v.\+'

0

以下は、Hacking Vim:A Cookbookの不器用なトリックで、 Kim Schultzによる最新のVim Editorを最大限に活用します。

ErrorMsg80文字を超える行が(通常は明るい赤で)強調表示されます。私にとってはうまくいきます。

function! RemoveWidthLimitWarnigns()
    silent! call matchdelete(4)
endfunction
function! InsertWidthLimitWarnings()
    call RemoveWidthLimitWarnigns()
    call matchadd("ErrorMsg", "\\%>79v.\\+", 10, 4)
endfunction

このスニペットで何をするべきですか?.vimrcに貼り付けるだけですか?
vtest

最初に試すだけで:call matchadd("ErrorMsg", "\\%>79v.\\+", 10, 4)十分です。しかし、私は@garyjohnが良い何かを知っていたので、もうこれはお勧めしません
unperson325680
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.