Vim:在一个垂直对齐的引号的文本块周围创建一个C字符串文字?

Sta*_*ked 1 vim

我想在Vim中创建一个宏或脚本来执行以下操作:

  1. 用双引号括起一段文本
  2. 转义出现在文本中的任何引号
  3. 在垂直对齐的右侧有引号

例如:

<html>
<head></head>
<body>
<h1>High Score Server</h1>
<table>
ROWS
</table>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

会成为:

"<html>                    "
"<head></head>             "
"<body>                    "
"<h1>High Score Server</h1>"
"<table>                   "
"ROWS                      "
"</table>                  "
"</body>                   "
"</html>                   ";
Run Code Online (Sandbox Code Playgroud)

我能够通过宏实现这一点,但没有右侧引号的垂直对齐.任何人都可以帮我这个吗?

Dra*_*ill 5

我要做的是:

使用"环绕"和"对齐"插件:

1)将光标放在第一行(0,0),键入<C-V>)$s" 2)然后<S-V>):Align "<Enter>.

没有插件的另一个解决方案

1)设置虚拟模式

:set ve=all
Run Code Online (Sandbox Code Playgroud)

2)<C-V>进行逐块选择,光标位于0,0位置

3)下到文本的底部,然后Shift-I键入"Esc.这应该在引号前面.

4)现在进入左端(因为ve = all,你可以去没有文字的地方)5)<C-V>,下到底,输入r"

这很难解释,但很容易做和重现.在很多情况下也很有用.