【Mac OS 13 Ventura・2022年度版第7弾】新しい Mac を手に入れたらやること一式【モダンな CUI ツール – Warp 編】 

さて、先日の記事で「このあとは Mac OS 13 Ventura でのアプリケーションのセットアップの記事を書く」と宣言したので(笑)、ここからは個別のアプリケーションの(僕が使う設定での)初期セットアップを簡単に解説していこうと思う。

自分の悪い癖で、記事を書き始めるとめちゃくちゃ長くなってしまうのが常なので(笑)、できるだけ簡潔に書くよう心がけます、はい。

あ、もちろん全部のアプリケーションについて書き始めるとあと1年は確実に必要になるので、僕の開発・制作環境(WordPress のサイト制作)で使う場合にメインになるもの、という前提で。だからせいぜい多くて5つくらいになるかな…?

iTerm2 + fish

さて、まずはターミナルの上位互換と言うべきか、ターミナルの操作を便利にするアプリケーション iTerm2 について解説していこう、と思っていたのだが…。

あれこれ調べていたらたまたま Warp というのを見つけたので、そちらを使ってみることにさっき決めた(笑

これまで使っていた iTerm2 について、特になにか不満があったわけではない。必要十分な機能はもちろん備わっているし、特に困っていることもなかった。
ただ、今回のこのタイミングでちょっと環境を変えたい、と思っているものがあった。

それが fish shell だ。

fish shell

僕が Web の仕事を始めたのがだいたい10年くらい前なのだが、その頃から既にターミナル(このときから iTerm2)を使ってコマンドラインからの操作をしていて(そう教わったから使っていただけなのだけれど)、そのときに「自動で補完してくれてターミナルを便利に使える」という理由で教えてもらったのが fish だった。fish も Bash や Zsh 同様シェルスクリプトのひとつだ。
いまでこそ fish shell ライクな機能はいろいろなターミナルで機能拡張があったり、直接実装されていたりするが、当時は(たぶん)fish くらいしかなくて、まだターミナルの操作がおぼつかない自分にはとても使いやすく感じた。無味乾燥なターミナルの画面上のあちこちに出てくるアイコンも良かったし(笑

その頃は Mac のターミナルには Bash が搭載されていたのだが、(たぶんライセンスの問題から)それが Zsh に変わったこともあって、「どうせならこのタイミングでなにか fish みたいに使えるシェルかターミナルアプリに変えてみたいな」と探していたところでもあったので、今回のアップデートを機に Warp を使ってみようと思いたった、というわけ。

Warp

とりあえずよくわかってないけど(笑)まずはとにかくインストールから。

Warp のインストール

イマドキの新しいアプリケーションなので、当然のごとく Homebrew からのインストール。検索するとちゃんと出てくる
残念ながら、現時点では Mac 用としてしかリリースされていないようだが、Windows 用もきっとすぐリリースされるだろう。

brew install --cask warp

これだけでインストールは完了。

今回はちょうどこのインストールの直前に Mac OS 13 Ventura にアップデートし、それに伴って XCode も14.1へバージョンアップした。

このとき、改めて XCode のライセンスへの同意が必要。
まぁちょっとした手間ではあるけれど、これがないとコマンドラインからの操作にあれこれ支障が出るのでやっておこう。

コマンドは以下のとおり。

sudo xcodebuild -license accept
XCode のライセンスに同意してから、改めて Homebrew 経由で Warp のインストール

あ、せっかくだから Homebrew のフォーミュラもアップデートしておこう。

brew upgrade

これで Warp がインストールできたから、早速起動してみよう。

まずは Warp を起動

最初に Warp を立ち上げるとまず Sign up を求められる。

Warp を最初に起動したときの画面。Sign up を求められる。

「Sign up」のボタンをクリックすると登録の画面が開く。
GitHub か Google のアカウントからログインするか、新たにメールアドレスから登録するか選択できる。

GitHub、Google アカウントとの連携でも Sign up できる
今回僕は GitHub と連携

GitHub のアカウントと連携すると、GitHub のモバイルアプリケーションで認証を要求される。このあたりは他のサービスでも同様のものがあるから戸惑うことはない。

Sign up してからアプリケーションの画面でいくつか質問に答えていくといよいよアプリケーションの操作画面になる。

Sign up した直後の Warp の画面
いくつか質問に答えていくといよいよ Warp が利用できる

とりあえずちょっと触ってみる

起動直後の画面はこちら。

Warp が立ち上がった直後の画面

僕はデフォルトでダークテーマにしているが、もしデフォルトがライトテーマだったり自動設定にしていたら背景色は違うかも…。

見た目はちょっと小洒落た感じ(笑)。
早速ちょっとコマンドを入力してみよう。

「br…」と入力したところで候補が表示される
そのまま右キー(▶)を押下すると補完されたコマンドが入力される

このあたりの補完は iTerm2(+ fish)でも同様。こういった補完がデフォルトで実装されているのは後発のアプリケーションのメリットだろう。
シェルスクリプトそのものは Mac デフォルトの Zsh のままで、特にまだ設定や機能拡張のインストールなどはしていない状態だ。

また、今回スクリーンショットは撮っていないけれど、ターミナル画面をタブで分けて左右2画面や上下2画面で表示したりもできる。ローカルとサーバーの双方に接続しているようなときに便利!

(せっかくなので)そのまま brew upgrade を走らせる
コマンドプロンプトが出ている状態で上キー(▲)を押下すると、これまで入力したコマンドの履歴が表示される

iTerm2(+ fish)でも、コマンドプロンプトが出ている状態で上キー(▲)を押下するとこれまで入力したコマンドの履歴が表示されるのだが、iTerm2(+ fish)の場合は履歴のコマンドがひとつずつ表示されていた。
過去に入力したコマンドに戻っていくために上キー(▲)を連打する必要があるのは一緒だが、こうやって履歴が一覧で表示されているとどのコマンドかがひと目でわかって更に使いやすそうだ。

というか、これは Warp の機能ではないだろうけど、ちゃんとさっきまでターミナル.app で入力していたコマンドがそのまま引き継がれるんだね。ありがたい。

また、Warp には更に便利な機能がある。

Warp ならではの便利機能

1.「ブックマーク」機能

Warp では「ブロック」という考え方があって、コマンドの入力から実行→完了までをひとかたまりの「ブロック」と考える。
ブックマークはその名のとおり「コマンドの入力から完了までをブックマークする」ということだ。

写真ではだいぶ見にくいが、コマンドが完了したあとにブロックの区切り線が入っている
「ブロック」の右上にブックマークボタンがある

ブックマークしておくと、そのコマンド(というか一連のコマンドの実行内容からコマンドが完了するまでの「ブロック」)にスクロールできるようになる。例えば実行内容をあとから参照したいようなときに便利だ。

2.「ブロック」のコピー機能

ブロック右上の縦三点リーダー(︙)からブロックのコピーができる。ショートカットも用意されている

これもなかなか有効。コピーのメニューには

  • コマンドのコピー
  • 出力のコピー
  • 両方のコピー

などが用意されており、例えば社内 Slack なんかで共有するのに便利だ。
「Create Permalink…」という項目があって、なにかと思ったら

ブロックの中身を外部と共有するリンクを生成する…

ブロックのコンテンツを外部と共有するリンクを生成するという…ちょっとびっくり。
試しにリンクを生成してみたら https://app.warp.dev/block/xxxxxxxxxxxxx という URL でリンクが生成されて、ブラウザで表示してみたら普通にコードスニペットのようにテキストの状態で表示された(笑

ブロックまるごとテキストの状態でウェブ上で共有

コマンドラインでの操作・実行結果をウェブ上で手軽に共有できるのはとてもいいことだけど、

  • コードがアップロードされているサーバーは Warp のサーバー
  • URL がわかれば誰でもアクセス可能(シークレットウィンドウで確認済み)

なので、公開状態になっても差し支えないコードに限られるかな…。
社内とかでの共有ならばブロックをコピーして Slack にペースト、とかが現実的かも。
こちらの記事によると将来的には制限がかかる予定とのこと)

とはいえこのあたりは iTerm2(+ fish)では実現されていなかったことなので、よりオープンソース向けに特化したターミナルアプリ、と言えるのかもしれない。

そのほかいくつかの気になる機能

詳しくは公式ドキュメントを参照いただきたい。日本語での情報はまだあまり多くはないが、こちらとかこちらが参考になりそう。僕も参考にさせていただいた。

エディターライクな編集画面

これはめちゃくちゃ期待できる…!

例えば複数カーソルを表示して一括して同じ入力ができるなど、モダンなエディターを使っているかのような入力に対応している。
これちょっとすごくないですか…!!

A.I. Command Search

ここにも AI 化の波が…!!(笑
「21世紀のターミナル」を謳っているだけのことはある。

「それっぽいこと」を入力すると、それに対応したコマンドがサジェストされるという仕組み。
もうコマンドをいちいち覚える必要なかったんや…!

実際使ってみての評価になるけれど、日本語入力にも対応しているようでこれも期待できる。
公式ドキュメントはここ

Workflow

これもまさにモダンなエディターのような機能。
用途に合わせたワークフローが各種用意されており、そこから選ぶだけでよく使う一連のコマンドが入力できる。

ユーザー独自のワークフローも追加できるので、各自の環境に合わせて登録していけば黒い画面もコワクナイヨ(笑

Command Palette

⌘ + P でCommand Palette が利用できる。
テキストエディタの Sublime TextVisual Studio Code などでもおなじみ。このあたりが同じように使えるのはさすがモダンなターミナルならではと言える。

SSH 接続先でも利用できる

SSH ログインしたサーバーでも、 Warp の機能(補完など)をそのまま使える(!!)。

これもだいぶ嬉しい。
ブロックの機能についてはシェルが Bash か Zsh の場合に限られるようだが、それでも全く補完が効かないサーバーでコマンドをどこかからコピペしてくるよりは全然効率的。詳細はこのあたりに記述がある。

ブロックが使えるなら、例えばブロックのコピーの機能を使ってサーバーでのコマンドの実行結果を Slack などにペーストして簡単に共有できることになる。
これってちょっとすごくない?これまではわざわざ選択してからコピーするしかなかったので、こういったことが手軽にできるのは大歓迎だ。

いまはまだ SSH キーの設定とかをしていないのでこの機能はまだ試していないが、これだけでも期待が高まる。早く使ってみたい!!

Warp の設定

やっぱり設定に到達するまでにもうだいぶかかっている気がする(笑
この記事も結局長くなりそうだ…。わかってたけど。

ではいよいよ設定へ。
設定画面はメニューバーの Warp > Preferences から Settings を選んで開くことができる。

設定画面はメニューバーのプルダウンから Preferences > Settings を選ぶ

Settings > Appearance

最初の「Account」は割愛。2番めの「Appearance(見た目)」の設定から。

Appearance の設定画面

最初の「Theme」は全体の色味の設定で、現状 Dark になっているのでこのままで OK 。
カスタムテーマも作れるようだけれど、それはまぁ余裕があったら…(笑

2番めの「Blocks」の「compact mode」をオンにすると、行間が詰まって一般的なターミナルの画面のような表示になる。
いまのところでは行間が空いていたほうが見やすく感じるのでここもこのままで。このあたりは使い勝手に関連するところなので、使ってみて違和感があったら変えてみようと思う。

そして3番めのフォント。これは絶対に変える(笑

表示するフォントをデフォルトの「Hack」から「Myrica M」に。うっすら透けて見える Warp のフォントが変わっているのがおわかりいただけるだろうか?

ここはちょっとだけこだわりがあって、これまでの iTerm2 の環境でもずっと Myrica M を使っていた。ちなみにテキストエディタの Sublime TextVisual Studio Code でも Myrica M を設定して利用している。

Myrica というフォントはこちらで公開されているフォントで、英文字は Inconsolata、日本語文字は源ノ角ゴシックを TrueType 化した源真ゴシックを合成したフォントになる。

  • Myrica M:等幅フォント
  • Myrica P:(制作者いわく)なんちゃってプロポーショナルフォント
  • Myrica N:全体の文字幅を狭くしたフォント

の Myrica ファミリーの他に、日本語フォントを Mgen+ ベースにした MyricaM ファミリーもある。

Myrica M を使う前は Ricty を使っていたのだが、日本語フォントの Migu 1M のクセが少々気になっていたので、源真ゴシック(源ノ角ゴシック)ベースの Myrica M がリリースされたのに合わせてこちらへスイッチして以来ずっと使わせていただいている。

僕自身見慣れているので、基本的によほどのことがない限りはこのフォントを使っていくだろうということで今回も Myrica M に。

Settings > Features

ここでは細かな設定を簡単に有効・無効の切り替えができる。
初期設定画面はこちら。

細かな設定がずらっと並ぶ
画面をスクロールするくらい設定項目は多い

設定項目一覧

いまの時点での設定項目をざっと並べると(日本語訳は正しくないかもなので詳細は公式ドキュメントを!)

  • 新しいタブでのショートカット画面
  • 選択時にコピー
  • 引用符や括弧のオートコンプリート
  • 起動時のウィンドウ、タブなどの復元(ウィンドウを閉じたときのセッションを復元)
  • 【初期無効】ユーザーのカスタムプロンプトを優先
  • (たぶん)SSH 接続時の Warp の利用
  • ホバー時にコマンドインスペクタを起動
  • コマンドのエラーに下線を表示
  • コマンドのシンタックスハイライト
  • 入力中に補完メニューを開く
  • 【初期無効】左 option キー(⌥ キー)はメタ(?)
  • 【初期無効】右 option キー(⌥ キー)はメタ(?)
  • マウスイベントのサポート
  • スクロールイベントのサポート
  • ファイルのリンクを開くエディターを選択
  • リンククリック時にツールチップを表示
  • 【初期無効】ホットキー設定(フォーカスに関わらず Warp の表示・非表示の切り替えを可能にする)
  • 【初期無効】デスクトップ通知

「option キー(⌥ キー)はメタ」っていう設定がよくわからない(笑)。option キーだけを押したときになんかのメタ情報が表示されるってこと?このあたりは覚えていたら触ってみるかも…。

ここで設定するのは「ファイルのリンクを開くエディターを選択(Choose an editor to open file links)」の項目だけ。

「Default App」のプルダウンを開く
VSCode をメインに使っているので「VSCode」を選択する

ここでの設定らしい設定はこれくらい。

Settings > Shared blocks

ここでは外部に共有したブロックを一覧で確認できる。もちろん、個別にリンクを取得したり共有から削除することもできる。

「Copy link」ボタンで共有の URL が取得できる
右上の︙アイコンをクリックして共有を解除できる

共有されたブロックを削除したいときは、ますブロックの右上にある縦三点リーダー(︙)から「Unshare」をクリックする。
すると「リンクにアクセスできなくなるしサーバーからも削除しちゃうけどいいの?」と聞かれるのでそのまま「Unshare」ボタンをクリック。
これで共有されたブロックが削除される。

縦三点リーダー(︙)から「Unshare」をクリックすると確認が表示される
「Unshare」ボタンをクリックすると共有から削除される

先ほども書いたのだが、この「Shared blocks」は URL さえわかれば誰でもアクセスできるので取り扱い注意。

うっかりスクリーンショットの中の URL にぼかし入れるの忘れてた(笑)けど、もう削除しちゃったのでこの URL にアクセスしてもなにも表示されないからまあいいよね…。

Settings > Keyboard shortcuts

キーボードショートカットも一覧が用意されていて、この画面の中で編集もできる。
これまで使っていたショートカットに合わせたいようなときに便利。また、いつも使っているアプリケーションとショートカットが被っているようなときも簡単に上書きで変更できるのはありがたい。

キーボードショートカットの一覧。これも画面がスクロールし、多くの機能にショートカットが当てられているのがわかる
ショートカットの編集も手軽にできる。一般的に意外とショートカットの編集が面倒な印象があるので、これも隠れた嬉しい機能。

最後の「About」は割愛。

初期設定のタブの中のメニューには「Settings」のほかに「Configure Keyboard shortcuts…」「Appearance…」が用意されているが、これは前述の内容と同じ画面が開く。

「Configure Keyboard shortcuts…」「Appearance…」は「Settings」の中から開くメニューと同じ

最後にもうひとつ設定

直接 Warp の設定ではないのだけれど、もうひとつ設定を。

僕が制作作業をするときは、ターミナルはほぼ必ず利用する。なのでこれまでも iTerm2 は「ログイン項目」に入れていた。
だから今回も Warp をログイン項目に追加しておこう。

で、いつものように「環境設定 > ユーザーとグループ」を開くと…ログイン項目がない…??あれ??

「ユーザとグループ」に「ログイン項目」がない…?
探したら「一般」に移動していた。Mac OS 13 Ventura で変わったのかな?

いつの間にか「一般」メニューの中に移動していた(笑

「ログイン項目」への追加方法は特にこれまでと変わりない。「+」アイコンをクリックして追加したいアプリケーションを選ぶだけだ。

ログイン項目に Warp を追加する
追加されると一覧に表示される。このあたりは特に変わらない

これで無事に Warp の初期設定が完了した。
うわーやっぱり長いじゃん…(笑

まとめ

やっぱり長くなってしまってごめんなさい(笑
まぁこれまで使ったことのない新しいアプリケーションだから、そんな気もしていたし仕方ない…?

こうやって機能をひとつずつ書き出してみると、(ターミナルとしては)かなり最新機能が追加されていて期待が膨らむ。
これまで iTerm2 に fish を入れて利用してきたとはいえ、ターミナル操作は単純作業(コマンドの入力だけ)に使うことがほとんどなので「これがメイン」となることはなかった。ただ、これからはちょっとその役割が変わってくるかもしれない。そう予感させる、久しぶりに「ワクワクする」アプリケーションだということは間違いない。

ではここで決め台詞を。

オラ、ワクワクすっぞ!←