Vim 7でDrawItプラグインを使用して、ASCII図を描画しています。
これは多すぎるかもしれませんが、それでも— </ p>
描画を簡単にするために、背景にグリッドを表示できるプラグインはありますか?
Vim 7でDrawItプラグインを使用して、ASCII図を描画しています。
これは多すぎるかもしれませんが、それでも— </ p>
描画を簡単にするために、背景にグリッドを表示できるプラグインはありますか?
@Davidと@romainlの考えに何も追加することはできません(背後にグリッドがある半透明のウィンドウを使用するという@romainlの提案に触発されたと思います!)。
ただし、以下を使用すると、カーソル位置を視覚化する方が簡単な場合があります。
set cursorline
set cursorcolumn
もちろん、これは真のグリッドに代わるものではありませんが、少なくともカーソルの位置合わせを一目で確認できます。
Vimのハイライト機能を使用してガイドグリッドをエミュレートする実装を提案しましょう。次の関数は、2つの必須引数と別の2つのオプション引数を使用して必要な強調表示を作成します。前の2つは、それぞれ水平線と垂直線の間の距離です。後者の引数は、グリッドで覆われた領域の高さと幅です(対応する行と文字で)。これらの引数が指定されていない場合、バッファー内の行数とバッファー内の最長行の長さが使用されます。
function! ToggleGrid(...)
if exists('b:grid_row_grp') || exists('b:grid_prev_cc')
call matchdelete(b:grid_row_grp)
let &colorcolumn = b:grid_prev_cc
unlet b:grid_row_grp b:grid_prev_cc
return
endif
let [dr, dc] = [a:1, a:2]
if a:0 < 4
let [i, nr, nc] = [1, line('$'), 0]
while i <= nr
let k = virtcol('$')
let nc = nc < k ? k : nc
let i += 1
endwhile
else
let [nr, nc] = [a:3, a:4]
endif
let rows = range(dr, nr, dr)
let cols = range(dc, nc, dc)
let pat = '\V' . join(map(rows, '"\\%" . v:val . "l"'), '\|')
let b:grid_row_grp = matchadd('ColorColumn', pat)
let b:grid_prev_cc = &colorcolumn
let &colorcolumn = join(cols, ',')
endfunction
私は@romainlに同意する傾向があります。ソースをいじくり回さずにVimでこれを本当に行う方法は考えられません。ただし、いくつかの回避策を考えることができます。
多くのターミナルエミュレータでは、背景画像を設定できます。(xfce4-terminal
たとえば、この機能があります)。各セルのサイズがモノスペースフォントが占めるスペースに対応する背景をデザインできます。
NateKaneのvim-indent-guideが役立つかもしれません-文字を揃えるために使用できる垂直線を表示します。いくつかの例については、スクリーンショットのページを参照してください。
Vimのハイライトを悪用して、ある種のグリッドをシミュレートすることができます。