2016-06-15 8 views
0

Vimでは90番目のカラムでcolorcolumnを設定していますが、同時にテキストラッピング機能を維持したいと思います。Vimでカラーカラムとテキストの折り返しを同時に行う

。したがって、ラップライン上に着色列を維持し、何の休憩を持っていないために、私のような私の.vimrc何かに配置する必要があります:

let col_no=90 
if ((longest_line_size/90) >= 2) 
    for i in range(2, (longest_line_size/90)) 
    let col_no=col_no . "," . ((90*i) + (&columns - 91)) 
    endfor 
endif 
execute 'set colorcolumn=' . col_no 

問題は(私は、ウィンドウのサイズを変更する場合ということですまたはバッファー)、折り返し線の色付きの列は整列しません。解決策は、バッファがサイズ変更されたときに関数を再実行することです。

これは可能ですか?その他の解決策や提案も歓迎します。

答えて

2

次の自動コマンドに

augroup Resize 
    autocmd! 
    autocmd VimResized * :call YourFunctionName<cr> 
augroup END 

を使用してウィンドウサイズの変更があなたのvimrcファイルにそれを追加するたびに関数を実行することができます。あなたのコードでそれを使用するには、関数内でコードをラップする必要があります。

function YourFunctionName 
    #your code goes here 
endfunction 

大文字で始まる必要があります。

+0

ありがとう、これは正しいです。アルゴリズムを完成させるために、私は現在のバッファの列数も知る必要があります(&columnsはウィンドウ全体の列数です)。これがどのように達成されるか知っていますか?ありがとう! – jackgu1988

+1

http://stackoverflow.com/questions/26315925/get-usable-window-width-in-vim-scriptはあなたの質問に答える必要があります。また、私の答えが気に入ったらアップヴォートに感謝します。ありがとう! – lwassink

+0

ありがとうございます!私はupvoteしたいが、私の評判はまだ私がそれを行うことを許可していません。私は十分なポイントを集めるときに戻ってきます。 – jackgu1988

関連する問題