问题标签 [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 投票
1 回答
3199 浏览

vim - Vim:了解本地设置 - 何时使用缓冲区本地与 setlocal?

在一行autocmd InsertEnter <buffer> setlocal foo=bar中,是<buffer>setlocal多余的吗?以下各项之间的功能差异是什么?

此外,使用“本地到窗口”或“本地到缓冲区”而不是全局设置set之间有什么区别吗?setlocal

0 投票
1 回答
171 浏览

vim - Vim:在插入模式下切换列表

当我进入插入模式时,我试图切换list设置,因为我发现在我输入时出现和消失的尾随字符令人分心。这些设置似乎不起作用(当我进入插入模式时列表仍然启用):

奇怪的是,光标线设置似乎有效,但列表设置无效。

编辑

经过进一步调查,问题在于wrap启用的文件,这意味着我在游标检查中的 if 语句有问题,并导致下一个自动命令未激活。为什么会这样?

0 投票
2 回答
628 浏览

vim - 加载缓冲区后,Vim 中自动命令 ":highlight" 的正确方法是什么?

由于各种原因,我以十六种颜色运行 Vim,与我的终端颜色同步。在最近的 Vim 更新中,我不得不完全修改我的 "~/.vimrc" 以使其恢复在 Linux 上的运行状态。

最初,我震惊地发现这条简单的行不起作用(即使前面有“语法”):

我也在使用“LineNr”ctermfg。无论我将“评论”ctermfg 放置/堆叠在哪里,它都不起作用,或者干扰了其他所有正确采购的东西(即,放置在与“LineNr”相同的行中)。但是,我发现在缓冲区加载后调用“评论”会使评论按预期显示。

我是 Vim 中的 autocmd 新手(无论如何,我想知道它是如何工作的)。我的“~/.vimrc”中是否有一个“autocmd”调用,它将在缓冲区加载后立即运行上述代码行?

我已经尝试了几次迭代(BufWritePre、BufWritePost 等),但都没有成功。这是我之前的尝试:

0 投票
2 回答
1826 浏览

vim - 当文件类型为无时,如何设置自动命令生效?

在 Vim 中,只有当且仅当文件类型为 markdown、text 或 none(即 NULL)时,我才希望有一个特定的映射集。指定“无”是困难的部分。

:set filetype?如果返回filetype=markdown或,则以下命令有效filetype=text。但是如果:set filetype?返回filetype=(显示none在我的状态行中)它不起作用。

未设置指定文件类型的正确方法是什么?换句话说,只有在未设置文件类型(或者是文本或降价)时才应定义此映射。在任何其他文件类型上,映射应该是未定义的。

注意:映射是人为的,因为它不是问题的有趣部分。

0 投票
1 回答
238 浏览

vim - Indent code using vim autocommand

I want use the indent linux utility to indent the current file on saving. I tried

in my .vimrc file (~/.vim).

Manually I tried that command

it works only after prompting me to load the file, as below,

0 投票
2 回答
1181 浏览

vim - vim - 在 autocmd FileType 中设置文件类型

我想更改autocmd FileType挂钩中的文件类型。三个原因是我想使用 NeoMutt 语法文件.muttrc而不是 Vim 的默认语法文件。我已经用 Plug manager 安装了 NeoMutt 的语法文件:

我把它放在运行时路径中(我可以用 设置它set ft=neomuttrc)。但是当我打开时~/.muttrc,Vim 仍然使用默认的语法文件 ( set ft?prints muttrc)。我尝试了以下方法:

但是我打开后filetype仍然设置为。如何更改in钩子?muttrc~/.muttrcfiletypeautocmd FileType

0 投票
1 回答
237 浏览

python - 通过映射到 autocmd 来自动完成 python Shebang(在非 .py 文件中)

我正在学习 Vim,并且我已经成功地设置了我的 .vimrc 文件,这样每当我创建一个新的 python .py 文件时,就会自动生成相应的 shebang 和 header。耶我!

但是,在构建终端管道时,我并不总是喜欢为我管道到的程序包含 .py 扩展名。因此,shebang 不会自动生成。伤心!

在不重复我为 autocmd 编写的内容的情况下(因为这是我学习的方式,我需要大量的尝试和错误才能编写),我可以在 INSERT 模式下映射一个像“pyhead”这样的字符串,或者创建一个与 autocmd 相关联的宏以轻松实现当我选择不使用 .py 扩展名时,我的 shebangbang?我觉得对已经存在的命令的简单映射应该可以防止混乱的 .vimrc。我已将我的 autocmd 放在一个 augroup 中,如下所示:

为了清楚起见,autocmd 都在一行上,但我包括三个点来表示继续(这样您就不需要滚动)。如果这是一个愚蠢的要求,并且有一个简单的答案,请谴责。谢谢!

0 投票
0 回答
351 浏览

function - (Neo)vim FocusGained 没有按预期工作

我已经为我的终端 (iTerm2) 和 Neovim 设置了Base16颜色主题,包括Base16-shellBase16-vim。这样我就可以从命令行更改主题,我创建了一个 bash 函数,可以让我说color <theme>base16该主题的-shell 脚本被执行,并且终端颜色发生了变化。这个 bash 函数还更新了一个文件,.nvim_background该文件来自我的 Neovim 配置,~/.config/nvim/init.vim我希望在任何打开的 Neovim 会话中,当该会话获得焦点时,颜色会发生变化变色后。

这是.nvim_background文件:

.nvim_template用于修改它:

这是我的 Neoviminit.vim文件中的函数和 augroup:

bash 函数使终端中的颜色立即发生变化,我可以看到.nvim_background文件正在使用新的主题名称进行更新。但是当我将焦点移回 Neovim 时,颜色并没有改变。我可以:color base16-<theme>在 Neovim 中更改颜色,所以我知道 base16 主题插件已正确安装。

如何设置augroup以便在FocusGained事件发生时触发?或者也许一个更好的问题是,我如何设置s:CheckColorScheme函数以便在 Neovim 重新获得焦点时调用它?

为了完整起见,这里是操纵颜色的 bash 函数:

0 投票
1 回答
561 浏览

vim - 有没有一种干净的方法来增加 Vim 中的“BufWrite”自动命令?

我最近安装了 VimWiki 插件,并且正在学习一般的 Vim 插件架构(最好使用目录,after/ftplugin而不是将所有内容都塞进我的.vimrc文件中)。

我想在编写 wiki 文件之前调用一个函数,如下所示:

然而,vimwiki 设置了它自己的BufWrite自动命令,它会更新 wiki 文件中的任何目录。我可以用我自己的函数来破坏这个自动命令,该函数调用 CleanMarkdown() 以及 vimwiki 今天正在做的任何事情,但是面对 vimwiki 插件未来可能发生的变化,这将是脆弱的。

是否有一种标准方法可以添加BufWrite自动命令的待办事项列表中?

0 投票
1 回答
414 浏览

intellij-idea - Autocmd 在 Ideavim 中的 Window Select 上触发

我试图在 IdeaVim 中重现本文中概述的技巧。相对或混合行号就像一个魅力,没有麻烦。

但是,当在 IntelliJ Idea 中使用拆分窗口时(例如打开),我希望当前没有焦点的拆分窗口显示绝对数字,而焦点窗口使用相对数字。

要查看我的意思,请滚动到链接文章的底部。

文章推荐使用下面的自动命令来实现这个结果:

但是,在 IdeaVim 中的拆分窗口之间切换时,这不会产生预期的结果。我认为这是因为没有触发诸如BufEnter之类的事件。BufLeave

这在 IdeaVim 中是否可行?如果是这样,必须如何更改上述命令IdeaVim中是否有支持的事件列表?