web-dev-qa-db-ja.com

Vimで行を折り返すために垂直線を表示するにはどうすればよいですか?

Vim(GVimではない)の列80に垂直線を表示する方法を見つけることに興味があります。

set wrapを使用しましたが、縦線を表示したいだけなので、長い線を自分でラップできます。

113
jennifer

編集:Vim> = 7.3については、答え を参照してください。

残念ながら、vimには(TextMateとは異なり)必要な列の後に垂直線を表示するメカニズムがありません。ただし、ラインが長すぎることを示すために使用できる代替視覚インジケータがあります。

私が使用するものは次のとおりです(これを.vimrcに入れることができます):

nnoremap <Leader>H :call<SID>LongLineHLToggle()<cr>
hi OverLength ctermbg=none cterm=none
match OverLength /\%>80v/
fun! s:LongLineHLToggle()
 if !exists('w:longlinehl')
  let w:longlinehl = matchadd('ErrorMsg', '.\%>80v', 0)
  echo "Long lines highlighted"
 else
  call matchdelete(w:longlinehl)
  unl w:longlinehl
  echo "Long lines unhighlighted"
 endif
endfunction

したがって、<Leader>Hを使用して、80を超える列をハイライト表示することができます。

15
Sam

Vim 7.3の新機能:

'colorcolumn'は、ColorColumnで強調表示された画面列のコンマ区切りリストです。テキストを揃えるのに便利です。画面の再描画が遅くなります。画面の列は、絶対値、または「+」または「-」で始まる数値にすることができ、「textwidth」に追加または減算されます。

ドキュメントの例:

:set colorcolumn=+1        " highlight column after 'textwidth'
:set colorcolumn=+1,+2,+3  " highlight three columns after 'textwidth'
:highlight ColorColumn ctermbg=lightgrey guibg=lightgrey

絶対数も使用できます:

:set colorcolumn=80
296
UncleZeiv

長い行について通知する別の方法があります。

ハイライトOverLength ctermbg = red ctermfg = white guibg =#592929
OverLengthの一致/\%81v.*/

Vim 80の列レイアウトの問題

11
Brian

私が使う match ErrorMsg '\%>80v.\+'これは、80文字以上を赤で強調表示します。

このコマンドをpython.vimとRuby.vimの〜/ .vim/after/ftplugin /の下に配置します。

ここにいくつかの答え http://vim.wikia.com/wiki/Highlight_long_lines シンプルなオートコマンド

:au BufWinEnter * let w:m1=matchadd('Search', '\%<81v.\%>77v', -1)
:au BufWinEnter * let w:m2=matchadd('ErrorMsg', '\%>80v.\+', -1)
3
michael