问题标签 [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.

0 投票
2 回答
744 浏览

vim - Vim - 如何使用 autocmd 和模板文件在新文件的行首插入反斜杠

我按照本指南根据文件扩展名自动将不同的标题模板插入到不同类型的新文件中:

http://www.thegeekstuff.com/2008/12/vi-and-vim-autocommand-3-steps-to-add-custom-header-to-your-file/

效果很好!我有一个 python 源文件的自定义标头,当我打开一个新的 .py 文件时,它会自动插入。

我想做类似的事情,以便在我打开一个新的 .tex 文件时插入一个基本的 LaTeX 模板......

除了我无法让它工作......

我的 ~/.vimrc 是这样说的:

我的 tex_template.txt 是这样说的:

但是当我像这样打开一个新文件时:

(其中 test.tex 尚不存在)

我明白了:

问题似乎出在行首的反斜杠上,因为如果我从 tex_template.txt 中删除反斜杠,新文件就会打开,其中包含 documentclass[a4paper,12pt]{article}。除了我需要反斜杠,否则它不是 tex 命令序列。

0 投票
1 回答
190 浏览

vim - Vim 中的挂钩命令(运行时、源代码、echo、echom、echoerr)

我正在开发一个 vim 'logging' 插件。我正在尝试将任何调用挂接到“source”、“echo”、“echo”、“echoerr”。AFAIK,您通常在“事件”上执行任意代码的方式是通过使用带有 autocmd-event 的 autocmd(grp) - 但是似乎无法通过这种方法挂钩任何这些命令。

有什么建议怎么可能?

编辑:

我目前正在玩这个,并将我正在做的事情推到这里的一个要点:

0 投票
1 回答
686 浏览

vim - vim autocmd BufNewfile 执行多次

我的 ~/.vimrc 只包含

~/config/vim/vimrc 包含常用选项、少量映射和不同文件类型的源文件,我有:

在该文件中,我定义了以下函数,每次打开新的 cpp 标头时我都想调用它以避免双重包含:

然后,如果我向我的外壳询问:

我有:

这不是我想要的……你看到我的错误了吗?谢谢。

0 投票
1 回答
513 浏览

csv - 在 Vim 中,是否可以根据正在打开的文件中的第一行设置变量?

我想从文件的开头vim检测并存储注释行的数量(以 为前缀#),然后使用具有存储值的变量以特定于文件的方式更改 vim 设置。

例子:

如果我打开这个文件:

我希望变量存储2,然后使用该值设置从哪一行开始突出显示(特别是csv_headerline=在 csv-vim 包中)。注释行的数量会因文件而异。

我认为可能有一种方法可以使用autocmd并设置我在打开文件.vimrc之前vim查看文件的前几行,但我不知道该怎么做。

0 投票
1 回答
232 浏览

vim - Vimrc autocmd 运行命令而不是映射

我想在我的 vim 中添加一个热键来运行我的 python 文件,所以我在我的 vimrc 中添加了以下行:

但是在打开文件而不是运行 autocmd 时,它会使用我的文件运行 python。

对我来说,这似乎与许多教程关于使用 autocmd 和 map 的建议没有什么不同,所以我想知道这里到底发生了什么,而不是我期望的行为。

0 投票
1 回答
486 浏览

vim - 用于收缩和增长的不同 VimResized 自动命令

autocmd VimResized * <foo><foo>每当调整 vim 应用程序的窗口大小时,都会运行该命令。有没有办法根据调整大小是缩小还是增长来运行不同的命令?如果是这样,控制台 vim 是否有任何警告?

0 投票
1 回答
223 浏览

vim - vim 功能仅在第一次正常工作

我在 vim 中编写了一个函数以“粘贴”模式插入文本。如果我离开插入模式,脚本也会离开粘贴模式(设置 nopaste)。因此我使用了自动命令 InsertLeave。
问题是,“set paste”命令仅在我第一次调用该函数时才有效。如果我想再次调用它,我必须重新启动 vim。

这是 vim 函数:

我做错了什么?

0 投票
0 回答
845 浏览

vim - BufWritePre 上的 Vim 多个 autocmd

我同时使用Chiel92/vim-autoformatntpeters/vim-better-whitespace。第一个用于自动格式化代码,第二个用于删除额外的空格。我希望他们两个都使用 autocmd 在保存文件时调用它们。看来我没有正确使用 autocmd。我希望有人可以帮助我,因为我对 vimL 知之甚少。

我曾经有以下在保存时启用自动格式化:

而且我还使用'ntpeters/vim-better-whitespace',它也会在保存时去除过多的空格。

问题在于他们每个人都可以完美地工作。但是当将它们放在 .vimrc 中时,它们中的至少一个将不起作用,这取决于脚本中第一个出现的人。

这是我在倾倒 :au BufWritePre 后所拥有的


更新 ...

玩了一段时间后,我发现通过更改保存时自动格式化的方式:

他们俩都可以互相合作。

有人可以帮我理解这里发生了什么吗?谢谢!

0 投票
1 回答
945 浏览

vim - Vim 仅在插入模式下禁用鼠标

当我插入模式时,有时我的光标会移动,因为我的手掌不小心放在触控板上。所以,我想让 autocmd 在插入模式下禁用鼠标并在正常模式下启用它。

我这样写:

它可以禁用鼠标。但是,当我离开插入模式时,鼠标没有被激活。

如何使这项工作?

编辑:我刚刚发现InsertLeave当我使用CTRL_C. 不幸的是,我总是使用CTRL_C退出插入模式。有什么解决方法吗?

编辑2:我也发现了UserGettingBored事件。但似乎这个事件只是一个玩笑。

0 投票
1 回答
708 浏览

vim - Autocmd bufnewfile 在相对路径上导致“尾随字符”错误

我的 .vimrc 文件有问题。我已经完成了所有 python 和 sh 文件的自动命令。我在下面都包括了。使用直接路径时,所有工作都按预期工作,即:

但是,如果我使用相对于 cwd 的路径,例如:

我收到以下错误:

处理“*.{py,sh}”的 BufNewFile 自动命令时检测到错误

E488:尾随字符

关于如何解决这个问题的任何想法?

python文件的模板如下: