让我们从文字开始
1 The
2 Quick
3 Brown
4 Fox
5 Jumps
6 Over
7 The
8 Lazy
9 Dog
然后让我们说,您想使用宏重复使第一行成为最后一行。也就是说,这是1次跑步后的目标状态
1 Quick
2 Brown
3 Fox
4 Jumps
5 Over
6 The
7 Lazy
8 Dog
9 The
用例:我想在单词“第一次”中应用一个更长的宏,第二次使用“ Quick”,等等。
幼稚的方法只工作一次: q11Gdd8Gpq
@ 1 <-这有效
@ 1 <-此中断
重复时此中断。我尝试了避免dd的其他方法(例如,在第一行d1j上方新建一行,返回到第八行,粘贴J以加入行)。我尝试运行的所有内容一次运行都可以,但是在此运行期间某些更改宏缓冲区。
您如何制作一个可以多次运行的宏?
答案 0 :(得分:1)
此页面的答案为https://vim.fandom.com/wiki/Moving_lines_up_or_down
在我的特定应用程序之外(感谢评论中的@Amadan)
q1:1m$<cr>q
对我来说,我在列表中旋转项目时,其内容在列表之后,整个解决方案最终得以实现
q1:1m8<cr>q
但是对于上述问题,用$而不是行号是正确的。
答案 1 :(得分:1)
这种情况不需要宏:常见的习惯用法是
:global/^/move $