如何在VIM中画线?

时间:2011-11-27 02:59:45

标签: vim

如何绘制垂直线而不是逐个输入?

例如,我想在第10列中设置20行的垂直线。就像我的第一行。 我该如何以聪明的方式做到这一点?

enter image description here

3 个答案:

答案 0 :(得分:13)

首先,设置virtualedit=all,让自己浏览一行的结尾:

:set virtualedit=all

则...

10|<C-V>20jr|

其中:

  • 10|:将您移至第10栏
  • ctrl+V:进入blockwise visual mode
  • 20j:向下移动20行(适应品味)
  • r|:用条替换选区

答案 1 :(得分:2)

以下是设置virtualedit=all的替代解决方案,以便在第10列中生成包含|的20行:

  1. Normal模式开始,制作一个示例行,例如10i<space><esc>r|
    • 10i space 将插入 space 十次,按 esc 后跟r|将替换最后一个带有|
    • 的字符
  2. 使用Y
  3. 复制整行
  4. 在普通模式下,使用20p粘贴复制的行20次
    • 这会将最近复制的行粘贴20次以下,总共有21行相同的行
  5. 总之:

    10i<space><esc>r|Y20p
    

答案 2 :(得分:1)

这似乎是一个VIM插件,可以完全满足您的需求:

http://www.vim.org/scripts/script.php?script_id=40

我自己没试过。