2011-11-27 86 views
6

如何绘制垂直线而不是逐个打印?如何在VIM中绘制线条?

例如,我想在第10列中为20行设置一条垂直线。就像我的第一行。 我该如何巧妙地做到这一点?

enter image description here

回答

12

首先,设置virtualedit=all,让自己导航过去行的末尾:

:set virtualedit=all 

则...

10|<C-V>20jr| 

其中:

  • 10|:移动你到屏幕栏10
  • ctrl+V:进入嵌段视觉模式
  • 20j:移动你向下20行(调整适量)
  • r|:替换与酒吧
+1

非常感谢。它的工作原理非常详细。 – CCC

+0

@iask:不客气。 – Johnsyweb

1

这似乎是一个VIM插件做你正在寻找什么:

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

我还没有尝试过自己。

+0

为什么-4票呢? –

+5

因为最初我发布了一个assinine评论和人们得罪了... –

+0

+1体育道德和纪律。另外,该课程的脚本需要提及。 – sehe

2

下面是一个替代解决方案,以使设置virtualedit=all选择20行与|在塔10:

  1. 开始在Normal模式,使一个例子线,例如10i<space><esc>r|
    • 10i空间将插入空间十次,然后按ESC随后r|Y
    • 在正常使用|
  2. 复制整行替换的最后一个字符模式下,将复制的行粘贴20次20p
    • 这将粘贴复制的近期线以下20次,给你一共有21条相同的线

总之:

10i<space><esc>r|Y20p