如何在不同列上插入可视块
How to insert in visual block on different columns
假设我有这样几行:
one_view = Column(String(5))
two_view = Column(String(5))
three_view = Column(String(5))
four_view = Column(String(5))
five_view = Column(String(5))
six_view = Column(String(5))
seven_view = Column(String(5))
eight_view = Column(String(5))
nine_view = Column(String(5))
我需要在每个 view
之后附加 _f
。
我正在进入可视块并执行 8j
,在此之后我想在每一行中找到第一次出现的 =
并将光标放在此处,在此之后我想输入插入模式。
香草 vim 可以吗?
编辑:我知道我可以用宏或 :s/view/view_f/g
来完成,但我只是想知道这种方式是否可行
那是不可能的。不回答实际问题,但对于这类问题,我会使用其中一种策略:
- 在正确的范围内使用替换,例如
s/_view/_view_f/
- 对齐所有空格(例如easyalign),然后使用可视模式和
I
在矩形上插入_f
。
不,视觉块模式不能那样使用。
通常,视觉块模式会创建一个 矩形 ,这意味着列和垂直对齐。视觉块模式不限于垂直对齐文本的唯一情况是使用 $
将块扩展到行尾时,即使这样,它也只是相关行的末尾。
:[range]s/view/&_f
确实 最好的方法,在这里。
正如其他人所说,它不会像您用 vanilla vim 描述的那样工作(有一些对齐插件实际上可能使它成为可能,但我真的不建议很多原因)我建议使用 macros
而不是正则表达式。正则表达式仅适用于这种特定情况。如果 'view' 不存在,它就不会工作(也许你可以使用 =
的正则表达式,但从长远来看,你并没有真正为自己做好准备。这种事情总是会出现时间,我更喜欢 macros
。这些可以让你复制一些命令并重播它们。所以你将创建一个执行第一个命令的宏,然后你将重播该宏 8 次以执行其他 9 次. 所以我会:
gg
到达这个九行文件的顶部
qq
启动绑定到 q
的宏
e
到第一个单词的结尾
a_f
将 _f
附加到第一个单词
Esc
退出插入模式
j
转到下一行
0
转到行首
q
结束你的宏
8@q
播放 q
宏 8 次。
现在您的文件应该是您想要的样子了。
假设我有这样几行:
one_view = Column(String(5))
two_view = Column(String(5))
three_view = Column(String(5))
four_view = Column(String(5))
five_view = Column(String(5))
six_view = Column(String(5))
seven_view = Column(String(5))
eight_view = Column(String(5))
nine_view = Column(String(5))
我需要在每个 view
之后附加 _f
。
我正在进入可视块并执行 8j
,在此之后我想在每一行中找到第一次出现的 =
并将光标放在此处,在此之后我想输入插入模式。
香草 vim 可以吗?
编辑:我知道我可以用宏或 :s/view/view_f/g
来完成,但我只是想知道这种方式是否可行
那是不可能的。不回答实际问题,但对于这类问题,我会使用其中一种策略:
- 在正确的范围内使用替换,例如
s/_view/_view_f/
- 对齐所有空格(例如easyalign),然后使用可视模式和
I
在矩形上插入_f
。
不,视觉块模式不能那样使用。
通常,视觉块模式会创建一个 矩形 ,这意味着列和垂直对齐。视觉块模式不限于垂直对齐文本的唯一情况是使用 $
将块扩展到行尾时,即使这样,它也只是相关行的末尾。
:[range]s/view/&_f
确实 最好的方法,在这里。
正如其他人所说,它不会像您用 vanilla vim 描述的那样工作(有一些对齐插件实际上可能使它成为可能,但我真的不建议很多原因)我建议使用 macros
而不是正则表达式。正则表达式仅适用于这种特定情况。如果 'view' 不存在,它就不会工作(也许你可以使用 =
的正则表达式,但从长远来看,你并没有真正为自己做好准备。这种事情总是会出现时间,我更喜欢 macros
。这些可以让你复制一些命令并重播它们。所以你将创建一个执行第一个命令的宏,然后你将重播该宏 8 次以执行其他 9 次. 所以我会:
gg
到达这个九行文件的顶部qq
启动绑定到q
的宏
e
到第一个单词的结尾a_f
将_f
附加到第一个单词Esc
退出插入模式j
转到下一行0
转到行首q
结束你的宏8@q
播放q
宏 8 次。
现在您的文件应该是您想要的样子了。