標準のvimコマンドを使用してMacVimを閉じると:q
、MacVimウィンドウは閉じますが、プログラムはまだ実行中です。これにより、他のプロセスがMacVimのインスタンスを生成しようとすると問題が発生します。これは、MacVimがまだ実行中の場合、新しいインスタンスが開かれるように特別なフラグをMacVimに渡す必要があるためですが、インスタンスは蓄積されます。
Vimscriptを使用してプロセスを強制終了し、終了時にウィンドウを閉じる方法はありますか?
Dockに複数のMacVimアイコンが一貫して表示される場合は、MacVimをどのように起動しているかを調べてください。具体的には、:help macvim-start
は言います
MacVimを起動するためにアプリバンドル内のMacVimバイナリを呼び出さないでください。
コマンドラインからは、通常、open -a MacVim filename
またはmvim filename
のいずれかを使用します。1。 GUIから、MacVimを特定の拡張子に関連付けたり、ファイルをMacViminFinderまたはDockまたは開いているMacVimにドラッグアンドドロップしたりできます。または、[サービス]メニューを使用して、他のアプリケーションからの選択で新しいバッファを開始できます。 mvim://
URLハンドラーもあります(:help mvim://
を参照)。
これらのメソッドはいずれも、既存のインスタンスが実行されているかどうかに関係なく、特別なフラグ/オプションを必要とせず、Dockに追加のMacVimアイコンを作成する必要があります。
1mvimは、MacVimに付属するスクリプトです。 :help mvim
を参照してください。 PATHのディレクトリにインストールしたら、それを使用して既存のMacVimインスタンスのファイルを編集できます(または、まだ実行されていない場合は起動します)。
「最後のウィンドウが閉じた後:」MacVimを終了MacVimの[全般]タブのオプションの設定(⌘、またはMacVim> 設定…)はあなたが望むものかもしれません。
より具体的なものが本当に必要な場合は、MacVim-カスタムコマンド:macaction terminate:
を使用して、MacVimアプリケーション全体にスクリプト可能な任意の時点で終了するように要求できます。 ⌘QおよびMacVim> Quit MacVimメニュー項目と同等である必要があります(これらはすべて、アプリケーションのファーストレスポンダーにterminate:
アクションを送信します)。バッファを変更した場合は、「とにかく終了しますか?」というメッセージが表示されます。
自動コマンドを使用してVimLeaveイベントに接続することをお勧めします。
autocmd VimLeave * macaction terminate:
macvim-dev のMacVimバンドルにはmvimスクリプトがないようです。 b4winckler repoからmvimスクリプトを取得しましたが、これは上記のように機能しています。