问题标签 [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 中,如何将宏应用于一组行?
我有一个包含一堆行的文件。我记录了一个在单行上执行操作的宏。我想在文件中的所有剩余行上重复该宏。有没有快速的方法来做到这一点?
我尝试了 Ctrl+Q,突出显示了一组行,然后按了 @@,但这似乎没有奏效。
vim - Vim 和 Ctags 提示和技巧
我刚刚用我的 Vim(或者更确切地说是 gVim)安装了Ctags(以帮助 C++ 开发),并想找出你最喜欢的命令、宏、快捷方式、伴随它的提示......
分享你最好的武器库。对于 Vim 开发中的 C++,您会推荐哪些其他 Vim 附加组件?
编辑您将与 Ctags 一起使用哪些其他附加组件?
EDIT2你使用什么版本的 gVim 和标签?这有什么不同吗?
EDIT3您如何增强您对大型和小型项目的编程体验?
regex - 你如何把它变成一个 VIM 宏?
因此,我作为程序员的一项常见任务是调试实时系统。我调试实时系统的方法之一是从控制台捕获详细日志。
通常,对于我感兴趣的每一行,日志文件都有大约 20 行额外的行。
为了最小化我的宏脚本,我开始创建一个宏,它只会抓取 20 行中我感兴趣的一行!(而不是对我不想要的所有行进行 20 次替换......这会使宏比它需要的长 20 倍。)这个宏代码的其余部分会将这一行变成 *.csv文件,这样我就可以在我认为合适的时候使用 Matlab 或 Excel 中的数字。
这是宏的代码(这些命令是 Ultra Edit 特定的命令):
*仅供参考,我已经发布了每个命令在线执行的 API/描述。
让我用一个更易读的伪代码来分解这个宏在做什么:
我知道如何通过在我的 .vimrc 文件中添加映射来在 VIM 中创建简单的宏:
但我想知道是否有某种方法可以在宏中执行 while(1) 和 CopyAppend。就像在某种 .vimrc 定义的函数中一样:
那么如何将上面的 UltraEdit 宏改成 VIM 函数呢?
我真的需要能够在 VIM 中重新创建这种脚本,因为我目前被困在做 20 个替代品(有时更多)和替换......这让我发疯了,浪费我的时间做这种不雅的解决方案来解析日志文件!
vim - 如何在 vim 中插入类似的行时最小化击键?
有时我需要在文件中插入一些类似的行,这些行仅在序列号上有所不同。例如,
使用vim,我最终使用 [yypppp] 复制粘贴第一行,然后更改最后四行。如果要插入更多行,这真的很慢。
在vim中有没有更快的方法来做到这一点?
这方面的一个例子是:
初始状态
最终状态
vim - vim 宏映射
在 Vim 中,如何为 Ctrl+Shift+另一个键设置宏?我做了 noremap 并且映射实际上忽略了这种转变。我可以按下,宏就会通过。
vim - Vim 宏到 Camel_Case_With_Underscores
我想要一个快速宏来允许我将 qty_on_hand 之类的文本转换为 Qty_On_Hand。没有下划线的单词应该大写,这样描述就会变成描述。源文本中的大小写不一致,因此可能是 QTY_on_Hand -> Qty_On_Hand。
有任何想法吗?
vim - VIM 智能退出宏
从多年的“手指记忆”中,我的手知道 F2 是保存,而 F3 是退出(IBM 编辑多年的遗留物)。因此,我的第一个 vim 键映射是让 F2 和 F3 做他们应该做的事情。特别是对于 F3:
如果我退出一个有编辑的文件,我仍然会得到E37: No write since last change (add ! to override)
. 我更喜欢的是一个会发出的函数E37: No write since last change. Press F3 again to really quit.)
我将如何编码?
更新的解决方案建议
有人向我指出,我本来可以confirm
完成这项任务。我“知道”我以前看过一些内置的解决方案,但我不记得了。但是请注意,confirm
它的意义与宏的意义相反,即它提供“是,保留更改”,而宏提供“是,放弃更改”。如果之前有人建议过,我会接受确认。
我实际上做了什么
首先,感谢@Jamie Schembri 提供的起始示例。在学习新的脚本语言时有一个例子总是好的。
这是我最终使用的宏。是的,它并不完全符合要求。我用 Yes|No|Write 选项替换了第二个 F3,感觉更好。我还必须添加一个 nr2char() 以便对字母进行测试。我还不得不从:map
.
更新请参阅此问题以获取使用此宏以及处理tagstack
文件的附加功能的解决方案。如果你quit
从 .vim 中的一个文件tagstack
,vim 会关闭你所有的文件。
vim - 如何重复最后一个 VIM 宏?
我知道如何在 Vim 中重复最后一个命令。我用..
但是我怎样才能重复最后一个宏呢?@q每次我想重复它时按起来有点不舒服。
我试过了,.但它只是重复宏中的最后一个命令。
有没有更短的方法呢?
vim - ccw 在 Vim 宏中做了什么
在本文下面的vim宏中,作者给出了解释。我了解一些但不是全部。
这个宏(包括记录开始/停止,如果你想知道的话)会将当前的 'path_to_command' 单词更改为 'command',将文件写入磁盘,将窗口拆分更改为 grep 搜索结果,下移一行在结果中并导航到该结果的位置。
Q1。在这里做什么ccw
?是否与cw
(更改单词)有关,但我不确定。
Q2。:w 一定要写,对吧?
Q3。在这里做什么<Ctrl-W>jj
?以下是:h CTRL-W_J
有关内容,但我不确定我是否正在研究正确的帮助,也不确定在这种情况下帮助的含义。
emacs - 如何将邪恶模式(vim 风格)宏保存到我的 init.el?
大约一年前从 Vim 搬过来后,我正在使用evil-mode 。我做了一些自定义,但还没有弄清楚如何保存 vim 风格的键盘宏。
我可以在邪恶模式下定义和运行它们,使用与 Vim 中完全相同的键。
- qa开始录制宏的字母。
- q停止录制。
- @a运行宏的字母。
我想将其中一些保存到我的init.el
文件中以在会话之间使用,但我无法在网上找到对此的任何参考,也没有找到正确的语法。
如何将这些邪恶模式的键盘宏保存到文件中?有什么原因我应该使用本机 Emacs 键盘宏,有没有办法可以通过@a键运行这些宏?