【发布时间】:2017-05-03 18:46:07
【问题描述】:
我使用这个键映射来复制一行,然后转到这个新创建的行上的相同光标位置:
nnoremap , mqYp`qj
这是做什么的:
- 创建标记“q”
- 拉线
- 粘贴/放置行(当前行下方,光标现在位于新行的开头)
- 回到上一行标记
- 向下移动一行。 (光标现在位于上一行开头的同一位置的新行上)
这工作得很好,但是在命令前面放一个数字时我发现了一个缺陷。想象一下,我想将这条线复制 10 次。它基本上会尝试创建10个标记。我可以为此做Y10p,我明白这一点。我对这种方法的问题是,我的光标位置与我在第一行的光标位置不同,即我正在复制的那个位置。
所以我正在寻找一种方法来基本上完成10,,使用我之前制作的映射,并在最后一行结束,与我在第一行的光标位置相同。请注意,我只使用 IdeaVIM 来编写代码,这意味着我无法为此创建任何函数。
是否有可能让这个10, 在这种情况下工作?
编辑#1:
示例文本
# Start
# Initialize new variables
new_invoice_name_one = 'New Name One'
new_invoice_name_two = 'New Name Two'
new_invoice_address_one = 'New Address One'
执行的命令:3,,光标位于第 2 行的第一个 I
期望的输出
# Start
# Initialize new variables
# Initialize new variables
# Initialize new variables
# Initialize new variables
new_invoice_name_one = 'New Name One'
new_invoice_name_two = 'New Name Two'
new_invoice_address_one = 'New Address One'
光标位于第 5 行的第一个 I `
编辑#2:
我在LetHandler.javahere 看到了一些潜力,但是我似乎无法弄清楚如何使用它来匹配用例。另一方面,here 表示根本不支持。
【问题讨论】:
标签: ideavim