お前らはまだiTermの本当の力を知らない
純正Terminal、Hyper、Alacritty等を使ってるやつ、今すぐ捨ててiTermに乗り換えたほうが良い。
iTermから乗り換えた人も今一度iTermのことを知ってほしい。きっと知らない機能があるはず。
目次
- Shell統合をさっさとしろ
- Copy ModeでTerminal上を自由に動く
- Toolbeltでかゆい部分は取り除く
- バッジ機能を利用してSSH先のホスト名を表示する
- トリガーを利用して五感に訴える
- マークを設置して飛びたい場所に飛ぶ
Shell統合をさっさとしろ
これから色々と紹介していくが、とりあえずShell統合(Shell Integration)は済ましてこい。話はそれからだ。
下記コマンドでインストールは一瞬で終わる。
curl -L https://iterm2.com/misc/install_shell_integration.sh | bash
また、気に入らなかったらインストール後に.zshrcに追記される1行を削除するだけで良いのでお手軽だ。
# 下記を削除またはコメントアウト test -e "${HOME}/.iterm2_shell_integration.zsh" && source "${HOME}/.iterm2_shell_integration.zsh"
Terminal上にファイルをドラッグアンドドロップしたらSSH先でも送信できるとかあるから、まじで入れたほうが良い。
Copy ModeでTerminal上を自由に動く
まずはこれ。
Terminalに出力された文字をコピーするとき、一々マウスカーソルでピッとコピーしてるやつなんていないと信じたい。
iTerm使ってるなら今すぐCmd+Shift+C
を押せ。Terminal上をVimライクに自由に動き回ることができてコピーが可能だ。
tmuxでも出来るよってやつはとりあえず引っ込んでろ。
Toolbeltで痒い作業は行う
iTermには実は通常の画面の他に、もう一つ作業スペースが存在する。
それが「Toolbelt」。Cmd+Shift+B
でToolebeltを表示できる。
Toolbeltでは、
- ノート
- ディレクトリ履歴
- ペースト履歴
- ジョブ
- コマンド履歴
- etc...
等々結構いろんなものを表示できる。詳しくはメニューを見てくれ。
ただぶっちゃけ全部コマンド上で実現できることなので、あまり使っていない。
ビジュアル的にかっこいいから表示させている。
バッジ機能を利用してSSH先のホスト名を表示する
バッジって何やねんという方のために。
こんな感じで右上に自分の好きな文字列を表示することができる。iTerm上の設定なので、無論SSHした後でも有効。
バッジの設定方法は、Preferences > Profiles > General
で以下の用に\(user.任意の名前)
を設定する。
その後.zshrcに以下を記載。
# Shell Integration済みであること iterm2_print_user_vars() { iterm2_set_user_var 任意の名前 $(my_badge) } # バッジで表示する文字列を返す関数 function my_badge() { if [ "$USER" = "root" ];then echo "rootだよ" else echo "rootじゃないよ" fi }
iTermを再起動すればバッジが表示される。
表示させたい文字列をShellスクリプトで設定できるからかなり応用は効くと思う。
が、もう少し気楽にバッジを設定したい。
そんなときは直接Shellで書き換えることも可能。
function badge() { printf "\e]1337;SetBadgeFormat=%s\a"\ $(echo -n "$1" | base64) }
SSHする時にバッジでホスト名を表示するのは上記を利用して、下記のような形でスクリプトにしている。
.zshrc
function badge() { printf "\e]1337;SetBadgeFormat=%s\a"\ $(echo -n "$1" | base64) } function ssh_local() { local ssh_config=~/.ssh/config local server=$(cat $ssh_config | grep "Host " | sed "s/Host //g" | fzf) if [ -z "$server" ]; then return fi badge $server ssh $server }
トリガーを利用して五感に訴える
トリガーはProfile > Advance
から設定できる。拾いたい文字列を正規表現で設定し、引っかかった場合にしたいActionを設定するという流れ。
これの良いところはiTermで設定をするので、SSH先等で設定せずに済むところ。本番サーバーなどでzshrcの設定を入れられないようなところでも動作するのがGOOD。
あとは諸事情でデバッガが使えず、printf
やvar_dump
など出力でしかデバッグできないときちょっと便利かもしれん。if文の中で「通ったよ」みたいなデバッグ文を仕込んで、それが表示されてるか目で確認するような想定ね。
ただ、Vimなどで開いた時も拾われてしまうので正規表現はきつめに設定すると良い。
また、色を変えるだけではなくコマンドも実行できる。
上記はActionに「Run Command
」、「Regular Expression」にroot@
を設定、Parametersには「(date; echo "rootになりました") >> ~/Desktop/hoge.txt
」とセットし、「root@という文字列が出現した場合に設定したコマンドを実行する」という設定をした例。
このように特定の文字列が出現されたらコマンドを実行する、といったことも出来るので応用範囲は広い。広すぎて何に使えるかわからん。
マークを設置して飛びたい場所に飛ぶ
iTermはCmd+Shift+M
でマークを設置できる。マークを設置すると一番左に▶が表示される。
設置後はCmd+Shift+J
またはCmd+Shift+↑↓
で設置箇所に移動することができる。
マークを削除したいときはCmd+Shift+K
でOKだ。
インストールコマンドなど、長いコマンドを打つ前に設置しておけば、実行が終わった後移動して上から順に処理を追うことができる。
終わり
タイトル煽ってしまっているけど、シンプルにiTermに感動したので共有したかった。
普段自分がなんとなく使っているツールも一度は本気を出して調べると知らない機能が結構あるよね。
iTermはDocumentがシンプルに見えて実はとっても充実しているので、さすがNo.1。