# コードエディタ — Liu Terminal

> Liu Terminal のコードエディタ。ターミナルウィンドウ内のシンタックスハイライト付きエディタ：エクスプローラーレール、400 以上のファイル種別に対応する 54 のレクサー、検索と置換、言語を認識するステータスバー、git diff ドック。

URL: https://liu.software/ja/docs/code-editor/  
Language: ja  
Updated: 2026-10-17

エージェントと同じウィンドウに住むシンタックスハイライト付きエディタ。シェルの横のサイドバーで開くか、タブをまるごと与えます。左にエクスプローラーのレール、右に文書、検索と置換、言語を知るステータスバー。ターミナルを離れずに。

## 開く

ファイルブラウザでコードやテキストファイルをクリックすると、ビューアペインで最初から編集モードで開きます。別の「編集」ステップはありません。Markdown は例外で、レンダリングされた状態で開き、タイトルバーに Read / Edit の切り替えがあります。

⌘ K → Code Editor は、サイドバーの細い帯ではなくタブまるごとをエディタに渡します。タブはアクティブなターミナルの作業ディレクトリで開きます。サイドバーのビューアがすでに文書を開いていればその文書が一緒に移り、サイドバー側は閉じるので、同じファイルが二か所で開かれることはありません。

## タブのレイアウト

文書を開くと、タブは小さな IDE のように配置されます。ファイル一覧は左の細いエクスプローラーレールにドッキングし、文書がウィンドウの残りを占めます。レールの各行にはファイル種別のアイコンが付き、タブバーのタブピルもファイル名の横に同じアイコンで始まります。未保存の変更は名前の後ろの琥珀色の点で示されます。

レール内の別のファイルをクリックすると文書が切り替わります。テキスト内をクリックしてキャレットを置きます。長い行は横にスクロールし、キャレットが表示列の外に出るとビューが追従します。

## シンタックスハイライト

Liu のハイライターはただ一つで、三つの面がそれを共有します。エディタ、git diff ドック、Markdown リーダーのフェンス付きコードブロックです。テーブル駆動で、言語ごとに一行がキーワード表・コメントトークン・動作フラグを持ち、400 以上の拡張子とファイル名の表の背後に 54 のレクサーがあります。だからエディタの "main.rs" とノート内の \`\`\`rs フェンスが食い違うことはありません。

- **埋め込み領域。** Vue・Svelte・Astro・HTML・Jinja・ERB ファイルはマークアップのホストです。その中の \<script\> は JavaScript 行で、\<style\> は CSS 行で字句解析されます。.js や .css ファイルを解析するのと同じコードであり、「タグから見た JS」という変種ではありません。Astro のフロントマター、{{ }} / {% %} のテンプレートタグ、\<% %\> も同じ規則に従います。
- **複数行にまたがる構文。** ブロックコメント（ネストしたものを含む）、三重引用符の文字列、テンプレートリテラルは状態を行から行へ持ち越すので、10 行目で開いたコメントは 40 行目でもコメントのままです。
- **Diff。** .patch ファイルや \`\`\`diff フェンスは、緑と赤が許される唯一の言語です。追加された行と削除された行こそが、その行の意味だからです。

## 検索と置換

検索バーは文書の右上に浮かび、入力と同時に検索します。すべての一致が着色され、現在の一致はより濃く、カウンターは "2 of 7" と読めます。開いている間、そのキーはエディタのキーより優先されます。

- `⌘ F` 検索を開く
- `⌘ ⇧ F / ⌘ ⌥ F` 検索と置換を開く
- `Enter / ⌘ G` 次の一致
- `⇧ Enter / ⌘ ⇧ G` 前の一致
- `Tab` 検索と置換フィールドを切り替え
- `Enter` 置換フィールドで：この一致を置換して次へ
- `⌘ Enter` すべて置換
- `Esc` バーを閉じる。キャレットは現在の一致に残る

## 編集キー

macOS 向けの表記です。Linux では ⌘ が Ctrl、⌥ が Alt に対応します。行コマンドはキャレットのある行に作用します。

- `⌘ S` 保存
- `⌘ Z / ⌘ ⇧ Z` 元に戻す / やり直す
- `⌘ V` キャレット位置に貼り付け
- `⌘ D` 現在の行を複製
- `⌘ C / ⌘ X` 現在の行をコピー / カット
- `⌘ ⌫` 行頭まで削除
- `⌘ ← / ⌘ →` 行頭 / 行末
- `⌘ ↑ / ⌘ ↓` 文書の先頭 / 末尾
- `⌥ ← / ⌥ →` 単語単位で移動
- `⌥ ⌫ / ⌥ ⌦` キャレットの前 / 後の単語を削除
- `Tab` スペースを4つ挿入
- `PgUp / PgDn` 20行移動

## ステータスバー

左端はキャレット位置（Ln 42, Col 17）、右端は言語・改行コード・エンコーディング（C · LF · UTF-8）です。言語ラベルはレクサーを選ぶのと同じ表から来るので、".ts" は JavaScript 行がハイライトしていても "TypeScript" と表示されます。表にない拡張子は大文字で示され、拡張子のないファイルは "Text" になります。改行コードはファイルから測定されます（CRLF が LF より多ければ CRLF）。⌘ S は一時ファイルに書いてから所定の位置にリネームするので、保存の途中でクラッシュしても書きかけのファイルが残ることはありません。

## Git の変更

アクティブなタブがリポジトリ内にあると、ステータスバーの git セグメントにリポジトリ、ブランチ、+N −M のバッジが表示されます。それをクリックするか、⌘ K → Toggle Git Changes を実行すると、作業ツリー全体の diff が右側にドッキングします。それは diff であり、それ以外の何物でもありません。二列の行番号ガター、行ごとの全幅の着色、行がスクロールしている間も上部に固定されるファイルごとのカードヘッダー、長い行のための横スクロール。diff は決して折り返してはならないからです。git の呼び出しはワーカースレッドで実行されるため、大きなリポジトリのコールドな diff がフレームを止めることはありません。

[次へ Markdownビューア →](https://liu.software/ja/docs/markdown.md)
