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

时间:2014-12-06 12:02:37

标签: vim file-type autocmd

我为distraction free writing named Goyo找到了这个不错的插件,这真的做得很好。 我设置autocmds以根据文件类型启用Goyo。因此,如果我处理降价或文本文件,Goyo会自动初始化。如果我离开缓冲区或更改文件类型,则Goyo将关闭。以下是我实施行为的方式:

autocmd FileType * :Goyo!
autocmd FileType markdown :Goyo
autocmd FileType text :Goyo

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

1 个答案:

答案 0 :(得分:4)

这很好,我也将如何实现它。由于您只挂钩FileType事件,因此仅当您:edit 文件时才触发切换,而不是在您调用具有其他文件类型的现有缓冲区时触发。您可以使用BufWinEnter执行此操作,但可能会导致太多无意切换。我想这个插件带有一个快速切换映射,无论如何都要手动执行此操作。

替代

autocmd FileType命令的替代方法是 filetype plugins (即~/.vim/ftplugin/markdown.vim等),它们可以整齐地分隔事物。但是,由于你需要一个全能的autocmd来关闭Goyo,并且文件类型列表很小,我也希望把它们放在一起,就像你一样。

改进

请注意,如果你重新:source ~/.vimrc(或者你把它们放入哪个脚本),那么你的命令集会添加一组重复的autocmds。为避免这种情况,您可以将它们包装在

augroup AutomaticGoyo
    autocmd!
    ...
augroup END