在vim中,为什么我的autocmd setfiletype命令不起作用?

时间:2013-06-28 02:14:16

标签: vim

在我的.vimrc中我添加了这个,

autocmd BufNewFile,BufRead *.markdown setfiletype octopress

但它似乎无法正常工作,因为在我打开一个xxx.markdown文件并输入命令setfiletype octopress后,一切正常。

这是我完整的.vimrc

set nocompatible
syntax on
filetype off
colorscheme desert
set nu
set mouse=a
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()
Bundle 'gmarik/vundle'
filetype plugin indent on    

Bundle 'vim-octopress'
autocmd FileType markdown setfiletype octopress

希望有人可以帮助我并告诉我如何调试这件事......

3 个答案:

答案 0 :(得分:5)

我没有看到这个:

autocmd BufNewFile,BufRead *.markdown setfiletype octopress

我最后才看到这个:

autocmd FileType markdown setfiletype octopress

我认为修复会解决你的问题。

<强>更新

还有几件事需要考虑。首先,Markdown-syntax插件将文件类型设置为mkd,而不是markdown。这似乎也不正常:

autocmd FileType mkd setfiletype octopress

但这样做:

au FileType mkd set filetype=octopress

......现在这很有道理。 setfiletype如果是already been set,则不会设置文件类型。由于它已被标记为mkd类型,因此未将其更新为新文件类型。

答案 1 :(得分:0)

这是因为setfiletype ... but only if not done yet in a sequence of (nested) autocommands.

Doc about setfiletype function

答案 2 :(得分:0)

filetype plugin on
filetype indent on
au FileType htm,html,php,css setl ts=2 sw=2 sts=2 et