Questions tagged «macro»

宏是键入的命令的记录,以后可以执行。宏存储在寄存器中;录制宏可以使用q完成,您可以使用@运行它们。

1
如何在宏中使用插入模式完成?
我正在尝试定义一个宏,该宏可以快速生成随机单词列表。 我希望宏将其转换为类似的列表 a b c d e 进入这个 arezzo bywords czars détente eyrie 到目前为止,我有: 将光标放在字母上 a 开始录制宏 qq a 进入插入模式 <C-x><C-k> - perform dictionary completion on the character before cursor - in this case the letter一个 <C-p>选择出现的完成列表中的最后一项,在我的系统上,其单词为arezzo。(请注意,我已将其longest包括在我的'completeopt'设置中,<C-p>在完成过程中以这种方式工作是必需的:)'set completeopt=longest,menuone,preview'。 <C-y> 接受完成 ^[^[ 退出插入模式 j 下移到下一行,准备在下一行进行相同的操作 q 停止录音 当我创建宏并手动执行步骤时,一切正常,但是当我执行宏时,我看到一条消息在命令行中闪烁,例如: 扫描字典文件 并且没有任何反应,仅j运行了宏中的命令,即光标向下移动了一行,但没有任何完成命令运行。 是否可以在宏中使用插入模式补全,如果可以,该怎么办?

3
在选择或匹配项的每行中插入一个递增数字
我有一个问题,我可以想到两种通用的解决方法,但是我不知道这两种方法的具体细节。 ... Level 1: cũng also Level 1: và and Level 1: như like; such as Level 2: các plural marker Level 2: của belonging to ... 对于以“ Level n”开头的每一行,我想插入一个以“ 01”开头的数字。为了简单起见,让我们在数字前加上数字。 方法1:手动选择同一级别的所有行。调用魔术,我很快就会学习。 方法2:编写搜索并替换,以给定级别匹配所有行,在每个匹配项中,替换文本中均包含一个数字,该数字在每个匹配项中增加1。 我在StackOverflow或其他Vim站点上发现了类似的问题,但每个问题似乎都具有以下一个或多个问题: 关于插入当前行号,而不是插入任意但递增的号码。 不要将数字零填充。 在Windows 7上运行的Vim 7.4上的选择实际上不起作用(这些都会导致错误E481: No range allowed。) 我在Windows中使用mswin.vim运行gVim,但是最好在所有自定义Vim安装中使用的解决方案是最佳的。
10 macro  replace 

2
将最后一个动作(。)保存在宏中
用例 我处于正常模式。我没有明确考虑录制宏,但是我只做了一个命令更改。现在,我可以使用点重复此操作。 我现在意识到,将其保存在宏中以便以后使用,而不是每次都键入整个命令是一个有用的动作。我现在可以通过使用点来进行所有需要此命令的更改,或者可以继续编辑并稍后通过将其保存在宏中来使用此命令。 后者是我要执行的操作,但是想到的最简单的方法并不容易-撤消更改,开始记录宏并重新键入命令以进行所需的更改,然后停止记录宏。 到目前为止,我尝试过的是: 在宏中记录点不起作用,因为它记录点而不是点执行的更改。(例如,假设存储在dot中的命令是:d5w如果您开始记录宏并通过进行操作,希望每次运行该宏都会删除5个字,那么这种情况就不会发生。下次运行宏将执行点运算而不是命令执行d5w,这意味着,如果您在录制宏后进行了其他更改-说使用3个字进行删除d3w,这是您执行的最后一次更改,那么当您运行宏时,它将删除3个字单词而不是5,因为它只是在运行.)

5
Vim可以写增量行吗?即在每行A变成B,而1变成2
我想这样写: A = mapping[0] B = mapping[1] C = mapping[2] D = mapping[3] E = mapping[4] F = mapping[5] G = mapping[6] H = mapping[7] I = mapping[8] J = mapping[9] K = mapping[10] L = mapping[11] M = mapping[12] N = mapping[13] O = mapping[14] P = mapping[15] Q …
8 macro 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.