4 ポイント 投稿者 GN⁺ 2024-08-13 | 1件のコメント | WhatsAppで共有

WezTerm 使用記

始める前に

  • WezTerm のインストールが必要
  • macOS ユーザーは Homebrew でインストール可能($ brew install wezterm

Lua について

  • WezTerm の設定は Lua で定義
  • Lua は他の動的プログラミング言語に似ていて読みやすい
  • 複雑な設定のためには Lua を深く学ぶのがおすすめ

設定ファイルとフィードバックループ

  • 設定ファイルは $XDG_CONFIG_HOME/wezterm/wezterm.lua に配置
  • 設定ファイルを変更すると自動でリロード
  • デバッグオーバーレイ(CTRL + SHIFT + L)でログを確認可能

外観設定

カラーテーマ

  • WezTerm は 1,000 個以上のカラーテーマを提供
  • 例: config.color_scheme = 'Tokyo Night'

動的カラーテーマ

  • 新しいウィンドウを開くたびにランダムでカラーテーマを変更するサンプルコードを提供

システム外観の尊重

  • システムの外観モードに応じてカラーテーマを自動で変更
  • appearance.lua ファイルを作成して設定

フォント設定

  • 既定フォントは JetBrains Mono
  • 例: config.font = wezterm.font({ family = 'Berkeley Mono' })

ウィンドウのスタイリング

  • ウィンドウの背景透過度とブラーを設定
  • 例: config.window_background_opacity = 0.9

ステータスバー設定

  • タブバー右側に Powerline スタイルのステータスバーを追加
  • WezTerm のイベント API を使用

キー設定

基本キー割り当て

  • 基本のキー割り当てを維持するか無効化可能(config.disable_default_key_bindings = true

キー割り当ての例

  • Option + Left ArrowOption + Right Arrow を単語単位の移動に割り当て
  • 設定ファイルを開くショートカットを設定(CMD + ,

マルチプレクサ機能

  • WezTerm のマルチプレクサ機能を活用
  • ウィンドウ分割ショートカットを設定(CTRL + SHIFT + P

リーダーキー設定

  • リーダーキーを CTRL + A に設定
  • ウィンドウ分割ショートカットをリーダーキーと組み合わせて使用

ウィンドウ移動

  • ウィンドウ間移動のためのキー割り当てを設定(vim 方向キーを使用)

ウィンドウサイズ調整

  • ウィンドウサイズ調整用のキーテーブルを設定
  • リーダーキーと組み合わせてウィンドウサイズを調整

プロジェクトワークスペース

ワークスペースの作成と切り替え

  • projects.lua ファイルを作成してプロジェクト切り替え関数を追加
  • プロジェクト選択時に新しい WezTerm ワークスペースを作成

GN⁺ のまとめ

  • WezTerm は Lua を使った柔軟な設定が可能で、多様なカスタマイズに対応
  • 自動リロードとデバッグオーバーレイ機能により設定変更がしやすい
  • マルチプレクサ機能とワークスペース管理機能に優れ、さまざまなキー割り当てで生産性を高められる
  • 類似機能を持つターミナルとしては Alacritty と kitty がある

1件のコメント

 
GN⁺ 2024-08-13
Hacker Newsの意見
  • 最近 WezTerm に移行してとても満足している。以前は kitty を使っていて、iTerm2 の設定やシンプルさが気に入っていた。WezTerm は標準で提供される機能がはるかに優れている。ターミナル設定は短く、エディタ画面にすべて収まる。その後はターミナルを気にする必要がなくなった

    • kitty 使用時には問題によく遭遇し、iTerm2 の機能を再現しようとしたが、kitty のメンテナーによるぶっきらぼうで見下したようなコメントに失望した
    • たとえば、「tmux を kitty でどう設定しますか?」という質問に「やめてください、tmux はバカです」という返答を受けた。結局あきらめた
  • WezTerm は GitHub の issue への対応が非常に速く、通常は 1 日か 2 日以内に問題を解決してくれる。SSH 経由の modifier キーに関する小さな問題を除けば、機能はほぼ完璧だ。速くて良い

    • 以前は Alacritty の熱心なユーザーだったが、リモート emacs のためにより良い modifier サポートが必要だった
  • Kubuntu から Ubuntu に切り替える際、Konsole の一部機能(無限スクロールバック、スクロールバック検索)が欲しかったが、Konsole をインストールしたくなかったので WezTerm を入れた。WezTerm はすぐに気に入ったが、多くの機能が見つけにくい。ドキュメントは非常に良く、作者もとても積極的で親切だ

    • たとえば、キーボードだけで大きなテキストブロックを選択する方法を見つけて一度試したが、すぐに忘れてしまい、またマウスでテキストを選ぶようになった。ドキュメントのページを再検索するよりそのほうが早い
    • ちなみに、探していたページは https://wezfurlong.org/wezterm/copymode.html
  • Mac Terminal、iTerm2、Kitty、Warp などを試したが、WezTerm に落ち着いた。設定が簡単で、速く、見た目も良い。テーマも作った

  • WezTerm の利点は何か? WezTerm は完全なクロス OS 対応で、Linux、macOS、Windows のすべてで使える。ターミナル設定を複数の OS で共有できる

  • WezTerm を約 1 年使っており、GitHub で Wez を支援している。WezTerm は素晴らしいターミナルで、開発者も素晴らしい。高速コピーやその他の copy mode を頻繁に使っている

    • MacOS ノートパソコンから仕事用の Linux マシンへ、mosh+tmux のような使い方をしている。常にセッションを走らせておき、Mac から作業マシン上で作業できる。再接続可能なセッション、ペイン、タブを提供してくれる
  • iTerm2 を使い続けている理由は「Edit->Selection Respects Soft Boundaries」機能のためだ。この機能はパイプ文字 | をペイン区切りとして解釈し、それに合わせて選択範囲を折り返す

  • 他のユーザーの意見に同意する。macOS を使い始めてほぼ 10 年になり、iTerm2 を使ってきた。最近は遅くなり始めた。cmd-tab をすると、ターミナルが表示されるまで 1 秒以上待たなければならなかった

    • いくつか代替を評価したが、気に入るものはなかった。あるターミナルはアカウント/ログインが必要で、別のものは {Java,Type}Script で書かれていて、単純なコマンドでも非同期ストリームの問題で壊れた
    • WezTerm は非常に高速で、設定可能で、標準で OneDark (base16) テーマを提供している
    • 初期設定時に cmd-left と cmd-right を lua 設定に追加する必要があった
  • Wez は Rust によるシステムプログラミングに関する本を出版予定だ

  • OT: HashiCorp 創業者が作った Ghostty に最も期待している