
2026/09/12 4:46
エンジニア向け高速キーボード操作ターミナルテキストエディタ
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
txtは、開発者がターミナル内でコードに即座にアクセスする必要がある場合に特化して、Erik Hellman が構築した超高速でキーボード操作を主体とするテキストエディタです。完全な IDE の代替品ではなく、迅速な編集の補完ツールとして設計されており、フォーマットやマクロなどの複雑なタスクを、現在のウィンドウから離れずに処理できるようにしています。
このツールの直感的な体験は、最初のキー入力からすぐに編集が自然な思考の流れのように感じられるようになっています。ファイルを開く前に必須の設定やプラグインを必要としないことで、従来のエディタの複雑さを回避しています。コマンドラインにシンタックスハイライトや tree-sitter を用いた多数の言語(Rust、Python、Go、TypeScript など)に対応するコードフォールディングといった先進機能も直接統合されています。txt は Language Server に接続してインテリジェントな補完と定義の取得を実現し、Git 操作やファイルピッカーやシンボル検索などのファジィなナビゲーション機能とシームレスに連携します。macOS、Linux、Windows に対応しており、VS Code のプリセットからカスタムキーバインドまで幅広い設定オプションを提供することで、個人開発およびエンタープライズ開発のワークフローの両方に、軽量な速度と強力な機能を橋渡ししています。
本文
TXT: エンジニア向け高速ターミナルテキストエディタ
多くのターミナル系エディタは、編集開始前の準備作業(プラグイン設定、モーダル方式の習得など)が多く、GUI エディタではマウス操作による集中力断絶の課題があります。
TXT はこれらの摩擦を取り除き、**「編集動作を思考そのものとして感じられる」**ことを目指して作られています。
特徴
- 即座に起動: 追加の設定や複雑なプラグイン構成なし。
- ターミナル内で完結: マウス操作も可能で、別のツールへの切り替え摩擦ゼロ。
- 拡張性の高さ: LSP 対応ながら軽量かつ高速。
主要機能
-
構文ハイライト
- tree-sitter を採用し、Rust、Python、JavaScript/TSX、Go、Java など多数の言語に対応。
- Markdown や埋め込みコードブロックにも完全対応。
-
コード管理
- tree-sitter による正確なコード折りたたみ。
- AST 認識選択範囲: 構文木に沿ったノード選択(
で拡大、Ctrl+W
で縮小)。Ctrl+Shift+W - 接着スコープヘッダー: 関数やクラスのヘッダーをピン留め表示。
-
ナビゲーションと検索
- フージーファイルピッカー: 大規模プロジェクトでの高速移動(
)。Ctrl+P - シンボルビュー: 関数・クラス一覧への瞬時アクセス(
)。Ctrl+Shift+O - ジャンプリスト: マークの登録と履歴移動機能。
- フージーファイルピッカー: 大規模プロジェクトでの高速移動(
-
Git 統合
- ステータスバーでのブランチ表示。
- 変更行のインラインマージン、ステージング・コミット操作ダイアログ(
)。Ctrl+Shift+G
-
LSP 対応 (言語サーバープロトコル)
- インテリセンス補完、ホバー説明、定義移動、参照検索。
- プリセットサポート: Rust (
)、Go、TypeScript など主要言語の事前設定付き。rust-analyzer
-
生産性向上ツール
- スニペット: 言語固有のスニペットファイルからの読み込み(TextMate 形式)。
- キーボードマクロ: 編集シーケンスの記録・再生機能。
- コード書式整形: rustfmt、prettier などの外部ツール連携(ワンキーストローク)。
サポート: インデントスタイルや改行文字の自動検出と適用。.editorconfig
-
マウス操作
- タブ切り替え、単語選択、ホイールスクロールがスムーズ。
- スクロールしても編集カーソル位置は保持される設計。
-
カスタマイズ性
- 構成可能なキーバインド(VS Code や IntelliJ のプリセットも利用可能)。
- 外部ツールによるファイル変更時の自動再読み込み(ファイルウォッチャー)。
インストール方法
Homebrew (macOS / Linux)
最も簡単な方法です。
brew tap ErikHellman/tap brew install txt # 更新: brew upgrade txt
macOS / Linux (curl)
最新リリースバイナリを
~/.local/bin にインストールします。PATH の設定が必要です。
curl -fsSL https://raw.githubusercontent.com/ErikHellman/txt/main/install.sh | sh
Windows
PowerShell を使用します。インストール先は
%LOCALAPPDATA%\txt となり、PATH が自動的に追加されます。
irm https://raw.githubusercontent.com/ErikHellman/txt/main/install.ps1 | iex
ソースコードからビルド
Rust 環境(1.88 以降)が必要です。
git clone https://github.com/ErikHellman/txt.git cd txt cargo build --release # 結果: ./target/release/txt
使用方法
- 開く: ファイルまたはディレクトリを指定して起動します。
- ディレクトリを開くと、自動的にファイルサイドバーが表示されます。
- ヘルプ: キーバインド一覧の確認はいつでも
で可能。F1
デフォルトキーバインド
| キー | 動作 |
|---|---|
| ファイル保存 |
| アプリ終了 |
| フージーファイルピッカー |
| 現在のファイル内のシンボル一覧 |
| コマンドパレット |
| 検索 |
| 検索と置換 |
/ | AST ノードの拡大/縮小選択 |
/ | 元に戻す・再実行 |
| マッチング括弧へ移動 |
| ビューポートをカーソル中央揃え |
| Git 操作ダイアログ |
| 設定画面を開く |
※ VS Code や IntelliJ のプリセットも設定 UI(
Ctrl+,)から選択可能です。
LSP サーバーの設定手順
LSP はワークスペース単位でオンデマンド起動します。最も簡単な初期化方法は以下の通りです。
- LSP ピッカーを開く:
またはコマンドパレットの「LSP サーバー構成」。Ctrl+L - 言語を選択すると、TXT が
を自動生成します。<workspace>/.txt/lsp.toml - サーバーバイナリのインストール: TXT はバイナリを自動ダウンロードせず、ユーザーが外部からインストールする必要があります(実行時に承認が必要です)。
内蔵プリセット一覧
ピッカーに含まれる主要なプリセットと、追加で利用可能なサーバー:
- Rust:
rust-analyzer - Go:
gopls - TypeScript/JavaScript:
typescript-language-server - Kotlin:
kotlin-lsp - Java:
Eclipse JDT Language Server (jdtls) - C#:
OmniSharp - その他:
(C/C++),clangd
(Python),pyright
,lua-language-serverzls
lsp.toml
の直接編集(カスタマイズ用)
lsp.toml設定ファイル
<workspace>/.txt/lsp.toml を直接記述することで、追加引数や初期化オプションを設定できます。
enabled = true server = "rust-analyzer" # シンプルな設定 [servers.rust-analyzer] command = "rust-analyzer" # 追加引数を渡す場合 [servers.gopls] command = "gopls" args = ["serve", "-rpc.trace"] # カスタムバイナリパスと初期化オプションを指定する場合 [servers.pyright] command = "/opt/homebrew/bin/pyright-langserver" args = ["--stdio"] init_options = { pythonPath = "/usr/bin/python3" }
設定項目の役割:
: サーバー起動フラグ(false で tree-sitter のみ動作)。enabled
: 有効にするサーバーエントリの名前。server
: サーバー定義ブロック。[servers.<name>]
: 実行ファイルの名前または絶対パス。command
: 引数リスト。args
: LSP ハンドシェイク時に送信する JSON オプション(オプショナル)。init_options
ライセンス
TXT は MIT License および Apache License 2.0 のデュアルライセンスで提供されています。自由にご使用ください。
バグ報告と機能リクエスト
バグの報告や新しい機能のご提案は、GitHub Issue を作成してください。
- リポジトリ:
github.com/ErikHellman/txt/issues
バグ報告時の記載事項:
- 使用しているオペレーティングシステム
- TXT のバージョン(
で確認可能)txt --version - 問題を再現するための手順