我正在使用Vim7中的DrawIt插件来绘制一些ASCII图。
可能太多了,但还是-
有没有可以在后台显示网格的插件,让绘图更简单?
发布于 2012-08-07 20:41:35
我不能对@David和@romainl的想法添加任何东西(我认为@romainl关于使用半透明窗口并在其后面添加网格的建议受到了启发!)
但是,您可能会发现使用以下命令可以更容易地可视化光标位置:
set cursorline
set cursorcolumn当然,它不能替代真正的网格,但它至少能让你一目了然地看到光标的对齐。
发布于 2012-08-07 23:10:11
让我提出一个使用Vim突出显示功能模拟引导网格的实现。下面的函数创建必要的高亮显示,接受两个强制参数和另外两个可选参数。前两条线对应的是水平线和垂直线之间的距离。后一个参数是网格覆盖的区域的高度和宽度(相应地,以行和字符表示)。如果未指定这些参数,则使用缓冲区中的行数和其中最长行的长度。
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-07 20:25:43
我倾向于同意@romainl;我想不出任何方法在Vim中真正做到这一点,而不是在源代码上胡乱摆弄。但是,我可以想到一些变通方法。
xfce4-terminal具有此功能)。你可以设计一个背景,每个单元格的尺寸对应于你的等宽字体所占用的空间。https://stackoverflow.com/questions/11844385
复制相似问题