vimの起動時にコマンドを実行する方法


11

メソッドツリーを表示するpythonのプラグインをインストールしました。起動時にツリーを開きたいので、.pyファイルを開くたびにボタンを押す必要はありません。しかし、私はこのコマンドが.pyファイルに対してのみ実行されることを望みます。これが私のvimrcピースの様子です。

nmap <F8> :TagbarToggle<CR>

起動時に.pyファイルに対してのみこのコマンドを実行する方法はありますか?


ハウディセントアンタリオ。承認された回答は、代替回答よりも投票数がはるかに少ないことに注意してください。
ヒヨコ

回答:


8

に追加.vimrc

au BufEnter *.py :TagbarToggle<CR>

どこ

  • auautocmd、コマンドを自動的に実行します。

  • BufEnter 初めてファイルを入力したときです。

  • *.py ファイルタイプpython用です。

  • 残りは実行するコマンドです

2
これにより、.vimrcがソースされるたびにオートコマンドが追加されます。これを防ぐには、コマンドを削除するaugroupで行を囲む必要があります。を参照してください:help augroup-delete
2017

:augroup testgroup:autocmd!:au BufEnter * .py:TagbarToggle <CR> augroup ENDよろしいですか?
kapil

1
は、私にはよく見えますよ!
リッチ

10

私の意見では、これを行う最もクリーンな方法は、.vim/vimfilesディレクトリ内のファイルにコマンドを追加することです。

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

またはWindowsの場合:

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

この手法は:help ftplugin-overrule(リスト項目3)に記載されていますが、コンテキスト(設定の変更)は少し異なります。

kapilで説明されている自動コマンド手法に比べて、次の利点があります。

  1. 少ないコード。実行したいVimスクリプトを記述するだけです。自動コマンドをコーディングして、コマンドで囲んだり、コマンドaugroupautocommand!クリアしたりする必要はありません 。

  2. オーバーヘッドが少ない。Vimは既にファイルの種類を検出し、ファイルの存在を確認していafter/ftplugin/filetypeます。同じ目的を実行する追加のオートコマンドを追加するのはなぜですか?

  3. クリーナー.vimrc。私は、ファイルタイプ固有の機能を私のから分離する方が良いと思います.vimrc。(ただし、これに反対する人もいます。以下の欠点を参照してください。)

また、いくつかのマイナーな欠点もあります。

  1. Vimのファイルタイプ検出を使用している場合にのみ機能します。(:help filetype

    しかし、これは一般的に人々が.vimrcで有効にする最初の設定の1つであり、ほとんどすべてのVimユーザーがすでにオンになっていることを期待します。

  2. すべての構成を.vimrcファイルに保存することを好む人もいます。


1
+1 ftplugin/<filetype>.vim、懸念の分離:)
LEI 2017
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.