在Vim中有没有一种方法可以将下面的行复制到多行,并在@之后增加数字
即XMMN26@1 MMN26:D MMN26:G MMN26:S VSS nch_12od15_mac
成为
XMMN26@1 MMN26:D MMN26:G MMN26:S VSS nch_12od15_mac
XMMN26@2 MMN26:D MMN26:G MMN26:S VSS nch_12od15_mac
XMMN26@3 MMN26:D MMN26:G MMN26:S VSS nch_12od15_mac
XMMN26@4 MMN26:D MMN26:G MMN26:S VSS nch_12od15_mac
字符串
有办法吗?
谢谢,
凯文
5条答案
按热度按时间l7wslrjt1#
有办法吗?
是的,您需要
:h v_g_ctrl-a
。即:1)复制源代码行;
2)使用视觉块模式选择那些“数字”(除了第一个);
3)做
g^A
。瞧。完整的序列是
yy3pE^V2jg^A
cygmwpex2#
您可以使用以下命令复制行任意次数
字符串
并使用查找/替换来获得递增的数字
型
请注意,
\=line('.')
使用当前的linerber。编辑
最后,这一切都取决于确保搜索命令找到了要替换的正确位置
型
ha5z0ras3#
使用宏
字符串
在第一行中,我们清除宏'a'
在第二行中,我们定义宏'a'
型
OBS:为了使用像control或shift这样的双引号,你的宏需要在双引号之间,而不是单引号之间。
在第三行我们调用宏'a' 10次
dgtucam14#
我的UnconditionalPaste plugin有一个
gpp
Map,它粘贴了当前光标列上或之后的第一个十进制数。因此,在您的示例中,它将是
^eyy3gpp
(* 转到第一列的末尾,yank line,special-paste with increment 3 times*)。nhjlsmyf5#
你可以使用
for
循环和put
:字符串
测试结果:
型
修改示例:https://vim.fandom.com/wiki/Making_a_list_of_numbers