问题标签 [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 回答
2181 浏览

vim - 在 Vim 中保存时自动将当前日期附加到文件名

我在阅读学术文章时使用 vim 做笔记。我更喜欢为我记下的每条笔记创建一个新的文本文件,但是组织它们变得乏味。

我想做的是设置一个自动命令来检测我是否在某个目录中,写入一个新文件,然后将当前日期和时间附加到我写的任何文件名中。

所以如果我有:

当我输入

我希望 vim 将文件另存为“ Notes - <CURRENT DATE - TIME >.txt

我相信它涉及在我的 vimrc 中声明如下内容:

但我不知道是什么。有任何想法吗?我在 Debian Linux 上使用 Vim 7.3。

0 投票
1 回答
525 浏览

vim - 如何设置 autocmd 的文件模式与命令行缓冲区不匹配?

我有一个 au 命令来检查文件是否已更改:

但是,当我启动命令行窗口时,q:q/出现以下错误:

我的问题是,是否可以设置 autocmd 的模式以排除命令行缓冲区和其他只读缓冲区?

0 投票
3 回答
1111 浏览

vim - 自动获取 .vimrc 时,如何防止全局默认值覆盖 .vimrc 中的“filetype=vim”特定设置?

语境

我有我的.vimrc自动来源:

我还为间距设置了默认值:

稍后,我使用该FileType事件用特定于文件类型的间距覆盖上面的默认间距:

问题

我遇到的问题是采购我.vimrc将设置默认值,但不会触发FileType事件。这意味着当我:write.vimrc 编辑具有文件类型特定间距的文件时对文件执行操作时,文件类型特定间距会被默认值覆盖!

更新:正如 Ingo 所指出的,该问题仅出现在任何其他文件中.vimrc,并且不会出现在任何其他文件中。

例子

例如,当我在我的 . 上工作时.vimrc,最初ts=4 sts=4 sw=4 expandtab启用了特定于文件的.vimrc间距tabstop=2 softtabstop=2 shiftwidth=2 expandtab(该FileType事件不是由对 my 的写入触发的.vimrc)给我留下了默认间距!

我的问题

如何使用特定于文件类型的间距覆盖默认间距并在自动采购时保留这些间距.vimrc

如果可能的话,我想在不摆脱 autocmd 的情况下完成这项工作。那可能吗?

我的直觉是我应该在采购时以某种方式手动触发 FileType 事件.vimrc可以这样做吗?这是推荐的方法吗?

0 投票
1 回答
57 浏览

vim - VIM autocmd corrupts default register

I'm trying to update some text lines containing filenames in specific file in Vim. To do that I've added this in my .vimrc:

It works fine except some artifacts. And question is about how to eliminate those artifacts.

Every time when I get into a buffer with file *_search.txt, 1) the contents of the register "" is replaced by the text been added by autocmd to file *_search.txt 2) a message appears on the vim status line: "10 more lines" or "search hit BOTTOM, continuing at TOP"

Thanks

0 投票
6 回答
4510 浏览

vim - "set iskeyword-=_" 不是从 vimrc 设置的

基本上是标题。当我包含在我的 vimrc 中时

并保存它,当我重新加载 gvim 并输入

我仍然看到

如您所见,“_”仍然存在。如果我只是:set iskeyword-=_按预期工作。为什么这在我的 vimrc 中不起作用?有没有另一种方法可以解决这个问题,如果可以的话怎么办?

0 投票
1 回答
72 浏览

vim - vim:应用 autocmd 时新文件的目录与当前工作目录不匹配

我开始使用vim来编辑我的python代码,我希望vim根据不同的后缀(如'.py')将代码保存在不同的文件夹下。

所以,我将它添加到我的 gvimrc 文件中(我确实在使用 MacVim,但同样的问题出现在 vim 上)

我认为每次保存以“.py”结尾的代码之前,都会将工作目录更改为/Users/username/Documents/folder 。

当我进入 MacVim 时,打开一个新文件,输入类似

并将其保存为

如我所愿,一个名为hello_world.py的文件出现在/Users/username/Documents/folder中。vim 中的 ":pwd" 命令也返回 " /Users/username/Documents/folder "。但是当我在 vim 中检查hello_world.py的文件名时

它返回

而不是预期的文件名

此外,当我尝试升级代码时

并将其保存为

hello_world.py中的内容在/Users/username/Documents/folder下保持不变。但是/Users/username中出现了一个与hello_world.py名称相同的新文件,这与 vim 中的文件名一致。

我猜我在 gvimrc 中的 autocmd 脚本在保存 '.py' 文件之前确实更改了工作目录,但我试图弄清楚为什么文件名与工作目录不一致以及如何将我的 '.py' 文件保存到一个特定的文件夹。

0 投票
1 回答
840 浏览

vim - 如何在vimscript中移动缓冲区位置

我正在尝试使用 autocmd 在打开文件时检查某个文件是否存在。如果文件存在,我想做一个vsplit,并将 vsplit 缓冲区向右移动。就像是:

我不知道该怎么做<C-w>L。我得到的只是语法错误。

如何在 CheckForFile 函数中移动缓冲区?

0 投票
1 回答
348 浏览

list - 使用变量/列表作为自动命令模式

是否可以使用变量或列表将模式传递给 vim 的 autocmd?

这是一个例子:

上面的例子不起作用 - 不幸的是。

0 投票
1 回答
999 浏览

vim - 仅针对某些文件类型的运行/切换命令

我发现了一个名为 Goyo 的不错的无干扰写作插件,它做得非常好。我设置autocmds为根据文件类型启用 Goyo,所以如果我处理降价或文本文件,Goyo 会自动初始化。如果我离开缓冲区或更改文件类型,那么 Goyo 就会关闭。以下是我如何实现该行为:

这似乎工作正常。问题是,这是否是要走的路,或者是否有更好的方法来解决问题?

0 投票
4 回答
3471 浏览

vim - 如何在 vimrc 中设置 autocmd 以仅使用特定文件类型运行?

说明:

最近我从一个 git 存储库中获得了一个 .vimrc 文件,并且发现它到目前为止非常有用。它附带的有用工具之一是它会在您编写文件时自动删除尾随空格。

但是,我刚开始使用markdown,它给出了如何编写文本文件的清晰格式,可以轻松地将这些文件转换为不同的类型,例如html。

问题是降价使用两个尾随空格来表示换行符。我的 .vimrc 会自动删除这些。我找到了执行此操作的 autocmd。这是:

DeleteTrailingWS 是实际删除空白的函数。

我的问题:

如何修改它,以便它仅在文件类型不是 markdown 时运行/设置此 autocmd?(.md) 请以这样的方式解释,以便我可以调用通用函数,而不仅仅是上面的那个。此外,您如何使用多种文件类型执行此操作。例如,仅当文件不是 .md、.abcd 或 .efgh 类型时才运行/设置此命令?

谢谢你们。