问题标签 [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 动态生成代码模板
我必须编写包含重复代码的测试用例。
- 方法的名称应该是用_分隔的ClassName 例如:class_name_test
- 对象名称应为 classNameObj,模拟方法应采用 ClassName.class
- genericObj.call 语句对所有方法都是通用的 sayHello 应该绑定到 classNameObj 剩下的结果是通用的
- commonMethods 对所有对象都是通用的
而不是复制粘贴和更改 ClassName 和 classNameObj,我有兴趣使用 Vim 自动执行此操作。是否可以这样做,如果我传递类名,其余的应该生成?
方法模板如下所述。
vim - vim:在所有选定行中播放宏失败
我有一个这样的文本块:
我想在列表的所有对象成员中添加一个“lastName”项,它们应该变成这样:
我的宏是这个
并且可以在一行中正常工作,或者如果我j
在末尾附加 a 以向下移动并像14@l
.
我不能做的是用 视觉选择所有行V
,然后输入:normal @l
,因为它只适用于选择的第一行(无论j
最后是否附加了 a )。如何使它在所有选定的行中工作?
vim - 将关键字参数映射到谷歌文档字符串的宏
我正在尝试编写我的第一个 vim 宏。目标是将包含关键字的行映射到谷歌文档字符串格式。
所以输入是:
期望的输出是:
所以我认为最简单的方法是定义一个宏。在控制台模式下,我wdwwD
从行首成功删除了关键字周围的所有内容。但是将其绑定到宏(另外添加j0
以获取新行)会产生以下输出:keyword' : value
我也尝试过f'r f'Dj0
,但结果相同。所以看起来我做错了什么,但重复序列会产生我想要的输出,但即使那是它应该做的,也没有将它绑定到宏,对吧?
我的例子是
vim - 如何创建一个重新排序行的 vim 宏?
让我们从文字开始
然后假设您想使用宏重复将第一行作为最后一行。也就是说,这是 1 次运行后的目标状态
用例:我想第一次应用更长的宏,第二次快速等。
天真的方法只工作一次:q11Gdd8Gpq
@1 <- 这行得通
@1 <- 这打破了
重复时会中断。我尝试了其他避免 dd 的方法(例如,在第一行 d1j 上方创建一个新行,返回到第 8 行,粘贴,J 加入行)。我尝试的一切都在运行一次时起作用,但是在此运行期间有些东西正在改变宏缓冲区。
你如何制作一个可以多次运行的宏?
macos - 如何在 vim 中存储 golang 模板宏
我想将以下代码永久存储在 .vimrc 文件中。谁能提供我这样做的代码?
vim - 如何在不支持剪贴板的情况下将 Vim 宏复制到另一个 Vim 实例(即,没有 `+` 寄存器)?
有一个宏,其中视觉选择的文本将成为降价链接,一旦宏执行,它就会使 Vim 处于 INSERT 模式:
寄存器l
包含以下内容:
通过以下方式创建它:
- 直观地选择一些文本
q
然后l
S
然后]
(S
是一个视觉选择命令vim-surround
)%
(跳转到右括号)a
然后输入()
- CTRL-O
h
- CTRL-O然后
q
(完成宏但保持在 INSERT 模式)
所以我用鼠标选择了这个定义(即*
注册),并let @l = "S]%a()^Ohq<80>kb"
在另一个 Vim 实例中做了,导致
如果 Vim 是用剪贴板支持构建的(:let @+ = @l
在一个 Vim 实例中,:let @l = @+
在另一个实例中),它就可以工作,但我想学习破译这些表示的基础知识。
更新:录制和剪贴板复制的宏的 Vim 表示与手动粘贴的宏之间存在细微差别:序列^O
和<80>
在前一种情况下突出显示为特殊,但字符串在后一种情况下以统一颜色显示.
l
是原始录制的宏,由+
创建:let @+ = @l
,c
内容已逐字输入:
找到了其他几个具有类似前提的 Stackoverflow 线程,但它们没有帮助:
VIM 宏编辑
试图将其转换为^O
,<C-O>
但它没有用,并且不知道是什么<80>kb
。
根据上面的创建步骤,我本来希望得到类似的东西,S]%a()^Oh^Oq
而不是S]%a()^Ohq<80>kb
无论如何。
复制/粘贴 Vim 宏的可靠解决方案
没有回复,根据我的理解,它不适用于我的情况。
保存 vim 宏
仔细阅读答案和评论,但没有快乐。
vim - @a=" 之间的区别0" 和@a=@0
我已将以下文本复制到"0
寄存器中
如果我想将寄存器的内容复制
"0
到"a
我做的寄存器然后,如果我粘贴
"a
我获得的寄存器内容"0
现在,将寄存器的内容粘贴到"a
我做的寄存器中然后
<C-r>0
,结果是这样的然后我粘贴
"a
寄存器("ap
)的内容,我得到
为什么结果不相等?
具体来说,为什么换行符是按字面写的,而不是在第二种情况下解释?
vim - 如何将点运算符的内容复制到寄存器中?
我有一个 vim 中的最后一个命令,它可以被“点”操作符复制。但是,我现在希望执行另一个操作,然后返回并执行上一个命令。当我执行我的新命令时,“点”运算符将被新命令覆盖。如何将“点”运算符的内容复制到寄存器中以便稍后执行?
或者,是否有另一个 vim 操作可以更自然地实现这一点?
vim - vim,将整行复制到每行的末尾?
如何将当前行内容复制到整个文件的每行末尾?例如:
从
到