保存空缓冲区时,自动命令 BufRead 在 vi​​m 中不起作用

保存空缓冲区时,自动命令 BufRead 在 vi​​m 中不起作用

我正在尝试使用autocmd来获取一些特定于文件名的映射。我按照网上的一些说明进行操作,并在我的文件中写入以下内容vimrc

autocmd BufRead,BufNewFile special.txt (some mappings here)

当我输入一个文件或创建一个名为 的新缓冲区时special.txt,它工作正常,但当我创建一个空缓冲区(例如,在不带参数启动 vim 时)并使用 名称保存它时,它则不行special.txt

甚至一个简单的方法也echomsg行不通:

autocmd BufRead,BufNewFile special.txt echomsg test

test并且消息历史记录中没有文本。

BufRead但在我看到的文献中

执行“:filetype detect”时也会触发 filetypedetect 组,并且以缓冲区获取名称的方式写入未命名缓冲区时。

当我保存名为 的空缓冲区时special.txt,该缓冲区会获得一个名称并BufRead应被触发。但事实上并非如此。我是否遗漏了什么,或者我只需要使用另一个自动命令事件?

为了以防万一,我正在使用vim-gtkUbuntu 存储库包中的 vim 命令行版本。

答案1

您必须像这样解释帮助文本:

还触发[仅]对于文件类型检测分组时(执行“:filetype detect”[或]以缓冲区获取名称的方式写入未命名缓冲区时)。

因此,这个有效:

:autocmd filetypedetect BufRead,BufNewFile special.txt echomsg "ftdetect test"

相关内容