我正在尝试配置vimrc,以便在编辑tex文档时,制表符为2个空格。
在我的vimrc文件中,
au BufNewFile,BufRead *.py:
\ set tabstop=4
\ set softtabstop=4
\ set shiftwidth=4
\ set textwidth=79
\ set expandtab
\ set autoindent
\ set fileformat=unix
au BufNewFile,BufRead *.js, *.html, *.css, *.tex:
\ set tabstop=2
\ set softtabstop=2
\ set shiftwidth=2
但是,当我在vim中编辑文档时,它会忽略制表符。制表符比2个空格长得多。 Vim不会抛出任何错误。我不明白为什么在编辑tex文档时它会忽略tabstop = 2行。编辑时必须运行:set tabstop = 2。
谁能看到我的配置文件有错吗?
在这种情况下,我正在使用vimtex插件。
谢谢。
答案 0 :(得分:2)
:help autocmd-patterns
。:
冒号。:set
而不是:setlocal
,否则缩进设置将继承到其中任何一个创建的新缓冲区。:set
命令的参数组合为一个。au BufNewFile,BufRead *.js,*.html,*.css,*.tex
\ setlocal tabstop=2 softtabstop=2 shiftwidth=2
我希望将其放入:autocmd
中,而不是~/.vim/after/ftplugin/{filetype}.vim
中。 (这要求您拥有:filetype plugin on
;使用 after 目录允许您覆盖$VIMRUNTIME/ftplugin/{filetype}.vim
完成的任何默认文件类型设置。)不足之处是必须重复:setlocal
命令适用于每种文件类型,但对我来说,您希望为这些语言使用相同的缩进设置这一事实是偶然的,这些配置之间没有任何联系。
或者,您可以直接在:autocmd FileType {filetype} ...
中定义一个~/.vimrc
。这样,您至少不会复制内置的文件类型检测及其使用的文件全局模式:
au FileType javascript,html,css,tex
\ setlocal tabstop=2 softtabstop=2 shiftwidth=2