# XFiler マニュアル

このドキュメントでは、XFilerの基本的な使用方法と操作について説明します。

## 目次

1. [ファイラー画面の操作](#ファイラー画面の操作)
2. [テキストビュアーの操作](#テキストビュアーの操作)
3. [画像ビュアーの操作](#画像ビュアーの操作)
4. [Markdownビュアーの操作](#markdownビュアーの操作)
5. [タスク一覧の操作](#タスク一覧の操作)
6. [JavaScriptマクロ](#javascriptマクロ)
7. [設定について](#設定について)

---

## ファイラー画面の操作

ファイラー画面はアプリケーションのメイン機能であり、2画面分割型のインターフェースでファイル操作を行います。  
基本的な操作はキーボードで行えるように設計されています。

※ キー操作はデフォルトの場合です。

### ナビゲーションと移動

| キー操作 | アクション | 動作 |
|:---:|:---:|:---|
| **↑ / ↓** | - | カーソルの移動（上下） |
| **PageUp / PageDown** | - | ページスクロール |
| **← / →** | - | 左右のペイン（ファイルリスト）間のフォーカス切り替え |
| **Enter** | - | ディレクトリや圧縮ファイルの中に入る、または内蔵ビュアーでファイルを開く |
| **Shift + Enter** | - | 拡張子に割り当てられたアプリを起動する。実行ファイルの場合は引数を指定して実行 |
| **BackSpace** | - | 親ディレクトリへ移動 |
| **￥** | - | ドライブのルートディレクトリへ移動 |
| **L** | ChangeDrive | ドライブ選択ダイアログを表示 |
| **Ctrl + L** | ChangeDirectory | ディレクトリ/ファイルパスの直接入力モードへ移行 |
| **J** | JumpFavorite | 登録ディレクトリの選択ダイアログを表示 |
| **H** | JumpHistory | ディレクトリ履歴の選択ダイアログを表示 |
| **O** | SyncPath | 現在のペインのディレクトリを反対側のペインのディレクトリに合わせる |
| **テンキー 3 / 4 / 5 / 6** | - | それぞれ C: / D: / E: / F: ドライブへ移動 |
| **テンキー 0** | - | %TEMP% (一時フォルダ) へ移動 |
| **Tab** | - | ファイル操作のタスク一覧を表示 |
| **Esc** | - | ファイラーを終了 |

### ファイル選択（マーク）

ファイルに対する操作（コピー、移動など）を行う対象のファイルを「マーク」します。  
マークされていない場合はカーソル位置のファイルが操作の対象になります。

| キー操作 | アクション | 動作 |
|:---:|:---:|:---|
| **Space** | - | カーソル位置のアイテムのマークを反転（ON/OFF）し、下に移動 |
| (割当なし) | MarkAllFiles | カレントディレクトリ内の**すべてのファイル**をマーク |
| **Home** | ToggleMarks | カレントディレクトリ内の**すべてのファイル**のマークを反転（ディレクトリは除く） |
| **Ctrl + Home** | ToggleMarks | カレントディレクトリ内の**すべてのファイルとディレクトリ**のマークを反転 |
| **End** | - | すべてのマークを解除 |
| **W** | BulkMark | 条件指定で一括マークするダイアログを表示 |

※ MarkAllFiles/ToggleMarksはキーに割り当てる場合はオプションでディレクトリを含む/含まないを指定可能

### ファイル操作

| キー操作 | アクション | 動作 |
|:---:|:---:|:---|
| **C** | Copy | 選択したアイテムを反対側のペインへ**コピー** |
| **M** | Move | 選択したアイテムを反対側のペインへ**移動** |
| **D** | Delete | 選択したアイテムを**削除** |
| **R** | Rename | カーソル位置のアイテムの名前を**変更**（リネーム） |
| **K** | MakeDirectory | 新しい**ディレクトリ（フォルダ）を作成** |
| **N** | CreateNewFile | 新しい**ファイルを作成** |
| **I** | GetDirectorySize | 選択した**ディレクトリのサイズを計算** |
| (割当なし) | MoveOrMakeDirectory | マークしていれば**移動**、マークしていなければ新しい**ディレクトリを作成** |
| **E** | RunEditor | カーソル位置のファイルを外部エディタで開く |
| (割当なし) | ExternalProgram | 登録した**プログラムを実行**します |
| **V** | ViewFile | カーソル位置のファイルを内蔵ビュアー（テキスト/バイナリ）で開く |
| **P** | Pack | 選択したアイテムを**圧縮**（Pack） |
| **U** | Unpack | 選択したアーカイブファイルを**解凍**（Unpack） |
| **T** | CreateShortcut | 反対側のペインに**ショートカットを作成** |
| **Ctrl + C** | CopyPath | カーソル位置のアイテムの**パスをクリップボードにコピー** |

### タブ操作・その他

| キー操作 | アクション | 動作 |
|:---:|:---:|:---|
| **Ctrl + T** | NewTab | 新しいタブを開く |
| **Q** | CloseTab | 現在のタブを閉じる |
| **Alt + ← / →** | - | 表示するタブを左右に切り替える |
| **S** | Sort | ソート順（名前、拡張子、サイズ、日付）の設定ダイアログを表示 |
| **F** | FileSearch | ファイル名のインクリメンタルサーチ |
| **F11** | ToggleFullScreen | 全画面表示の切り替え |

---

## テキストビュアーの操作

ファイルが画像やMarkdownでもない場合はデフォルトでテキスト(バイナリ)ビュアーが別タブで開きます。  

| キー操作 | 動作 |
|:---:|:---|
| **↑ / ↓ / ← / →** | スクロール |
| **PageUp / PageDown** | ページスクロール |
| **Home / End** | 先頭 / 末尾へ移動 |
| **F** | テキスト検索 |
| **N** | 次を検索 (Find Next) |
| **Shift + N** | 前を検索 (Find Previous) |
| **W** | 行の折り返し (Word Wrap) の切り替え (ON/OFF) |
| **B** | バイナリ・16進数ダンプ表示 (Binary View) の切り替え |
| **C** | 文字コード切り替え (Shift-JIS / UTF-8) |
| **E** | 外部エディタで開く |
| **V** | Markdownビュアーに切り替える (Markdownファイルのみ) |
| **Esc / Enter** | ビュアーを閉じる |

※ **C**キーでの文字コード切り替えは、バイナリモードでは表示文字のデコード変更を行います。

---

## 画像ビュアーの操作

画像ファイルを開くと、画像ビュアーが別タブで表示されます。

| キー操作 | 動作 |
|:---:|:---|
| **↑ / ↓ / ← / →** | スクロール |
| **N** | 次の画像を表示 (Next) |
| **B** | 前の画像を表示 (Back) |
| **Home** | 拡大縮小モードの切り替え（ウィンドウに合わせる / 等倍表示） |
| **R** | 画像を時計回りに90度回転 (Rotate) |
| **Shift + R** | 画像を反時計回りに90度回転 |
| **F** | 画像補間フィルタの切り替え（ドット絵用など） |
| **A** | アルファチャンネルの表示モードの切り替え（アルファ込み/アルファ抜き/アルファのみ） |
| **Esc / Enter** | ビュアーを閉じる |

---

## Markdownビュアーの操作

Markdownファイル (.md) を開くと、整形された状態で表示されます。  
(簡易表示です)

| キー操作 | 動作 |
|:---:|:---|
| **↑ / ↓** | スクロール（上下） |
| **← / →** | ページスクロール (設定「左右キーでページ送り」が有効な場合) |
| **PageUp / PageDown** | ページスクロール |
| **Home / End** | 先頭 / 末尾へ移動 |
| **Backspace** | 前のファイルに戻る (同一タブで遷移した場合の履歴) |
| **E** | 外部エディタで開く |
| **V** | テキストビュアーに切り替える |
| **Esc / Enter** | ビュアーを閉じる |

---

## タスク一覧の操作

ファイル操作（コピー、移動、削除など）の状況を表示するウィンドウです。

| キー操作 | 動作 |
|:---:|:---|
| **↑ / ↓** | リスト内のタスクを選択 |
| **Ctrl + C** | 選択中のタスクを中断（キャンセル） |
| **Del** | 選択中の完了・中断済みタスクを一覧から削除 |
| **Esc** | ウィンドウを閉じる |
| **Tab** | ウィンドウを閉じる（※設定「タスク一覧をTabではなくESCで表示する」が無効な場合のみ） |

---

## JavaScriptマクロ

XFilerではJavaScriptを使用して、独自の機能を追加したり操作を自動化したりすることができます。

詳細な使い方やAPIリファレンスについては、[マクロガイド](Macro.md)を参照してください。

### 基本的な使い方
1. `XFiler.exe` と同じ場所にある `macro` フォルダに `.js` ファイルを作成します。
2. ファイル内で `XFiler.RegisterCommand` を使用して、コマンドIDと表示名を登録します。
3. XFilerを起動（または再起動）すると、タイトルバーの右クリックメニューの「マクロ」から実行できるようになります。
4. `ExecuteMacro` アクションを任意のキーに割り当てることで、キーボードからマクロ選択ダイアログを呼び出すことも可能です。

---

## 設定について

画面上部のタイトルバーを右クリックで表示されるメニューから設定を行うことができます。

### 設定
アプリケーションの全般的な動作や外観をカスタマイズするウィンドウを開きます。

1.  **動作全般**
    *   **ウィンドウ位置復元**: 起動時に前回のウィンドウ位置とサイズを復元するかどうか。
    *   **タブ復元**: 起動時に前回開いていたタブの状態を復元するかどうか。
    *   **ファイルサイズ単位**: バイト単位ですべて表示するか、KB/MB/GB等の単位を使用するか。
    *   **タスク一覧をTabではなくESCで表示する**: タスク一覧の表示ショートカットをTabからESCに変更します（ESCが終了ではなくなります）。
    *   **タスク一覧で表示するタスク数**: タスク一覧を開いた際、この数を超えた「既に完了したタスク」を自動的に削除します。
    *   **タブごとに保持するディレクトリ履歴数**: ディレクトリ履歴ダイアログで保持する最大件数を設定します。
2.  **ビュアー**
    *   **テキストビュアー**
        *   **テキスト表示行数**: テキストビュアーで一度に読み込む最大行数。
        *   **バイナリ警告サイズ**: テキストモードへの切り替え時に警告を表示するファイルサイズ閾値。
        *   **自動折り返し**: デフォルトで右端で折り返すかどうか。
        *   **左右キーでページ送り**: 折り返し有効時、←/→キーで左右スクロールではなくPageUp/Downを行うかどうか。
        *   **特殊文字の表示**: スペース、タブ、改行、全角スペースの可視化設定。
    *   **Markdownビュアー**
        *   **同じタブでリンクを開く**: Markdown内のリンクをクリックした際、新しいタブではなく現在のタブでそのまま開くかどうか（Markdownファイルのみ適用）。
3.  **外観**
    *   **配色**: 背景色、文字色、カーソル色、選択色などを好みに合わせてカスタマイズできます。
    *   **フォント**: ファイルリスト、テキストビュアー、タブ、ステータスバーで使用するフォントの種類とサイズを変更できます。
    *   **カラム幅**: ファイルリストの各カラム（拡張子、サイズ、更新日時）の初期幅を設定できます。
4.  **外部エディタ**
    *   ファイラーで `E` キーを押した際や、テキストビュアーからファイルを外部ツールで開く際のアプリケーションを指定します。
    *   **パス**: 実行ファイルのパスを指定します。パス内で `%ProgramFiles%` などの環境変数を使用可能です。
    *   **引数**: `$F` でファイルパス、`$L` で行番号（テキストビュアーからの呼び出し時）に置換されます。
5.  **キー設定**
    *   ファイラー画面でのキーボード操作（ショートカット）をカスタマイズできます。
    *   キー一覧から対象のキーを選択し、機能リストから割り当てたいアクションを選択します。
    *   ShiftキーやCtrlキーとの組み合わせも設定可能です。
    *   **デフォル設定補完**: バージョンアップにより追加された機能や未割り当てのデフォルトキー設定を一括で確認・適用できるダイアログを表示します。ユーザーが現在設定しているキーを上書きするかどうかを個別に選択して適用できます。
    *   特定の機能（ChangeDirectory, ExternalProgramなど）にはパラメータ（移動先パス、起動プログラムのパス、引数など）も設定できます。
    *   **外部プログラムの実行 (ExternalProgram)**: 任意のプログラムを引数付きで実行するアクションです。以下の変数が引数内で使用可能です：
        *   `$F` : カーソル位置のファイルのフルパス
        *   `$M` : マークされた複数のファイルのフルパス（未選択時はカーソル位置）
        *   `$K` : 実行時に引数を入力・編集するためのダイアログを表示（`$K` の位置にカーソルが移動します）
        *   `$d` : アクティブペインの現在のディレクトリパス
        *   `$D` : パッシブペインの現在のディレクトリパス
        *   `%ENV%` : `%USERPROFILE%` などの環境変数の展開
    *   外部プログラムの引数入力ダイアログ（`$K` 使用時）は、実行前に展開済みの引数を確認・修正できます。

### ディレクトリ設定
`J` キー (JumpFavorite) で呼び出せる「よく使うディレクトリ」を登録・編集するための専用ウィンドウを開きます。

*   1文字のショートカットキーを割り当てることで、`J` → `キー` の2ストロークで登録フォルダへ素早く移動できます。
*   一覧での並び順変更や、任意のキー (A-Z, 0-9等) への割り当てが可能です。
*   「新規項目」で新しいディレクトリを登録できます。


---

設定は自動的に保存され、次回起動時にも反映されます。  
XFiler.exeがあるディレクトリに settings ディレクトリが作成され、その中に設定が保存されます。  