4

Vim 7でDrawItプラグインを使用して、ASCII図を描画しています。

これは多すぎるかもしれませんが、それでも— </ p>

描画を簡単にするために、背景にグリッドを表示できるプラグインはありますか?

4

3 に答える 3

8

@Davidと@romainlの考えに何も追加することはできません(背後にグリッドがある半透明のウィンドウを使用するという@romainlの提案に触発されたと思います!)。

ただし、以下を使用すると、カーソル位置を視覚化する方が簡単な場合があります。

set cursorline
set cursorcolumn

もちろん、これは真のグリッドに代わるものではありませんが、少なくともカーソルの位置合わせを一目で確認できます。

于 2012-08-07T12:41:34.553 に答える
2

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
于 2012-08-07T15:10:11.123 に答える
0

私は@romainlに同意する傾向があります。ソースをいじくり回さずにVimでこれを本当に行う方法は考えられません。ただし、いくつかの回避策を考えることができます。

  1. 多くのターミナルエミュレータでは、背景画像を設定できます。(xfce4-terminalたとえば、この機能があります)。各セルのサイズがモノスペースフォントが占めるスペースに対応する背景をデザインできます。

  2. NateKaneのvim-indent-guideが役立つかもしれません-文字を揃えるために使用できる垂直線を表示します。いくつかの例については、スクリーンショットのページを参照してください。

  3. Vimのハイライトを悪用して、ある種のグリッドをシミュレートすることができます。

于 2012-08-07T12:25:42.547 に答える