tex文档的vim标签缩进

时间:2019-02-25 18:36:18

标签: vim tex

我正在尝试配置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插件。

谢谢。

1 个答案:

答案 0 :(得分:2)

  • 文件文件之间必须用逗号分隔,而不能使用空格; cp。 :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