macOS標準のターミナルのウィンドウグループが便利

Posted by johtani on Monday, December 23, 2019

目次

このブログ書こうと思って、これまでMacのセットアップしてたんだった。。。

普段、macOSの標準ターミナルを使ってます。 で、ターミナルを使うシーンは次のような感じです。

  1. ブログのデプロイ(参考:Octopress環境のDockerイメージ化
  2. ElasticsearchとKibanaの動作確認
    1. Elasticsearchの起動用ターミナル
    2. Kibanaの起動用ターミナル
  3. プラグインの開発(elasticsearch-ingest-csvanalyze_api_ui)
    1. elasticsearchのリポジトリ
    2. kibanaのリポジトリ
    3. ingest-csvのリポジトリ
    4. analyze_api_uiのリポジトリ

上記のように1.以外については複数のターミナルをそれぞれのディレクトリで起動して使っています。 これらの3つのパターンのときに、毎回ターミナル(シーンによっては複数のウィンドウ)を開いて、ディレクトリに移動って大変だなと。

ウィンドウグループって?

そこで、ターミナルに便利な機能がないのかな?と思い、メニューを見ていたところ「ウィンドウグループ」というのがあったので調べて、現在の使い方に至っています。

ウィンドウグループの使い方の説明はこちらです

使い方にあるようにウィンドウの場所、設定、タブなどを保存できます。 そして、「ウィンドウグループを開く」というメニューから保存しておいたグループを開くと、簡単に作業環境が再現可能になります。

開くときのメニューはこんな感じです。

作り方

ウィンドウグループの使い方に載ってます。 まずは、保存したいターミナルを開いて、開いたときに移動していたいディレクトリに移動します。 複数のタブやウィンドウを開いた状態にしたい場合は、複数ターミナルを起動して、それぞれ移動したいディレクトリに移動しておきます。

グループとしてまとめたいウィンドウが起動できたら、あとは、「ウィンドウ」メニューの「ウィンドウをグループとして保存」を選択します。

これだけです。あとは、使いたくなったときに開くだけです。 簡単ですよね?

作るときの注意点としては、複数のウィンドウグループを作りたいときは、 それぞれグループごとに作成しては、個別にやる必要があります。 現在開いているターミナルのうち、あれとこれをウィンドウにしたいというやり方はできないので、そこだけ注意点です。 環境ごとにプロファイル(バックグラウンドの色やテーマ)を覚えさせることができるので、1.のシーンだとIceberg、2.のシーンではBasic、3.のシーンではHomevrewで設定していたりします。 (ただ、Preztoのテーマをagnosterにしてしまったので、Basicだとプロンプトが見にくくてしょうがないのですが。。。)

設定はどんな感じ??

ウィンドウグループの管理については、ターミナルの「環境設定」に管理用の画面があります。

この画面でいらないグループを削除したり、設定のエクスポート/インポートも可能です。

私の使い方

3つの利用シーンは説明しました。 すべてのウィンドウグループを変更するたびにインポート/エクスポートしてます。 上記1.と3.のユースケースはほぼ変更がないので、エクスポートしたものを移植用に管理していますが、2.のユースケースについては、頻繁に更新しています(ElasticsearchとKibanaのバージョンをアップしないといけないので)。

このとき、MacのGUIで毎回設定をしているわけではありません。 エクスポートしたファイルは、.terminalという名のXMLファイルになっています。

その中に、次のようなパスが記述されています。このバージョン番号の部分をアップデートのたびにemacsなどで変更し、ターミナルの管理画面で、削除してからインポートし直すだけで、バージョンアップに対応している感じです。


					<key>Tab Working Directory URL</key>
					<string>file://johtani-mac-15.local/Users/johtani/tmp/elastic_stack/v7.5/elasticsearch-7.5.1/</string>
					<key>Tab Working Directory URL String</key>
					<string>file://johtani-mac-15.local/Users/johtani/tmp/elastic_stack/v7.5/elasticsearch-7.5.1</string>

まとめ

ということで、標準ターミナルのウィンドウグループを使うと、よく開くディレクトリやウィンドウ、タブを覚えて置かせることができるので、それぞれの環境向けのターミナルを、好きなときに開くことができるようになります。 私は、ウィンドウは1つで複数のタブをウィンドウグループという形で覚えさせておくことで、各シーンの切り替え、もしくは併用を閉じたり開いたりを簡単にできるようにしています。

他のターミナルソフトを使うと似たようなことが簡単にできたりするのかな? みなさんがどうやってこのような作業やってるのかな?ってのはちょっと気になるところです。

余談(いつものようにツイートとその反応)

ちなみに、みんなどんなターミナル環境なんだろう?と思いツイートしてみた結果はこちらです。 (コメントRTってうまいことひろえないのかなぁ?)


comments powered by Disqus