iTerm2 Version 3 betaの新機能を試してみた

iTerm2 Version3

iTerm2で快適コマンドライン生活

iTerm2は、Macにデフォで入っているterminalよりも遥かに高機能なターミナルアプリケーション。コマンドラインで作業することが多い人には超オススメのアプリケーションです。

で、どうやら、そろそろメジャーアップデート(version2から3へ)がありそうです。それに伴って、バージョン3のベータ版がダウンロード可能になりました。かなり色々な機能が追加されているみたいなので、一通り試しに使ってみました。

Version3で追加される新機能

Version3ベータ版は、上記のリンクからダウンロードできます。追加された機能を順番に紹介していこうと思います。分かりやすいように、公式ページに載っている英語タイトルも併記します。

見た目がフラットデザインに(A Fresh Look)

iTerm2 Version3フラットデザイン

確かに、これまでちょっと光沢がはいっていたようなデザインでしたが、完全にフラットなデザインになりました。

シェル統合(Shell Integration)

余りちゃんと理解していませんが、iTerm2と自分が今使っているシェルの統合をしてくれる機能が導入されたみたいです。シェルの持っている情報(コマンド履歴、ホスト名、カレントワーキングディレクトリ等々)をiTerm2に渡すことで、色々と面白いことがiTerm2で出来るようになります。それをshell integrationと呼んでます。

インストールは「iTerm2 > Install Shell Integration」から。

iTerm2でシェル統合をインストール

zshだと、コマンドラインからやらないと、うまくいかないかもしれません(私の場合、うまくいきませんでした)。Shell integrationがインストールされたかどうかは、コマンドプロンプトの左側に水色の三角が出てるかどうか、で分かります。

iTerm2でShell integrationがインストールされたかどうか

もし上記の「Install Shell Integration」で、インストールできなかった場合は、先ず、

curl -L https://iterm2.com/misc/`basename $SHELL`_startup.in >> ~/.iterm2_shell_integration.`basename $SHELL`

と、ターミナルから打つと、.iterm2_shell_integration.zsh(zshの場合)がホームに出来ます。拡張子は今使っているシェルになるはずです。そんで、この設定ファイルを読み込むコマンドを、.zshrcにぶち込んでおきます。

source ~/.iterm2_shell_integration.`basename $SHELL`

自動プロファイル切り替え(Automatic Profile Switching)

これは、例えばリモートサーバにログインした時に、あらかじめ設定しておいたプロファイルに自動的にスイッチする、みたいなことを実装できる機能。

「iTerm2 > Preferences… > Profiles > Advanced > Automatic Profile Switching」

から設定できるみたいなんですが、全然うまくいきませんでした。

困った時のstack overflowで解決。下のリンク、”for zsh users …”以下の設定をリモートホストで行えば、設定完了。

参考:iTerm 2 profiles
http://stackoverflow.com/questions/8598021/iterm-2-profiles

セッションの復旧(Session Restoration)

日本語がちょっと変かもしれませんが、要はローカル用tmuxです。公式ページによると、「iTerm2 upgrades, force-quit, or crashes」で中断したセッションを復旧できると!すごく長いジョブを走らせていた時に、突然クラッシュしてしまった場合とかは便利かもしれません。実際に試してないので、なんとも言えませんが。

ターミナル上でのインライン画像(Inline Images)

iTerm2 2.9から実装された機能のようですね。catはテキストファイルの中身を表示するコマンドですが、これの画像版という感じ。iTerm2のページに詳細が載っています。

ここから、imgcatというbashスクリプトをダウンロードできます。ダウンロードして、実行すると(画像をクリックするとgifアニメーションが走ります)、
imgcatの動作確認
おお!こりゃいい!

バッジ(Badges)

ターミナル上の右上に、好きなテキストを常時表示できるような機能です。固定文字列でもいいですし、環境変数も使えます。

「iTerm2 > Preferences… > Profiles > Advanced > General」

に行くと、「Badge:」と書いてある部分が、デフォルトでは空白になっていると思います。ここに、例えば、

\(session.username)@\(session.hostname)

と入れると、
iTerm2のバッジ
こんな感じの文字列がiTerm2の右上に表示されます(文字の色は「Profiles > Colors」から変更できます)。

もし、Shell Integrationのインストールがうまく行ってない場合は、環境変数\(session.username)の読み込みに失敗して、名前が表示されません。私はこれでshell integrationがうまくいっていないことに気づきました。

パスワードマネージャ(Password Manager)

