すべてのレイヤーをはがすと、実際には非常に簡単です。これは呼び出しと同じように機能します(特定のMSYS2インストール場所に変更するようにしてください)。
set CHERE_INVOKING=1 & set MSYSTEM=MINGW64 & "c:\msys64\usr\bin\bash.exe" --login -i
シェルを設定してPATHを継承することを個人的にお勧めします。
set CHERE_INVOKING=1 & set MSYSTEM=MINGW64 & set MSYS2_PATH_TYPE=inherit & "c:\msys64\usr\bin\bash.exe" --login -i
私のConEmuタスク設定ページは次のようになります。
すべてを壊す
MSYS2は、コマンドラインパラメーターではなく、環境変数に従ってシェルを構成することを好みます。この方法でオプションをプログラムに渡すことは、最初は不自然に思えるかもしれませんが、基本的にはこの単純なシリーズに従っています。set VAR=value & set VAR2=value & "c:\path\to\command" [args]
CHERE_INVOKING
-1に設定されている場合、bashは現在の作業ディレクトリで開始します。それ以外の場合は、ユーザーのホームディレクトリで開始します。これは1
、エクスプローラーウィンドウのコンテキストメニューから期待どおりにシェルが動作できるように設定する必要があります。
MSYSTEM
-使用するMSYS2サブシステム。MSYS、MINGW32、およびMINGW64の3つがあります。MSYS
サブシステムにのみに使用すべきpacman
コマンド操作と私は一般的にのみ、それが必要なのは非常に稀な機会に古いSKOOLスタートメニューのアイコンからそれを呼び出します。 MINGW32
選択した少数のユーザーはすべてにとって役に立たず、おそらくあなたはすでにあなたが誰であるかを知っています。
MSYS2_PATH_TYPE
-未設定の場合、MSYSは、PATH
MSYSバイナリといくつかのWindowsシステムパスのみを含む最小限の環境を使用し、MSYSTEM=MSYS
シェルのみの必須モードです。以下のためMINGW
のシェル、使用することをお勧めしますinherit
-私が使用してきたMSYS2_PATH_TYPE=inherit
年間の問題もなく。
MSYSCON
別の回答で言及され、参照されている別の変数がありますmsys2_shell.cmd
-無視してください。これはmsys2_shell.cmd
バッチファイル内でのみ使用され、bash.exeまたはMSYSシェルの初期化の動作には影響しません。
MSYS2のインストール場所
MSYS2パスはc:\msys64\
、MSYS2 Windowsインストーラーのデフォルトのインストール場所であるため、意図的にハードコードされています。これは、使用するには、この場合には意味がありません。%ConEmuDir%
それはに比べてだから%PROGRAMFILES%
、とMSYS2は、より典型的に相対インストールされているルートディレクトリのハードドライブの。それがあることに注意してくださいん使用しても意味が%ConEmuDir%
付属していますMSYS2シェル参照するときにWindows用のGitのことがあるため、されに比べて設置%PROGRAMFILES%
。
MSYS2のインストール場所を知る簡単な方法はありません。MSYS2によって設定された環境変数もありません。MSYS2 MSYSTEM_HOME
にマシンの環境に何かをエクスポートするオプションがあれば、それはうんざりしませんか?しかし、そうではないので、インストールされている場所を知り、そこにConEmuを指定することは、ユーザーとして完全にあなた次第です。
に関してmsys2_shell.cmd
:
使用しないでください。バッチファイルの名前が間違っています。msys2_terminal.cmd
実際に実行しているのは、シェル用の端末全体の設定であるため、これを呼び出すか、類似する必要があります。これは一般的な用語の間違いです。特にWindowsオペレーティングシステムでは、シェルとターミナルが明確に分離されたことはありません。これがどのように機能するかを、Windowsユーザーの観点から説明します。
シェル -これはコマンドプロセッサおよびバッチ/スクリプトランナーです。これは、本質的に他のコマンドラインアプリケーションとよく似たコマンドラインアプリケーションです。シェルは、目に見えるウィンドウやキーボード接続さえ必要としません。ファイル、ストリーム、またはその他のデータ入力/出力ソースで完全にバックグラウンドで動作できます。
ターミナル -これは、シェルプログラムへのキーボード/マウスインターフェイスを提供するウィンドウアプリケーションです。Windowsでは、多くの場合、コンソールウィンドウと呼ばれます。キーボードコマンドはシェルプログラムにパイプされ、出力はウィンドウ内にスクロールバー、色付きのテキスト、その他の楽しい機能とともに表示されます。
このシナリオでは、端末をConEmuにし、シェルをBASH(mingw64)にする必要があります。したがって、ConEmuでシェルを起動し、シェルのみを起動するようにします。私はしたくないConEmuを開始するminttyを。これらは両方とも端末であるため、ConEmu用とmintty用の2つ目のポップアップウィンドウが表示されます。しかし、それがまさに実行しようとするmsys2_shell.cmd
ことです。使用しないでください。