问题标签 [autocmd]
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:结合 autocmd?
我需要在 vim 中执行两个 autocmd 事件的逻辑与。基本上,当 FileType 为 tex 时,该命令必须在 InsertLeave 上运行。看起来这应该有效(在.vimrc中):
但事实并非如此。嵌套选项似乎也没有帮助,即使手册表明它应该这样做。
很容易做一个逻辑或:
做一个逻辑与一定不会太难。
vim - 在 Vim 的 `autocmd` 命令中调用函数
我想expand
在autocmd
. 特别是,我正在改编 Paul Biggar 的提示,并且我想在我的 中使用以下自动命令.gvimrc
:
– 这当然行不通。所以我真正想要的意思是,在打开tex
文件时,makeprg
变量被设置为其中的值rubber-info filename.log
wherefilename
是没有文件扩展名的 TeX 文件的名称。
我怎样才能做到这一点?
latex - 基于文件内容的 Vim autocmd
我正在尝试设置 Vim 以检测 .tex 文件何时包含命令 '\usepackage{sagemath}',并相应地运行命令。我已经到了
但这将对所有 .tex 文件触发,这不是我想要的。
c++ - vim + c++:在保护子句中插入 uuid
我正在尝试自动化文件注释标题。我一直在试图弄清楚如何uuidgen
使用 vim 的 autocmd 将命令的结果插入到我的标题中。
在标题内,存在占位符文本,如下所示:
_UUID_
在 .vimrc 中填充的 autocmd 行是:
问题出现在 r!uuidgen 下。 如何将 shell 命令执行的结果作为文本插入 autocmd 行?或者在 vi 替换命令中?
function - 写入新文件时运行 CommandTflush 命令
每当写入新文件时,我都试图让 Vim 运行命令“CommandTflush”。对于那些不使用 Command-T 插件的人,“CommandTflush”命令用于重建当前目录中的文件索引。
我想要做的是在文件写入磁盘后运行命令,以便 CommandTFlush 找到该文件并将其添加到它的索引中。
我自己尝试过编写一个函数,但是它要么不触发,要么触发得太快(在写入文件之前,重点是将文件添加到索引中):
我怀疑它可以通过在 BufWritePre 中设置一些布尔变量 (isTheFileNew) 来解决,然后如果文件刚刚创建,则在 BufWritePost 中执行 CommandTflush 命令,但我无法弄清楚语法。如果可能的话,另一个解决方案可能是从 BufWritePre 回调中设置/取消设置 BufWritePost 回调......
有人可以帮我吗?;)
vim - 将 vim 变量插入文本以获取注释快捷方式
我有一个简单的目标:映射 Ctrl-C,一个我认为我从来没有用来杀死 vim 的命令,自动在行首插入正确的字符以根据文件的文件类型。
我想我可以使用自动命令来识别文件类型,并在文件打开时将 vim 变量设置为正确的注释字符。所以我尝试了类似的东西:
该地图标记了我当前的位置,以插入模式进入行首,在该点回显注释字符,进入命令模式,返回设置标记,然后向右移动两个字符以弥补插入注释字符(假设 C 样式注释)。
斜体部分是我遇到问题的部分;它只是作为一个占位符来代表我想做的事情。你能帮我弄清楚如何实现这一目标吗?如果您使用 strlen(CommentChar) 向右步进正确数量的空格,则可获得奖励积分!vim-master 的额外奖励积分,包括如果您处于可视模式,如何进行块式注释!
我对 vim 脚本还是很陌生;我的 .vimrc 仅有 98 行长,所以如果你能帮助我解释你提供的任何答案!谢谢。
python - 在注释和文档字符串中使用较短的文本宽度
来自强大的PEP 8:
[P]lease 将所有行限制为最多 79 个字符。对于流动的长文本块(文档字符串或注释),建议将长度限制为 72 个字符。
在 Vim 中编辑 Python 代码时,我将 my 设置textwidth
为 79,当我达到字符限制时,Vim 会自动为我包装长行 Python 代码。但在注释和文档字符串中,我需要将文本换成 72 个字符。
当我在评论或文档字符串中时,有什么方法可以让 Vim 自动设置textwidth
为 72,并在我完成后将其设置回来?
vim - 在 Vim 中保存文件后如何自动执行 shell 命令?
这是因为我想在每个文件保存后自动运行测试。
我看过autocmd
但BufWritePost
不能让它工作。
vim - Vim 缓冲区已修改
我正在尝试AutoCmd
在 Vim 中实现一个需要在当前缓冲区被修改时执行的。
我已经阅读AutoCmd
了文档中所有可用的事件,但找不到有助于确定缓冲区何时被修改的内容。
这并不一定意味着“写入缓冲区时”,因为当缓冲区已被修改(包括被写入)时,需要调用我需要触发的操作。
关于如何实施BufIsModified
可以实现这一目标的任何想法?
注意:不是重复什么是 vimrc 函数来确定缓冲区是否已被修改?,因为这个问题是关于一个autocmd
而不仅仅是缓冲区修改检查
vim - 如何使vim在insertleave上将光标向右移动一个字符?
由于 mac os xterminal.app
不支持 vim 的许多视觉方面,包括切换到插入模式时光标从块到行的变化,我使用osascript
accopmlisch 类似的东西。
在我的.vimrc
文件中,我写道:
其中settings set 11
是一组具有行光标并且settings set 12
具有块光标的终端设置。
这实际上工作得很好,但有一个小问题。在 InsertLeave 上,光标总是向左移动一个字符,这没什么大不了的,但它可能很烦人。
我试图通过放入 autocmd InsertLeave h
my来补偿.vimrc
,但无济于事(它给了我一个错误)。
我应该如何告诉 vim:
- 不向左移动?
- 如果以上不可行,则通过向右移动来补偿