autocmd未从〜/ .vimrc

时间:2015-08-19 09:09:47

标签: vim autocmd

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

我的~/.vimrc

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

~/.vimrc已加载,但只有在:so之后才会应用autocmd:

$ 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

1 个答案:

答案 0 :(得分:2)

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

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

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

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