我正在尝试使用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-gtk
Ubuntu 存储库包中的 vim 命令行版本。
答案1
您必须像这样解释帮助文本:
还触发[仅]对于文件类型检测分组时(执行“:filetype detect”[或]以缓冲区获取名称的方式写入未命名缓冲区时)。
因此,这个有效:
:autocmd filetypedetect BufRead,BufNewFile special.txt echomsg "ftdetect test"