2秒でcdがしたい!!
2022-11-01
azblob://2022/11/11/eyecatch/2022-11-01-change-directory-high-speed-000.jpg

こんにちは!三瀬と申します。最近はアイカツ!シリーズが10周年を迎えて嬉しくなっています。虹野ゆめさんに僕はなりたい。

 

本題ですが、僕は普段Gitを使う時はGit Bashからコマンドを打ってアレコレしています。

最近の業務では複数のリポジトリをかなりの頻度で行き来するようになり、各リポジトリ直下に移動するためにcd (change directory) コマンドを打つ回数が増えてきました。

入力補完機能もありますし慣れたらまあ全然大丈夫っちゃ大丈夫なのですが、いちいち目的のリポジトリに行くためにリポジトリ名を入力してcdするのには若干めんどくささを覚えたりもします。

 

そこで考えます。「どこからでも超手軽にコマンドを打って、普段よく行くディレクトリにcdできるようにしたいな...」と。

ということで今回は、PowerToys Runからバッチファイルを実行して、特定のディレクトリ直下にいる状態のGit Bashを開く方法を考えました。

多分これが一番早いかも。

 

① Microsoft PowerToysをインストールし、PowerToys Runを有効化する

PowerToysは、Microsoftが開発していたもののWindowsに標準搭載はされなかった便利機能をまとめて搭載したソフトウェアです。

その各種便利機能の中でも、個人的にないと生きていけないレベルで使っている機能に「PowerToys Run」があります。

PowerToys Run

[Alt] + [Space]キーを押すと↑のような検索窓が出てきて、簡単にアプリケーションや実行ファイルを検索したり実行することができます。キーボード操作だけで完結するのでめちゃくちゃ便利。

今回はこれが無いと始まらないので、使えるようにしましょう。

 

まずはこちらから、お好きな方法でPowerToysをインストールします。

インストール後、PowerToysの設定アプリを開き、「PowerToys Run」→「PowerToys Run を有効化する」の項目をオンにします。

これで、[Alt] + [Space]キーでいつでも使えるようになります。

各種アプリの実行以外にも、URLを入力したり再起動/シャットダウンをすることもできるので、是非使ってみてください...

 

② Git Bashを開く&引数でコマンドを渡すバッチファイルを作成する

実際に、秒速cdを行うバッチファイルを記述していきましょう。

今回は、Gitリポジトリでは無いのですが「misehogehoge」というディレクトリを作ったのでその直下に移動できるようにします。

 

ということでドン。

"C:\Program Files\Git\git-bash.exe" -c "cd ~/misehogehoge ; exec bash"

簡単に各部分を説明します。

まず "C:\Program Files\Git\git-bash.exe" で実際に開くGit Bashの実行ファイルを指定します。ここは人によってパスが異なる場合があるので、いい感じにお願いします。

次の -c でBashを開いた際にコマンドを渡せるようにします。-c の後のダブルクォーテーションで囲った部分が渡すコマンドになります。シェルスクリプトを渡すこともできるのですが今回は直書きしました。

コマンドの中身はセミコロンで区切ることができ、左の cd ~/misehogehoge で実際にmisehogehoge直下に移動します。

ただ、実はバッチファイルでBashを開いてコマンドを渡した場合、コマンドを実行し終えたらBashが閉じられてしまいます。それを防ぐために、右側の exec bash を実行するようにします。これは意味合い的には「Bashを実行する」ということになり、まあこれでBashを開いたままにしてくれるようになります。

(なお、基本的にバッチファイルを作成する際はコマンドがコンソールに復唱されてしまうのを防ぐために1行目に「@echo off」という記述を含めるのですが、今回はコンソールを開かないようにするので書いていません(後述します))

 

ということで、↑のコードをいい感じにバッチファイルにして、実行することで全てがうまくいく....

わけではなく、PowerToys Runは色々万能なのですがさすがにバッチファイルを実行することはできません。

 

そのため、次の項目でこのコードを.exeの実行ファイルにし、PowerToys Runで実行できるようにしていきます。

 

③ VisualBatでバッチファイルのコードをexe化する

VisualBatは、個人(たぶん)の方が作成したバッチファイル用の統合開発環境です。

記述したコードを直接実行したり、実行ファイルに変換することができるため、こちらを使っていきましょう。

 

まずは、こちらからVisualBatをインストールして、開きます。

開発画面に行くと、コードを記述できる場所があるので、そこに先ほどのコードを貼り付けます。

このように直接実行ボタンから実行したり、処理内容をトレースしてデバッグすることができるので色々試せて嬉しいです。

 

ではこのコードを実行ファイルにビルドしましょう。

上側の「ビルド」メニューから、「exe化(Console非表示)」を選択します。(Console非表示を選ばないと実行のたびにコンソールが出てきちゃいます)

これでいい感じの名前.exeにして、いい感じの場所に放り込みます。今回は「misehogehoge.exe」にしました。

 

ここまで来たら、あとはPowerToys Runから実行するだけです!

misehoge まで打ったら、misehogehoge.exeが出てきたのでこれを選ぶと...

 

Git Bashが開かれ、misehogehogeディレクトリ直下にいる状態で始まりました。わ~い

こんな感じで、普段よく行くディレクトリ用に何個か作っておけば、2秒で飛ぶことができてちょっとだけ幸せになりそうです。

 

まとめ

同じような要領でやれば、PowerToys RunでUNIXコマンドを含む色々なコマンドを実行することができそうですね。

本当に一回使い慣れたらこれ無しじゃ生きていけなくなるので是非試してみてください。

夢はPowerToys Runから、各アプリケーションを終了できるようにすることです。できるのか...?