autocmd 未从 ~/.vimrc 应用
autocmd not applied from ~/.vimrc
如何让我的 vim 在不手动重新加载 ~/.vimrc
的情况下应用自动命令?为什么 ... 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
文件,制表位也没有设置为 20?
vim --version
: VIM - 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
对于文件类型问题,可能是因为vim不知道"tsv"文件类型:你可以通过运行 :set filetype
检查一下return 你当前的文件类型。 (它 returns "" 在 *.tsv 文件上对我来说)
以下内容适用于所有 *.tsv 文件
autocmd BufEnter *.tsv set ts=20 sts=20 sw=20
另一个问题,它一定是你的插件之一或你的 .vimrc 中的其他东西覆盖了它(因为它只适用于 vimrc 中的那三行)。尝试通过 运行 :autocmd
找到罪魁祸首,它将列出所有已注册的自动命令
如何让我的 vim 在不手动重新加载 ~/.vimrc
的情况下应用自动命令?为什么 ... Filetype tsv ...
根本没有应用?
我的~/.vimrc
set ts=10
autocmd BufWrite * :echom "Writing buffer!"
autocmd Filetype tsv set ts=20 sts=20 sw=20
~/.vimrc
已加载,但仅在 :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
文件,制表位也没有设置为 20?
vim --version
: VIM - 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
对于文件类型问题,可能是因为vim不知道"tsv"文件类型:你可以通过运行 :set filetype
检查一下return 你当前的文件类型。 (它 returns "" 在 *.tsv 文件上对我来说)
以下内容适用于所有 *.tsv 文件
autocmd BufEnter *.tsv set ts=20 sts=20 sw=20
另一个问题,它一定是你的插件之一或你的 .vimrc 中的其他东西覆盖了它(因为它只适用于 vimrc 中的那三行)。尝试通过 运行 :autocmd
找到罪魁祸首,它将列出所有已注册的自动命令