我该如何在Vim中在每行的特定列末添加一个字符?

4

我如何在Vim中在每一行结尾的特定列添加反斜杠标记?

例如,我想要以下格式:

Lorem ipsum dolor sit amet, 
consectetur adipiscing elit. 
Ut nec orci sagittis, pharetra ex ut, 
aliquet nisi. 

成为

Lorem ipsum dolor sit amet,            \
consectetur adipiscing elit.           \
Ut nec orci sagittis, pharetra ex ut,  \
aliquet nisi.                          \

在这个例子中,反斜杠被插入到第40列。 我知道如何在每一行的末尾插入它们 (%s/$/\\/g),但是不知道如何插入必要的空格以使标记对齐。 感谢任何帮助。
1个回答

3

一个简单的方法是启用'virtualedit',至少暂时这样做,这样您就可以导航到超出行末的列。

:set virtualedit=all

一旦你进入正确的列,你可以使用 Ctrl+V 进入 blockwise visual mode 并在每行选择此列。
对于这个特定的例子,有 4 行文本,在第 40 列添加反斜杠,你可以使用以下序列:40|(跳转到第 40 列,仍在第一行),<C-V>(进入可视块模式),3j(向下移动 3 行)。
此时,您可以使用 r\ 将光标下的字符替换为反斜杠。(实际上不存在光标下的字符,但是 'virtualedit' 将执行正确的魔法以添加足够的空格来到达此列并放置反斜杠。)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接