Vim 文件类型的 autocmd 不能间接工作
Vim autocmd for FileType not working indirectly
我有一个自定义 ~/.vimrc
我用这个 augroup
:
augroup filetype_vim
autocmd!
autocmd! BufWritePost .vimrc* source %
autocmd FileType vim |
setlocal foldlevel=0 foldmethod=marker foldmarker={{{,}}}
augroup END
当我直接打开 vim 像这样编辑 ~/.vimrc
时:vim ~/.vimrc
,折叠工作正常,我可以折叠 {{{
标记:
:set foldmethod?
> foldmethod=marker
当我在没有指定文件的情况下打开vim:vim
,然后尝试编辑::e ~/.vimrc
,折叠方式不同!
:set foldmethod?
> foldmethod=syntax
这显然来自我的 vimrc.
的不同部分
为什么我间接打开文件时无法识别文件类型?
你的 VimScript 语法失败了。必须是
autocmd FileType vim
\ setlocal foldlevel=0 foldmethod=marker foldmarker={{{,}}}
你所做的是
autocmd FileType vim <nothing> | <nothing>
setlocal foo bar
因此 setlocal
仅适用于当前缓冲区(即命令行参数),不适用于其他任何内容。
我有一个自定义 ~/.vimrc
我用这个 augroup
:
augroup filetype_vim
autocmd!
autocmd! BufWritePost .vimrc* source %
autocmd FileType vim |
setlocal foldlevel=0 foldmethod=marker foldmarker={{{,}}}
augroup END
当我直接打开 vim 像这样编辑 ~/.vimrc
时:vim ~/.vimrc
,折叠工作正常,我可以折叠 {{{
标记:
:set foldmethod?
> foldmethod=marker
当我在没有指定文件的情况下打开vim:vim
,然后尝试编辑::e ~/.vimrc
,折叠方式不同!
:set foldmethod?
> foldmethod=syntax
这显然来自我的 vimrc.
的不同部分为什么我间接打开文件时无法识别文件类型?
你的 VimScript 语法失败了。必须是
autocmd FileType vim
\ setlocal foldlevel=0 foldmethod=marker foldmarker={{{,}}}
你所做的是
autocmd FileType vim <nothing> | <nothing>
setlocal foo bar
因此 setlocal
仅适用于当前缓冲区(即命令行参数),不适用于其他任何内容。