Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在vim中,为什么autocmd setfiletype命令不起作用?_Vim - Fatal编程技术网

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

在vim中,为什么autocmd setfiletype命令不起作用?,vim,Vim,在我的.vimrc中,我添加了这个 autocmd BufNewFile,BufRead *.markdown setfiletype octopress 但它似乎不起作用,因为在我打开xxx.markdown文件并输入命令setfiletype-octopress之后,一切都正常 这是我的原封不动 set nocompatible syntax on filetype off colorscheme desert set nu set mouse=a set rtp+=~/.vim/bund

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

autocmd BufNewFile,BufRead *.markdown setfiletype octopress
但它似乎不起作用,因为在我打开xxx.markdown文件并输入命令
setfiletype-octopress
之后,一切都正常

这是我的原封不动

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
希望有人能帮助我,告诉我如何调试这个东西…

我看不到这个:

autocmd BufNewFile,BufRead *.markdown setfiletype octopress
我只在结尾看到这一点:

autocmd FileType markdown setfiletype octopress
我认为解决这个问题会解决你的问题

更新:

还有两件事要考虑。首先,标记语法插件将文件类型设置为
mkd
,而不是
Markdown
。这似乎也不能正常工作:

autocmd FileType mkd setfiletype octopress
但这确实:

au FileType mkd set filetype=octopress

…这是有道理的<代码>设置文件类型不会设置文件类型(如果文件类型为)。因为它已经被标记为类型为
mkd
,所以它没有被更新为新的文件类型。

这是因为
setfiletype。。。但只有在一系列(嵌套的)自动命令中尚未完成时才可以执行。


第一个版本的文件类型设置是否正确?我设置了一个vimrc,其中只有
autocmd BufNewFile,BufRead*.markdown setfiletype octopress
,然后运行
vim-u./my vimrc-u NONE xxx.markdown
。键入
:设置文件类型?
显示它已正确设置为octopress。我知道它可以工作。我猜是.vimrc中的某些内容导致此命令不起作用。第一步是验证是否使用
autocmd
正确设置了文件类型。我知道当你手动说
setfiletype-octopress
时它会起作用,但是如果不这样做,文件的文件类型是否正确?我不认为是这样,发生了什么事。我将
setfiletype-octopress
更改为
setfiletype=octopress
,效果很好。谢谢你,你的问题很狭隘。一般问题已在中得到回答,可能不是问题,但您已在文件中多次
设置nocompatible
。您应该删除重复项并将其作为文件的第一行,这样您就不会撤消已设置的内容(编辑:实际上您有许多重复的内容…@l或者我知道设置语法的方法,但我的autocmd不起作用,我想知道为什么以及如何调试它。行本身没有问题。尝试删除
.vimrc
的其他部分,直到它开始工作,或者可能对其他部分(如路径)进行故障排除。这真的不是一个建设性的问题。我解决它。这是因为
au BufRead,BufNewFile*.xyz setfiletype c;仅当未检测到此扩展名的文件类型时设置此扩展名
,这是您提到的问题的一个答案@谢谢你的批评。因为你们,这个网站变得很有用。你们可以同时使用:
setfiletype
setfiletype
filetype plugin on
filetype indent on
au FileType htm,html,php,css setl ts=2 sw=2 sts=2 et