如何在Vim启动时执行命令


11

我刚刚为python安装了一个显示方法树的插件。因此,我想在启动时打开树,因此不必每次打开某些.py文件时都按下按钮。但是,我希望仅对.py文件执行此命令。这是我的vimrc片段的样子:

nmap <F8> :TagbarToggle<CR>

有一种方法在启动时仅对.py文件执行此命令吗?


你好圣安塔里奥。您可能需要注意,您接受的答案比替代答案的投票少得多。
小鸡

Answers:


8

添加您的.vimrc

au BufEnter *.py :TagbarToggle<CR>

哪里

  • auautocmd,自动执行命令。

  • BufEnter 第一次输入文件时。

  • *.py 适用于python文件类型。

  • 剩下的就是要执行的命令

2
每次.vimrc来源都将添加一个额外的自动命令。为避免这种情况,该行应被一个augroup包围,该augroup会删除该命令。请参阅:help augroup-delete
丰富

:augroup测试组:autocmd!:au BufEnter * .py:TagbarToggle <CR> augroup END可以吗?
卡皮尔

1
在我看来很好!
丰富

11

我认为,最干净的方法是将命令添加到.vim/vimfiles目录中的文件中:

~/.vim/after/ftplugin/python.vim

或Windows:

$HOME\vimfiles\after\ftplugin\python.vim

:help ftplugin-overrule尽管上下文(更改设置)略有不同,但该技术记录在(列表项3)中。

kapil描述的自动命令技术相比,它具有以下优点。

  1. 更少的代码。您只需编写要执行的Vimscript。您无需编写自动命令并在其周围加上 augroupautocommand!清除命令。

  2. 开销少。Vim已经在检测文件类型并检查文件是否存在after/ftplugin/filetype:为什么添加一个附加的执行相同目的的自动命令?

  3. 清洁工.vimrc。我认为最好将特定于文件类型的功能与my分开.vimrc。(不过,有些人对此表示不同:请参见下面的缺点。)

它还有一些小缺点:

  1. 仅在使用Vim的文件类型检测时,此方法才有效。(:help filetype

    但是,这通常是人们在.vimrc中启用的第一个设置之一,我敢打赌几乎所有Vim用户都已经打开了它。

  2. 有些人喜欢将所有配置保留在.vimrc文件中。


1
+1 ftplugin/<filetype>.vim,可以更好地分离关注点:)
LEI
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.