web-dev-qa-db-ja.com

大きなファイルのvimプラグインを無効にする

私は私がまとめてきたカスタムVim構成を持っています。 PHP開発に役立つクールなプラグインと機能がいくつかあります。ただし、大きなファイル(数千行)を開くと、これらの機能によってvimがクロールされます。

私が現在行っているのは、.vimrcの名前を.vimrcに変更し、これらの大きなファイルを処理するときにvimを再起動して、デフォルトの構成にすることです。私がやりたいのは、vimを離れることなくvimrcを切り替えることです。それは可能だと思いますか?変更後に.vimrcを調達するようなものですが、デフォルトの構成を上書きするために別のファイルを調達する必要があります。

2
krimson

--noplugin引数でvimを起動します。おそらくこれをエイリアスすることができます。 (たとえば、.vimrcで環境変数を確認し、存在する場合はloadpluginsオプションを設定することもできます)。スクリプトを作成する方法はたくさんあります。よくある質問 ここ および ここ (LargeFileプラグインに注意)も参照してください。

5

vimはいつでも-uオプションで開始できると思います。

vim -u NONE

man vimから:

-u {vimrc}初期化にはファイル{vimrc}のコマンドを使用します。他のすべての初期化はスキップされます。これを使用して、特別な種類のファイルを編集します。また、「NONE」という名前を付けることで、すべての初期化をスキップするために使用することもできます。詳細については、vim内の「:helpinitialization」を参照してください。

1
cYrus

あなたの質問へのコメントは、あなたの問題がすべてのファイル保存で実行されるカスタムコマンドであることを明らかにしています。

したがって、解決策は、カスタムコマンドを編集して、いくつかの変数をチェックすることです。その変数が存在しないか、「false」値を持っている場合は、コマンドを実行します。それ以外の場合は、コマンドの実行をスキップしてください。次に、書き込みをすばやく実行するのは、その変数をtrueに設定するのと同じくらい簡単です。これをコマンドで実行すると、簡単になります。例えば、

...
autocmd BufWritePost * if !exists('b:my_checker_skip_check') || !b:my_checker_skip_check | call DoMyCheck() | endif
...
command! MyCheckDisable  let b:my_checker_skip_check = 1
command! MyCheckEnable unlet b:my_checker_skip_check
0
Ben