これは便利そうですね。ただ、私は1Passwordを使っていますので、この機能は使わないと思います。iTerm2から1Passwordに記録してあるパスワードに直接アクセスできるようなAPI(プラグイン?)が出来ればいいなー、と思ってます。

閉じたセッションを元に戻す(5秒以内)(Undo Close)

iTerm2のタブ、もしくはウィンドウを閉じた時に、Command+zで元に戻せるみたいです。5秒間だけ待ってくれるみたいですね。間違えて閉じた時なんかは便利かもしれません。

左にタブ(Tab Bar on Left)

左側にもタブが置けるようになったみたいです。

iTerm2で左側にタブ

また、大量にタブを開いて、どこに何があるのか分からなくなっても、「Views > Open Quickly」(またはCommand + Shift + o)という機能を使うえば、様々な条件(最近使ったコマンド、プロファイル名等々)から検索を掛けることが出来るみたいです。例えば、ログインしているリモートホスト名(e.g. example.com)で検索をかけると、そのホストにログインしているタブに飛んだりできます。

動的プロファイル(Dynamic Profiles)

プロファイル切り替えを動的にする機能?だと思いますが、使っていないので分かりません。自動生成も可能みたいな記述もあったので、かなり色々出来そうです。

カーソル表示アシスト(Cursor Location Assistance)

「Views > Show Cursor Guides」(またはoption + Command + ;)から、カーソルガイド(現在いる行)を強調表示できるようになります。

iTerm2でカーソル強調表示

タイムスタンプ表示(Timestamps)

「Views > Show Timestamps」(またはShift + Command + E)で、コマンドが実行された時の時刻が、ターミナルの右側に表示されるようになります。

iTerm2でTimestampsを表示

Captured Output

Shell Integrationをインストールしておく必要があります。

「iTerm2をIDEに」がキャッチフレーズの機能です。これは、「Trigger」に「Captured Output」として何かしらの正規表現を定義しておくと、それにマッチした文字列をtoolbeltに表示する、という機能です。これは、例えばコンパイル時のエラー検出に使えます。また、toolbelt上のエラーをクリックすると、iTerm2上でそれが表示されている行に飛び、さらにダブルクリックするとCoprocessという機能で、「コンパイル時にエラーを吐いたファイルの特定の行に飛ぶ」ということが出来るみたいです。

TriggerにCaptured Outputをセット

Triggerは

「iTerm2 > Preferences… > Profiles > Advanced」

の一番上にあります。
iTerm2でTrigger設定、Captured Output
Trigger欄にある「Edit」をクリックすることによって、新しいTriggerを追加することができます。

iTerm2でCapture Output設定

で、実際にTriggerを追加したのが、上の画像です。このように、Capture Outputに正規表現をセットすることが出来ます。

設定の順番は(1) Action -> (2) Regular Expression、が良いかもしれません。私は(1) Regular Expression -> (2) Actionでセットしようとしたら、Actionから「Capture Output」をセットした瞬間、Regular Expressionに入力した文字列が消滅したので、泣く泣く打ち直しました。Trigger設定では、なぜかペーストが出来ません。

iTerm2のページで書かれている正規表現の例

^([a-zA-Z0-9+/.-]+):([0-9]+):[0-9]+: (?:error|warning):

ですが、多分

^([a-zA-Z0-9+\.-]+):([0-9]+):[0-9]+: (?:error|warning):

が正解です(真ん中らへんの/\)。

正規表現確認には、Regexperが、視覚的に確認できるので大変便利です。

この状態で、例えばSwiftのソースコードでコンパイルエラーを出すと、
iTerm2、Capture outputにエラーを表示
こんな感じで、エラーメッセージがtoolbeltに表示されます。

Coprocessを使って、エラーが出ている場所をviで開く

Coprocessは先程の「Trigger」で設定できます。上の画像ではすでにCoprocessとして

echo :e \1; sleep 0.5; echo \2G

というコマンド群が「Parameters」セットされています。これもiTerm2のページからのコピペです。Toolbelt上のCapture outputに表示されているメッセージをダブルクリックすると、このコマンド群が起動します。ただし、このコマンドはvi(vim)を開いていることを前提としていますので、iTerm2のシェル上からでは起動しません。

まとめ

Version3では色々な機能が追加されていますが、個人的には、inline imageの表示、シェル統合が面白そうだと思いました。シェル統合には、他にも色々機能がありそうなので、使いこなせると作業がさらに捗る、かもしれません。

スポンサーリンク
広告1
広告1

シェアする

フォローする