1

如何让我的 vim 在不手动重新加载的情况下应用 autocmd ~/.vimrc?为什么根本... Filetype tsv ...没有应用?

我的~/.vimrc

set ts=10
autocmd BufWrite * :echom "Writing buffer!"
autocmd Filetype tsv set ts=20 sts=20 sw=20

~/.vimrc已加载,但 autocmd 仅在 a 之后应用:so

$ vim /tmp/test.tsv
:verbose set ts
  tabstop=10
    Last set by ~/.vimrc
:w
"test.tsv" 2L, 37C written
:so ~/.vimrc
:w
Writing buffer!
"test.tsv" 2L, 37C written

另外,为什么即使我编辑了一个.tsv文件,tabstop 也没有设置为 20?

vim --versionVIM - Vi IMproved 7.4 (2013 Aug 10, compiled Jul 11 2015 08:43:46)

:scriptnames

  1: /etc/vimrc
  2: /usr/share/vim/vimfiles/archlinux.vim
  3: ~/.vimrc
  4: ~/.vim/plugin/InsertXSDDateTimeLiteral.vim
  5: ~/.vim/plugin/RdfNamespaceComplete.vim
  6: /usr/share/vim/vimfiles/plugin/SyntaxFolds.vim
  7: /usr/share/vim/vimfiles/plugin/filebrowser.vim
  8: /usr/share/vim/vimfiles/plugin/imaps.vim
  9: /usr/share/vim/vimfiles/plugin/libList.vim
 10: /usr/share/vim/vimfiles/plugin/remoteOpen.vim
 11: /usr/share/vim/vim74/plugin/getscriptPlugin.vim
 12: /usr/share/vim/vim74/plugin/gzip.vim
 13: /usr/share/vim/vim74/plugin/logiPat.vim
 14: /usr/share/vim/vim74/plugin/matchparen.vim
 15: /usr/share/vim/vim74/plugin/netrwPlugin.vim
 16: /usr/share/vim/vim74/plugin/rrhelper.vim
 17: /usr/share/vim/vim74/plugin/spellfile.vim
 18: /usr/share/vim/vim74/plugin/tarPlugin.vim
 19: /usr/share/vim/vim74/plugin/tohtml.vim
 20: /usr/share/vim/vim74/plugin/vimballPlugin.vim
 21: /usr/share/vim/vim74/plugin/zipPlugin.vim
4

1 回答 1

2

对于文件类型问题,可能是因为 vim 不知道“tsv”文件类型:您可以通过运行来检查它,:set filetype这将返回当前文件类型。(它在 *.tsv 文件上为我返回 "")

以下内容适用于所有 *.tsv 文件

autocmd BufEnter *.tsv set ts=20 sts=20 sw=20

对于另一个问题,它必须是您的插件之一或 .vimrc 中的其他东西覆盖了它(因为它仅适用于 vimrc 中的那三行)。尝试通过运行来找到罪魁祸首,:autocmd这将列出所有已注册的自动命令

于 2015-08-19T11:37:57.520 回答