すべてのプラグインが読み込まれない「ライトモード」を導入するにはどうすればよいですか?


8

私のVim設定には、現在のプロジェクトの処理、タグのビルドなどを試みるプラグインが含まれています。これは、Vimでの毎日のプログラミングに非常に役立ちますが、次のようないくつかの簡単な編集にVimを使用する場合に面倒です。

  • git commitメッセージを編集します。
  • Ctrl+xCtrl+ezshまたはbash と入力したときにシェルコマンドを編集します。

--nopluginsサラウンドやイージーモーションなど、一部のプラグインをクイック編集モードで利用したいので、どちらも好きではありません。

したがって、いくつかの「ライトモード」(または「クイックモード」)が必要です。プラグインの一部はバイパスされますが、すべてではありません。

私の最初のアイデアは、vimscriptで解析する特別なコマンドライン引数を用意することでしたが、すばやくグーグルすると、vimscriptでは現在不可能であることがわかります(ちなみに悲しいことですが)。

2つ目のアイデアは、vimの実行時に次のように環境変数を設定することです。

$ VIM_LIGHT_MODE=1 vim

これはgitで動作します:

$ git config --global core.editor 'VIM_LIGHT_MODE=1 vim'

私がしなければしかしEDITOR='VIM_LIGHT_MODE=1 vim'、およびタイプCtrl+xCtrl+eのシェルでは、それは動作しません。

edit-command-line:13: command not found: VIM_LIGHT_MODE=1

次に私はこれを試しました:EDITOR="bash -c 'VIM_LIGHT_MODE=1 vim'"が失敗しました:

vim': -c: line 1: syntax error: unexpected end of file

(正直に言うと、これは特に奇妙に見え$EDITORますが、使用方法が正確に誤解されているようです。誰かがここで何が起こっているのか説明してもらえたらうれしいです)

他のすべての実験も失敗しました。

私が考えることができる唯一のハックはservername、次のようないくつかを設定することです:

$ vim --servername VIM_LIGHTWEIGHT_MODE

そしてv:servername、vimscript をチェックインしますが、これは完全なハックです。これは、サーバー名の目的ではありません。

だから私が望むものを達成するためのよりきれいな方法はありますか?


2
あなたは使用することができますenvEDITOR='env VIM_LIGHT_MODE=1 vim'
gniourf_gniourf 2015

3
別の初期化ファイルを使用して、vimとして実行することもできますvim -u .vimrc-light
gniourf_gniourf 2015

1
ああ..あなたの両方のアイデアはクールです、ありがとう。そして、私はまったく気付かなかったenv、私のshell-fuはまだ弱すぎる。それを答えとして書いて、それを受け入れられるようにすることを検討してください。
ドミトリーフランク

回答:


10

(少なくとも)2つの可能性があります。

  1. 使用env

    EDITOR='/usr/bin/env VIM_LIGHT_MODE=1 vim'
    
  2. vim別の初期化ファイルで使用します.vimrc-light

    EDITOR='/usr/bin/vim -u ~/.vimrc-light'
    

3

受け入れられた答えは確かにより良いですが、私は議論したいと思いEDITOR="bash -c 'VIM_LIGHT_MODE=1 vim'"ます。ここでの問題はEDITOR、引数を指定して呼び出され、に渡された引数がbash -c自動的にに転送されないことvimです。使用する必要があります"$@"

EDITOR="bash -c 'VIM_LIGHT_MODE=1 vim \"\$@\"'

ただし、のコマンドの後の最初の引数bash -c$0であり、これはの一部ではない$@ため、プレースホルダー引数を使用する必要があります。

EDITOR="bash -c 'VIM_LIGHT_MODE=1 vim \"\$@\" lightvim' 

これらの落とし穴では、それは良いオプションではありませんが、それでも機能します。


0

実際、あなたの最初のアイデアは、エレガントな方法でも可能です。ユーザー定義のコマンドを作成し、+構文でvimを呼び出すことができます。

次の.vimrcように、ファイルにカスタムユーザーコマンドを定義するだけです。

command! CustomUserCommandName AnyVimCommandToExecute

次に、コマンドラインから次のようにvimを起動できます。

$ vim +CustomUserCommandName

私はこれを次のよう.vimrcに簡単にメモを取るために私の中で使用しました:

" Note Taking {{{
command! Note execute "normal \<Plug>VimwikiMakeDiaryNote"
command! Notes execute "normal \<Plug>VimwikiDiaryIndex" | execute "normal \<Plug>VimwikiDiaryGenerateLinks"
" }}}

これにより、thisで呼び出すことができますvim +Note。次に、rcより簡単に呼び出すことができるように、shells ファイルにシェルエイリアスを作成します。私の.bashrcファイルでは、上記のvimコマンドを次のようにエイリアスしています。

alias note="vim +Note"
alias notes="vim +Notes"

サンプル溶液

あなたの場合、あなたはあなたの.vimrcファイルのこれらの行に沿って何かを書くことができます:

command! LightMode let g:lightmode=1

次に、プラグインごとまたはプラグインのグループごとなどif.vimrcファイルで次のようなvim ステートメントを使用してライトモードをテストします。

if exists("g:lightMode")
    " Do something cool with vim 
endif

注意事項

  • !vimコマンドの後はcommand!、同じ名前で同様に定義されたコマンドを上書きすることを意味します。これが望ましいです。
  • CustomUserCommandName しなければならない最初の文字が大文字持っています
  • g:使用できるグローバルスコープs:やニーズに合ったスコープで汚染したくない場合があります。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.