问题标签 [vim-macros]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
vim - 宏中的条件操作
在 VIM 宏中,条件操作是如何处理的?
基本示例
文件内容:
宏将执行以下操作:
重复 7 次缓冲区将是:
那么,如何验证条件是否为真然后运行操作?
regex - 将寄存器递增 n 次会跳过值
我一直在使用 VIM 处理 500 个单独的文件,以使其中一个值独一无二。我不会粘贴它,因为它是一个完整的kludge :)
使一个元素唯一后,我有一个文件,其中包含 500 条记录,由空行分隔。
记录一个宏来标记第 1 行,然后找到空白并标记前一行,然后将该块写入文件,@b 递增 1。
因为在写入文件期间我无法弄清楚如何增加 @a ,所以我粘贴它增加它然后将它拉回 @a 。
这一切都很好,除了每 7 个数字增量命令跳过三个,所以不是 XML0001.xml 到 XML0500.XML 我得到 XML001.xml 到 XML0763.xml 左右。
为什么每 8 次调用跳过 3 个数字?
我只是好奇,因为只要文件名是唯一的,它们的编号无关紧要,但我最终需要使输出名称与 @b 的值相匹配。
编辑 疯狂的猜测它与 0 到 9 寄存器丢失有关?
有没有办法在插入模式下增加 @a 之类的
vi - VI(M),在两个文件中搜索并自动滚动到两个文件
我一直在做这些操作,需要经常做。
step 1. 搜索字符串 (SHFT + *)
step 2. 切换到上一个视口 (CTRL + w + h)
step 3. 找到字符串 (n)
step 4. 返回到另一个视口 (CTRL + w + l)
使用 Vi(m),是否可以一次性自动化以上 4 个步骤?
我搜索了网络和stackoverflow,我不是在谈论:set scrollbind。
debugging - 如何逐步执行vim宏(如调试)?
有时当我的 vim 宏变得太长时,会出现一些小错误。但是不能一步步执行宏,真的很难找到问题所在。
是否有可能单步执行 vim 宏或以任何方式调试它们?
regex - Vim:时间表中的时间增量
我是 Vim 的新手,我想看看我能/不能用它做什么。我想增加这样的时间列表:
假设我醒来太晚了,我想在 Vim 中快速将所有内容增加 45 分钟
我尝试了一个宏:
- 时间(分钟):
09:00 -> 09 * 60 + 00
+ 45
- 与Ctrl+相加R =
- 试图重新格式化
(int)SUM/60 : SUM - ((int)SUM/60)*60
但我无法让它工作(它是一个很长的宏),而且我手动完成它的速度更快。
最重要的是,即使我成功了,我也无法弄清楚如何保留"0"
of"09"
以将我的数字保留在列中。
在 Vim 中可以吗?也许是一个正则表达式?
[编辑]出于练习的目的,我宁愿使用宏、正则表达式,甚至是 VimScript 中的函数,而不是插件
vim - 您如何在每行应用宏 x 次数,其中 x 取决于该行
说我有类似的东西
有没有办法使用 vim 宏,这样我可以每行运行宏/命令 x 次,其中 x 取决于行?在这种情况下,我2wx^
在每行运行 x 次,其中 x 是行号,因此结果变为
提前致谢
vim - 使用引用标签的范围操作编辑 Vim 宏
我创建了一个具有范围(http://vim.wikia.com/wiki/Ranges)操作的宏,例如:
然后我想编辑它,我通常会使用 let ( http://vim.wikia.com/wiki/Macros#Editing_a_macro ):
但是对于这些示例,宏定义中的 ' 会导致编辑失败。如何解决这个问题?定义时可以使用替代范围语法或转义引号的方法。
我知道我可以重新录制宏,但实际版本比这长得多!
vim - 如何在vim上取消映射插入键?
在 上vim
,命令模式键可以通过ex
命令映射:map <key> <macro>
,插入模式键可以通过 映射:map! <key> <macro>
。映射后,从命令模式键和插入模式键中删除映射的命令分别是unmap <key>
和unmap! <key>
。
这适用于命令模式键,但对于插入模式键,键扩展也适用于ex
命令行提示符:尝试在宏扩展中键入键最终导致unmap!
命令参数错误 ( E474: Invalid Argument
) 或者可能该命令可能会尝试取消映射某些与预期 ( E31: No such mapping
)不同的键。
有人如何正确删除插入模式映射键vim
?
vim - Vim 方法跳转到光标下的数字
在vim中,有没有比跳到光标下的行号更优雅的方法
“gn”或其他一些组合键?这需要确保光标位于数字字符串的开头。此外,根据寄存器“n”中的内容,这个宏可能有点危险。
甚至不完全确定为什么会这样:@n
意味着执行寄存器 n(一个数字)中的内容,而不是将其与“G”连接。
具有类似功能的功能
似乎也不起作用。
想法?
vim - 一键 vim 宏 / 交互式搜索并运行宏
我知道我可以使用录制宏q<char>
并使用@<char>
. 我也知道我可以使用@@
.
而是@@
两个完整的击键!这太多了!特别是如果我多次运行该宏。我知道,但如果我事先<num>@<char>
不知道怎么办?<num>
实际上,我正在寻找的是类似于运行宏的交互式搜索和替换(请参阅Vim 中的交互式搜索/替换正则表达式? )。这可以做到吗?