众所周知, q用于开始记录并且还用于终止记录宏。

不幸的是,我试图记录一系列包含命令q:的命令,并且宏(自然地)在q处停止记录。

有没有办法可以录制一系列命令,包括q在正常模式下输入?

更新:我已经尝试将q重新映射到其他东西并将另一个字母映射到q ,但这似乎打破了我试图记录的实际命令的q的功能。

===============>>#1 票数:4 已采纳

您可以这样做: Ctrl + f打开命令历史记录窗口而不停止录制。

===============>>#2 票数:3

好吧你已经得到了接受的答案,我只是提到另一个记录宏的技巧,这样你就可以拥有q: in macro:

你可以按:ctrl-f ,或者如果你真的喜欢q: ,你可以:

例如:

let @q='5j5kq:<c-v><up><c-v><enter>j'

例如, 5j5k什么都不做。

200@q将为下一个200@q行执行最后一个命令。 如果您的上一个命令将某些参数(如当前行号或当前行(文本))传递给函数。 它也会起作用。

如果要在宏中编辑命令行,则需要在<cv><enter>之前按键序列。

对于<cv><up><cv><enter> ,你需要真正的类型,而不是纯文本。

但从我的角度来看,这些技巧并不是常见任务所必需的。

  ask by merlin2011 translate from so

未解决问题?本站智能推荐:

1回复

在VIm / gvim的正常模式下使用宏内容时的操作差异(删除特定列)

定义了一个宏 let @a='$F|vF|<80>kr^V5jd' 样本输入文件 当我将其用作宏时,它正在执行1个任务 :%norm @a 结果1 当尝试通过执行相同的操作时 :%norm $F|vF|<80>kr^V5jd在
1回复

在VIM中录制宏时搜索字符串

我想使用vim向列表中的对象添加一个新字段。 每个对象的行数不同。 但是,每个对象的最后一个字段是相同的。 每个对象的新字段是相同的,所以我想我可以创建一个vim宏,它将在每个对象的末尾插入静态字段,以及在前一行插入逗号。 我的问题是我无法在宏录制器中执行字符串搜索。 这是我想
2回复

我可以从Vim脚本功能中检测Vim宏录制模式,并在Vim宏录制模式下调用此功能吗?

我想制作一个自定义的单键Vim映射,既可以用来开始将宏记录到未命名的寄存器( q" ),也可以用来停止记录宏( q )。 如果Vim处于录制模式,我可以从Vim脚本中检测到吗? 如果可以检测录制模式,如果在录制模式下唤醒我的功能(停止录制)会有问题吗? 我的意思是,是否可以将函数调
2回复

在vim插入模式下使用宏

我是vim的新用户,发现宏非常有用,但我想知道是否有一种方法可以在插入模式下使用它们而不是一直切换到常规模式。 这意味着我想在插入模式下开始和完成录制宏。
1回复

Vim - 仅在不录制时映射q?

不录制宏时,按q后跟寄存器开始在该寄存器中录制宏。 其他命令也可用,例如q: ,以打开命令窗口。 录制宏时,按q停止录制。 换句话说,无论宏是否正在记录, q映射的行为都不同。 您不能将一个录音嵌套在另一个录音中。 我想重新映射q:当没有录制宏时,但保留q的常规行为以在当前录制
3回复

如何在vim宏中包含光标移动

宏似乎没有考虑到击键。 在这种特殊情况下,我想编写一个注释掉一行的宏(在latex注释中以%开头)。 这是我正在使用的击键: q + a + 0 + w + i + % + j + j + j + q 其中a指定一个宏,进入行的开头,进入插入模式,放置百分号,退出插入模式,向下移
2回复

vim宏,直到匹配模式

我有一系列状态,没有人需要经常修改,因此我想删除空白。 我尝试了以下击键,因为数组和结尾行之间的逗号之间有一些空格字符: q a /, ENTER FORWARD v /\\n ENTER d 不幸的是,任何格式化此格式的人都忽略了将任何空格放在'Montana'之后,因此当我
1回复

vim宏录制播放时出错

我知道如何录制宏使用vim。 例如。 录制宏a:在正常模式下,qa开始录制,做一些动作,q停止录制。 如果我想玩它,我可以使用@a。 现在我要玩10次,10 @应该是工作,但对我来说,它不起作用,它只是在一行中播放。 为什么? 我该怎么办才能获得10个工作? 就像下
1回复

无法在Vim中调用录制的宏

我已经在正常模式下按q 1记录了vim中的一个宏,然后执行了一些移动命令,并使用a将文本写入了文档以进入插入模式。 然后按ESC返回正常模式,并用q完成宏录制。 现在,我想通过按ALT GR + q作为@符号(我使用的是德语键盘布局),然后按1来运行记录的宏,因为我将宏保存到了1寄存器中
2回复

如何在命令行中执行vim宏字符串?

Vim中的宏对于执行在普通命令行工具( sed , awk , perl等)中难以完成的任务非常有用,有没有办法在命令行中执行那种宏字符串? 类似于以下内容: