Rustベースのモダンなterminal 、 Warp
Introduction
Warpは、生産性と使い勝手を考えて再設計されたRust製のterminalです。
先日パブリックベータが開始され、誰でも使えるようになりました。
※現在はMacのみ。他のプラットフォーム近日対応予定とのこと
完全Rustネイティブのアプリで、GPUでレンダリングするので高速です。
いまの開発に適した、モダンな機能をそなえたterminalになっています。
Why Warp?
ここに、なんでいまさらterminal?
の理由が書いてます。
かんたんにまとめると、
- 開発者ならコードエディタとターミナルは絶対使う
- コードエディタはどんどん進化してるがterminalは昔から変わってないから再開発した
- Warpの入力は最新のテキストエディタみたいに使える。出力はnotebookみたいに使える。
- よく使うコマンドをsuggestionしたり、ワークフロー機能でコマンド入力を楽にする
みたいな感じです。
Warpは開発者が使いやすくなるようterminalを機能させます。
Environment
以下の環境で試しました。
M1 macでも問題なく動きます。
- MacBook Pro (13-inch, M1, 2020)
- OS : MacOS 11.3.1
Setup
ここからWarp.dmgをダウンロードしてインストールします。
途中でGithubの認証が入りますが、
Githubアカウントのメールへアクセス可能にするための処理になります。
これはベータ版のみの処理のようで、
正式リリース時にはGithub経由のログインは不要になるとのことです。
Try Warp
Warpを起動したら普通にterminalとしてそのまま使えます。
タブでコンソール分割できるし、1つのタブ内で分割することもできます。
(⌘ + Dでsplit、⌘ + Wでclose)
⌘ + PでCommand Paletteが表示。
目的のショートカットを検索するにはここで探しましょう。
入力時、Shift + Enterで複数行の入力も可能です。
また、このとき⌘ + clickで複数行を選択して、複数行の同時入力ができます。
Blocks
Warpでは、コマンド入力とアウトプットを1つのグループ(Blocks)として扱います。
これにより、コマンドやその出力をコピーしたり、
コマンドの入出力を共有したりも可能です。
※Blocksの実現方法についてはここで解説しています
ではコマンド実行をおこなって、結果を共有してみましょう。
現在、共有したリンクは誰でもアクセス可能なので注意してください。
適当なコマンドを入力したあと、Blocks右上のドロップダウンから
Create Permalinkを選択(もしくは⌘ + Shift + S)をします。
Create and Copy Linkボタンを押すと、Warpの管理するサーバに
コマンドと結果がアップロードされてリンクが生成されます。
このリンク先ではコマンドとその結果がコピーできます。
現状、このリンクは誰でもアクセス可能なので注意してください。
将来的には制限がかかる予定とのことです。
※詳しくはプライバシーポリシー参照
共有を取り消したい場合、アプリ右上のメニュー(⌘ + ,)からShared blocksを選択して
取り消してください。
SSH先でもWarp
terminalの役割として、リモートサーバにsshログインして作業することも多いと思います。
Warpではsshログインしたサーバでも、
入力エディタや補完機能などをそのまま使えます。
ただし、BlocksのようなWarp特有の機能は、現在bashかzshにしか対応してないので
詳しくはここを参照してください。
workflow
Warpでは、workflowという
「Warp内でコマンドを実行して共有するための機能」をもっています。
任意のコマンドをまとめたりパラメータ化でき、検索や共有も可能です。
control + Shift + Rでworkflowメニューにアクセスでき、検索や実行ができます。
↑ではgitの新しいブランチを作成して
remoteにpushするワークフローを選択しています。
フォーマットにしたがって記述すれば、自分でワークフローを定義できます。
workflowについてはここを参照してください。
In the future
現在はベータ版であり、 今後はさらに機能が追加されていく予定です。
近日公開予定されている機能としては、
ターミナル共有(複数人でのリアルタイムコラボレーション)や
ターミナルでのドキュメント実行(jupyterみたいな機能?)
があります。
また、Warpで使用しているUIフレームワークやクライアントコードベースを
オープンソース化する予定もあるとのことなので楽しみですね。
Summary
本稿ではWarpについて紹介しました。
今回触れていない機能もまだまだあるので、ドキュメントを確認してみてください。