从 autocmd 模式中排除帮助和插件页面

问题描述

我想写像 autocmd BufAdd * if &filetype != 'help' | echo 'foo' 这样的命令,但是没有用。我尝试了不同的选项:&l:filetype&buftype&l:buftype;尝试切换 filetype 设置,但没有任何改变。无处不在的全局命令 autocmd BufAdd * echo 'bar' 包括帮助页面,同时帮助页面上的 :echo &filetype 返回 help。我做错了什么?

解决方法

因为,

  1. 虽然在 BufAdd 中,当前缓冲区可能(并且很可能)与匹配的缓冲区不同;
  2. 虽然在 BufAdd 中,匹配的缓冲区可能(并且很可能不会)尚未设置任何 &filetype

请注意,通常应该使用 ~/.vim/after/ftplugin/xyz.vim 挂钩到某些特定的文件类型。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...