rufio 0.60.0 → 0.61.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.md CHANGED
@@ -1,677 +1,281 @@
1
1
  # rufio
2
2
 
3
- Ruby製のターミナルベースファイルマネージャー
3
+ **Runtime Unified Flow I/O Operator**
4
4
 
5
- **日本語** | [English](./README_EN.md)
6
-
7
- ## 概要
8
-
9
- rufioは、Yaziにインスパイアされたターミナル上で動作するファイルマネージャーです。Rubyで実装されており、DSLコマンドによる拡張機能を備えています。軽量で高速な操作性を提供し、ファイルの閲覧・管理・検索機能を備えています。
10
-
11
- ### 🚀 v0.60.0の重要な更新
5
+ ファイルを起点に、ツールとスクリプトを実行・連携させるTUIファイルマネージャー。
6
+ Ruby/Python/PowerShellに対応し、開発ワークフローを一箇所に統合します。
12
7
 
13
- - **⌨️ スクリプト補完機能**: コマンドモードでスクリプトのTab補完が可能に
14
- - **🗑️ プロジェクトモード廃止**: `P`キーのプロジェクトモードを削除(ジョブモード`J`に機能統合予定)
15
- - **🧹 コードクリーンアップ**: 未使用コードの削除でコードベースをスリム化
8
+ A TUI file manager as a unified runtime environment for tools and scripts.
16
9
 
17
- 詳細は [CHANGELOG](./CHANGELOG.md) を参照してください。
10
+ **日本語** | [English](./README_EN.md)
18
11
 
19
- ## 特徴
12
+ ## コンセプト
20
13
 
21
- - **軽量でシンプル**: Rubyで書かれた軽量なファイルマネージャー
22
- - **直感的な操作**: Vimライクなキーバインド
23
- - **DSLコマンドシステム** (v0.50.0): 拡張可能なDSLベースのコマンド定義
24
- - **強力なコマンドモード** (v0.32.0):
25
- - シェルコマンド実行 (`!ls`, `!git status` など)
26
- - コマンド履歴(上下矢印キーでナビゲーション)
27
- - インテリジェントなTab補完(候補リスト表示)
28
- - DSLコマンドによる拡張可能なコマンド
29
- - **バックグラウンドコマンド実行** (v0.33.0):
30
- - `:!command` でシェルコマンドを非同期実行
31
- - 実行中もrufioの操作が可能
32
- - 完了時に通知メッセージを表示
33
- - 実行結果を自動的にログファイルに保存
34
- - **実行ログビューワ** (v0.33.0):
35
- - `L`キーでコマンド実行ログを閲覧
36
- - ログファイルのタイムスタンプ付き管理
37
- - ヘルプモードと同様の直感的なUI
38
- - **高速ファイルプレビュー** (v0.33.0最適化):
39
- - 大幅な性能改善(40-86倍高速化)
40
- - 大規模ファイルも瞬時に表示(< 2ms)
41
- - スムーズなスクロールと快適な操作性
42
- - **ファイル選択・操作**: 複数ファイルの選択、移動、コピー、削除が可能
43
- - **リアルタイムフィルター**: sキーでファイル名の絞り込み表示
44
- - **高度な検索機能**: fzfとrgaを使った強力な検索
45
- - **マルチプラットフォーム**: macOS、Linux、Windowsで動作
46
- - **外部エディタ連携**: お気に入りのエディタでファイルを開く
47
- - **ヘルスチェック**: システム依存関係の確認機能
48
- - **ステータスバー**: 処理時間、現在時刻、バージョン情報をリアルタイム表示
49
- - **ブックマーク一覧表示**: フッタに1-9のブックマークを番号付きで表示
50
- - **統合ヘルプシステム**: ?キーでキーバインド一覧とお知らせを表示
14
+ rufioは単なるファイルマネージャーではありません。**ツールランタイム実行環境**です。
51
15
 
52
- ## インストール
53
-
54
- ```bash
55
- gem install rufio
56
16
  ```
57
-
58
- または、Gemfileに追加してください:
59
-
60
- ```ruby
61
- gem 'rufio'
62
- ```
63
-
64
- ## 使い方
65
-
66
- ### 基本的な起動方法
67
-
68
- ```bash
69
- rufio # カレントディレクトリで起動
70
- rufio /path/to # 指定したディレクトリで起動
17
+ ┌─────────────────────────────────────────────────────────┐
18
+ │ rufio │
19
+ │ Runtime Unified Flow I/O Operator │
20
+ ├─────────────────────────────────────────────────────────┤
21
+ │ Files ──→ Scripts ──→ Tools ──→ Output │
22
+ │ ↑ │ │
23
+ │ └───────────── Feedback ────────────┘ │
24
+ └─────────────────────────────────────────────────────────┘
71
25
  ```
72
26
 
73
- ### ネイティブスキャナー(実験的機能)
74
-
75
- rufio v0.31.0以降では、高速なディレクトリスキャンのためのネイティブ実装(Rust/Go/Zig)をサポートしています。デフォルトは安定したRuby実装を使用し、オプションでネイティブ実装に切り替え可能です。
76
-
77
- #### 起動オプション
78
-
79
- ```bash
80
- # デフォルト(Ruby実装 - 安定)
81
- rufio
82
-
83
- # ネイティブ実装を有効化(自動検出: Magnus > Zig > Rust > Go > Ruby)
84
- rufio --native
85
- rufio --native=auto
86
-
87
- # Zig実装を使用(v0.33.0 - 実験的)
88
- rufio --native=zig
27
+ - **ファイル操作**: 従来のファイルマネージャー機能
28
+ - **スクリプト実行**: Ruby/Python/PowerShellスクリプトをファイルコンテキストで実行
29
+ - **ツール連携**: 外部ツール(git, fzf, rga等)とのシームレスな統合
30
+ - **統一I/O**: すべての入出力を単一のフローで管理
89
31
 
90
- # Rust実装を強制使用
91
- rufio --native=rust
92
- rufio --native rust /path/to/dir
32
+ ## 特徴
93
33
 
94
- # Go実装を強制使用
95
- rufio --native=go
96
- rufio --native go /path/to/dir
34
+ ### ツールランタイムとして
97
35
 
98
- # 環境変数でも制御可能
99
- RUFIO_NATIVE=zig rufio
100
- RUFIO_NATIVE=rust rufio
101
- RUFIO_NATIVE=go rufio /path/to/dir
102
- ```
36
+ - **マルチ言語スクリプト対応**: Ruby, Python, PowerShell
37
+ - **スクリプトパス管理**: 複数のスクリプトディレクトリを登録・管理
38
+ - **コマンド補完**: `@`プレフィックスでスクリプトをTab補完
39
+ - **ジョブ管理**: バックグラウンドでスクリプト/コマンドを実行
40
+ - **実行ログ**: すべての実行結果を自動記録
103
41
 
104
- #### ネイティブ実装について
42
+ ### ファイルマネージャーとして
105
43
 
106
- - **Zig実装** (v0.33.0 - 実験的): 最小バイナリサイズ(52.6 KB)、高速、FFI不要
107
- - **Magnus (Rust)**: 最速、メモリ安全、FFI不要(バイナリ: 314 KB)
108
- - **Rust (FFI)**: 高速、メモリ安全、JSON経由
109
- - **Go (FFI)**: 高速、並行処理に優れる
110
- - **Ruby実装** (デフォルト): 依存なし、安定動作保証
44
+ - **Vimライクなキーバインド**: 直感的なナビゲーション
45
+ - **リアルタイムプレビュー**: ファイル内容を即座に表示
46
+ - **高速検索**: fzf/rgaとの連携
47
+ - **ブックマーク**: よく使うディレクトリに素早くアクセス
48
+ - **zoxide連携**: スマートなディレクトリ履歴
111
49
 
112
- **性能比較(163エントリ):**
113
- - Go (FFI): 0.242 ms(最速)
114
- - Pure Ruby + YJIT: 0.242 ms(同等)
115
- - Rust (FFI): 0.244 ms
116
- - Zig: 0.253 ms(最小バイナリ)
50
+ ### クロスプラットフォーム
117
51
 
118
- #### ビルド方法
52
+ - **macOS**: ネイティブサポート
53
+ - **Linux**: ネイティブサポート
54
+ - **Windows**: PowerShellスクリプト対応
119
55
 
120
- ネイティブ実装を使用するには、事前にビルドが必要です:
56
+ ## インストール
121
57
 
122
58
  ```bash
123
- # Zig実装のビルド(v0.33.0 - 実験的)
124
- cd lib_zig/rufio_native
125
- make
126
-
127
- # Rust実装のビルド
128
- cd lib_rust/scanner
129
- cargo build --release
130
- make install
131
-
132
- # Go実装のビルド
133
- cd lib_go/scanner
134
- make install
59
+ gem install rufio
135
60
  ```
136
61
 
137
- **必要な開発ツール:**
138
- - Zig: Zig 0.15.2以降(`brew install zig` または https://ziglang.org/)
139
- - Rust: Cargo(`curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh`)
140
- - Go: Go 1.16以降(`brew install go` または https://golang.org/)
62
+ または、Gemfileに追加:
141
63
 
142
- #### 注意事項
64
+ ```ruby
65
+ gem 'rufio'
66
+ ```
143
67
 
144
- - ネイティブ実装は実験的機能です
145
- - デフォルトではRuby実装を使用(`--native`オプションなし)
146
- - ネイティブライブラリがない場合、自動的にRuby実装にフォールバック
147
- - gemインストール時はネイティブライブラリが含まれます(ビルド不要)
68
+ ## クイックスタート
148
69
 
149
- ### ヘルスチェック
70
+ ### 1. 起動
150
71
 
151
72
  ```bash
152
- rufio -c # システム依存関係をチェック
153
- rufio --check-health # 上記と同じ
154
- rufio --help # ヘルプメッセージを表示
73
+ rufio # カレントディレクトリで起動
74
+ rufio /path/to # 指定したディレクトリで起動
155
75
  ```
156
76
 
157
- ### キーバインド一覧
158
-
159
- #### 基本ナビゲーション
160
-
161
- | キー | 機能 |
162
- | ------------- | ---------------------------------- |
163
- | `j` | 下に移動 |
164
- | `k` | 上に移動 |
165
- | `h` | 親ディレクトリに移動 |
166
- | `l` / `Enter` | ディレクトリに入る・ファイルを選択 |
167
-
168
- #### 高速ナビゲーション
169
-
170
- | キー | 機能 |
171
- | ---- | ------------------ |
172
- | `g` | リストの先頭に移動 |
173
- | `G` | リストの末尾に移動 |
174
-
175
- #### ファイル操作
176
-
177
- | キー | 機能 |
178
- | ---- | -------------------------------------------------- |
179
- | `o` | 選択中のファイルを外部エディタで開く |
180
- | `e` | 現在のディレクトリをファイルエクスプローラーで開く |
181
- | `R` | ディレクトリ内容を更新 |
182
- | `r` | ファイル・ディレクトリ名をリネーム |
183
- | `d` | ファイル・ディレクトリを削除(確認ダイアログ付き) |
184
- | `a` | 新しいファイルを作成(ダイアログ入力) |
185
- | `A` | 新しいディレクトリを作成(ダイアログ入力) |
186
-
187
- #### ファイル選択・操作
188
-
189
- | キー | 機能 |
190
- | ------- | ---------------------------------------------------- |
191
- | `Space` | ファイル・ディレクトリを選択・選択解除(複数選択可) |
192
- | `m` | 選択したアイテムをカレントディレクトリに移動 |
193
- | `c` | 選択したアイテムをカレントディレクトリにコピー |
194
- | `x` | 選択したアイテムを削除 |
195
-
196
- #### リアルタイムフィルター機能
197
-
198
- | キー | 機能 |
199
- | ----------- | ------------------------------------------ |
200
- | `f` | フィルターモード開始・再編集 |
201
- | 文字入力 | ファイル名で絞り込み(フィルターモード中) |
202
- | `Enter` | フィルター維持で通常モードに戻る |
203
- | `ESC` | フィルターをクリアして通常モードに戻る |
204
- | `Backspace` | 文字削除(フィルターモード中) |
205
-
206
- #### 検索機能
77
+ ### 2. スクリプトパスを登録
207
78
 
208
- | キー | 機能 |
209
- | ---- | ----------------------------------------- |
210
- | `s` | fzfによるファイル名検索(プレビュー付き) |
211
- | `F` | rgaによるファイル内容検索 |
79
+ 1. スクリプトを配置したいディレクトリに移動
80
+ 2. `B` `2` でスクリプトパスに追加
212
81
 
213
- #### ブックマーク機能
82
+ ### 3. スクリプトを実行
214
83
 
215
- | キー | 機能 |
216
- | --------- | ------------------------------------ |
217
- | `b` | 現在のディレクトリをブックマークに追加 |
218
- | `B` | ブックマークメニュー(スクリプトパス管理含む) |
219
- | `0` | 起動したディレクトリに移動 |
220
- | `1`-`9` | 対応する番号のブックマークに移動 |
84
+ 1. `:` でコマンドモードを起動
85
+ 2. `@` + スクリプト名の一部を入力
86
+ 3. `Tab` で補完
87
+ 4. `Enter` で実行
221
88
 
222
- #### ジョブモード
89
+ ## キーバインド
223
90
 
224
- | キー | 機能 |
225
- | --------- | ------------------------------------ |
226
- | `J` | ジョブモードに入る |
91
+ ### 基本操作
227
92
 
228
- #### zoxide連携機能
93
+ | キー | 機能 |
94
+ |------|------|
95
+ | `j/k` | 上下移動 |
96
+ | `h/l` | 親/子ディレクトリ |
97
+ | `g/G` | 先頭/末尾 |
98
+ | `Enter` | ディレクトリに入る/ファイルを開く |
99
+ | `q` | 終了 |
229
100
 
230
- | キー | 機能 |
231
- | ---- | ---------------------------------- |
232
- | `z` | zoxide履歴からディレクトリを選択移動 |
101
+ ### ファイル操作
233
102
 
234
- #### コマンドモード (v0.32.0 強化版)
103
+ | キー | 機能 |
104
+ |------|------|
105
+ | `Space` | 選択/選択解除 |
106
+ | `o` | 外部エディタで開く |
107
+ | `a/A` | ファイル/ディレクトリ作成 |
108
+ | `r` | リネーム |
109
+ | `d` | 削除 |
110
+ | `m/c/x` | 移動/コピー/削除(選択済み) |
235
111
 
236
- | キー | 機能 |
237
- | ------ | ---------------------------------------- |
238
- | `:` | コマンドモードを起動 |
239
- | `Tab` | コマンド補完・候補リスト表示(コマンドモード中)|
240
- | `↑` | 前のコマンドを表示(コマンドモード中) |
241
- | `↓` | 次のコマンドを表示(コマンドモード中) |
242
- | `Enter`| コマンドを実行(コマンドモード中) |
243
- | `ESC` | コマンドモードをキャンセル(コマンドモード中) |
112
+ ### 検索・フィルター
244
113
 
245
- **シェルコマンド実行** (v0.32.0):
246
- ```
247
- :!ls -la # ファイル一覧を表示
248
- :!git status # Gitステータスを確認
249
- :!pwd # 現在のディレクトリを表示
250
- ```
251
-
252
- **バックグラウンド実行** (v0.33.0):
253
- - `:!command` でシェルコマンドを非同期実行
254
- - 実行中もrufioの操作が可能
255
- - 完了時に通知メッセージを3秒間表示
256
- - 実行結果は自動的に `~/.config/rufio/log/` に保存
257
-
258
- **DSLコマンド** (v0.50.0):
259
- ```
260
- :hello # Hello DSLコマンドを実行
261
- :stop # rufioを終了
262
- ```
263
-
264
- #### ログビューワ (v0.33.0)
265
-
266
- | キー | 機能 |
267
- | ---- | ---------------------------------- |
268
- | `L` | コマンド実行ログを閲覧 |
269
- | `ESC`| ログビューワモードを終了 |
270
-
271
- コマンド実行ログは `~/.config/rufio/log/` に保存され、`L`キーで閲覧できます。
272
-
273
- #### ヘルプ
274
-
275
- | キー | 機能 |
276
- | ---- | ---------------------------------- |
277
- | `?` | キーバインド一覧とお知らせを表示 |
278
-
279
- #### システム操作
114
+ | キー | 機能 |
115
+ |------|------|
116
+ | `f` | フィルターモード |
117
+ | `s` | fzfでファイル検索 |
118
+ | `F` | rgaでファイル内容検索 |
280
119
 
281
- | キー | 機能 |
282
- | ---- | ------------ |
283
- | `q` | rufioを終了 |
120
+ ### ナビゲーション
284
121
 
285
- ### ファイル選択・操作機能の詳細
122
+ | キー | 機能 |
123
+ |------|------|
124
+ | `b` | ブックマーク追加 |
125
+ | `B` | ブックマークメニュー |
126
+ | `0` | 起動ディレクトリに戻る |
127
+ | `1-9` | ブックマークにジャンプ |
128
+ | `z` | zoxide履歴 |
286
129
 
287
- #### ファイル・ディレクトリ選択 (`Space`)
130
+ ### ツールランタイム
288
131
 
289
- - **選択・選択解除**: `Space`キーでファイルやディレクトリを選択・選択解除
290
- - **複数選択**: 複数のファイルやディレクトリを同時に選択可能
291
- - **視覚的表示**: 選択されたアイテムは✓マークと緑色の背景で表示
132
+ | キー | 機能 |
133
+ |------|------|
134
+ | `:` | コマンドモード |
135
+ | `J` | ジョブモード |
136
+ | `L` | 実行ログ表示 |
137
+ | `?` | ヘルプ |
292
138
 
293
- #### ファイル操作
139
+ ## コマンドモード
294
140
 
295
- | 操作 | キー | 機能 |
296
- | ---------- | ---- | ---------------------------------------- |
297
- | **移動** | `m` | 選択したアイテムをカレントディレクトリに移動 |
298
- | **コピー** | `c` | 選択したアイテムをカレントディレクトリにコピー |
299
- | **削除** | `x` | 選択したアイテムを削除 |
141
+ `:` でコマンドモードを起動し、様々なコマンドを実行できます。
300
142
 
301
- #### 削除操作の詳細
302
-
303
- - **フローティングダイアログ確認**: モダンなフローティングウィンドウで明確な選択肢を表示
304
- - **視覚的フィードバック**: 赤い枠線と警告色で注意を引く
305
- - **安全な操作**: 削除前のダブルチェック
306
- - **包括的エラーハンドリング**: 削除失敗時の詳細なエラーメッセージ
307
- - **リアルタイム結果表示**: フローティングダイアログで成功/失敗数を表示
308
- - **ファイルシステム検証**: 成功報告前に実際の削除を確認
309
- - **デバッグサポート**: BENIYA_DEBUG=1でオプションのデバッグログ出力
310
-
311
- #### 操作の流れ
143
+ ### スクリプト実行
312
144
 
313
145
  ```
314
- 1. Space → ファイル・ディレクトリを選択(複数選択可)
315
- 2. 操作キーを選択:
316
- - m → カレントディレクトリに移動
317
- - c → カレントディレクトリにコピー
318
- - x → 削除
319
- 3. フローティングダイアログ → Y/Nで確認、ESCでキャンセル
320
- 4. 操作完了 → 選択解除、画面更新
146
+ :@build # @で始まるとスクリプト補完
147
+ :@deploy.rb # 登録済みスクリプトを実行
321
148
  ```
322
149
 
323
- #### 安全機能
324
-
325
- - **フローティング確認ダイアログ**: 確認用のモダンなフローティングウィンドウインターフェース
326
- - **視覚警告システム**: 危険な操作時の赤い枠線と警告色
327
- - **重複チェック**: 同名ファイルがある場合は自動でスキップ
328
- - **エラーハンドリング**: 権限不足などのエラーに適切に対応
329
- - **操作ログ**: フローティングダイアログで処理結果を詳細表示
330
- - **削除後検証**: ファイルシステムから実際に削除されたことを確認
331
-
332
- ### フィルター機能の詳細
333
-
334
- #### リアルタイムフィルター (`f`)
335
-
336
- - **フィルター開始**: `f`キーを押してフィルターモードに入る
337
- - **文字入力による絞り込み**: 日本語・英数字・記号に対応
338
- - **リアルタイム更新**: 文字を入力するたびに表示が更新される
339
- - **フィルター維持**: `Enter`キーでフィルターを保持したまま通常操作に戻る
340
- - **フィルタークリア**: `ESC`キーでフィルターをクリアして通常表示に戻る
341
- - **再編集**: フィルター適用中に`f`キーで再編集モード
342
- - **文字削除**: `Backspace`で文字削除、全削除時は自動でフィルタークリア
343
-
344
- #### 使用例
150
+ ### シェルコマンド
345
151
 
346
152
  ```
347
- 1. f → フィルターモード開始
348
- 2. ".rb" → Rubyファイルのみ表示
349
- 3. Enter → フィルター維持で通常操作
350
- 4. j/k → フィルター結果内をナビゲーション
351
- 5. f → フィルター再編集
352
- 6. ESC → フィルタークリア
153
+ :!git status # !で始まるとシェルコマンド
154
+ :!ls -la # バックグラウンドで実行
353
155
  ```
354
156
 
355
- ### 検索機能の詳細
356
-
357
- #### ファイル名検索 (`s`)
358
-
359
- - `fzf`を使用したインタラクティブなファイル名検索
360
- - リアルタイムプレビュー表示
361
- - 選択したファイルは自動で外部エディタで開かれる
362
-
363
- #### ファイル内容検索 (`F`)
364
-
365
- - `rga`(ripgrep-all)を使用した高度なファイル内容検索
366
- - PDF、Word文書、画像内テキストなども検索対象
367
- - 検索結果をfzfで絞り込み、該当行にジャンプしてファイルを開く
368
-
369
- ### ブックマーク機能の詳細
370
-
371
- #### ブックマーク操作
372
-
373
- **通常モード:**
374
- - **`b`キー**: 現在のディレクトリをブックマークに追加
375
- - ディレクトリ名がタイトルに表示される
376
- - ブックマーク名を入力して追加
377
- - 重複パスは自動検出
378
- - 緑色のダイアログで表示(作成操作)
379
-
380
- **ブックマークメニュー (`B`キー):**
381
- - **`1`**: 現在のディレクトリをブックマークに追加
382
- - **`2`**: 現在のディレクトリをスクリプトパスに追加
383
- - **`3`**: スクリプトパスを管理(一覧表示、削除、ジャンプ)
384
- - **`4`**: ブックマーク一覧を表示
385
-
386
- #### 高速ナビゲーション (`1`-`9`)
387
-
388
- - 数字キーでブックマークに直接ジャンプ
389
- - 最大9個のブックマークをサポート
390
- - ブックマーク情報は画面上部に表示
391
-
392
- #### ブックマークの永続化
393
-
394
- - ブックマーク情報は `~/.config/rufio/bookmarks.json` に自動保存
395
- - rufio再起動後もブックマーク情報が保持される
396
- - 名前の前後のスペースは自動削除されて保存される
397
- - JSONファイルを直接編集することも可能
398
-
399
- ### スクリプトパス機能の詳細
400
-
401
- #### スクリプトパスとは
402
-
403
- スクリプトパスは、スクリプトファイルを配置するディレクトリを登録する機能です。登録したディレクトリ内のスクリプトは、コマンドモードで`@`プレフィックスを使って実行できます。
404
-
405
- #### スクリプトパスの管理 (`B` → `3`)
406
-
407
- - **一覧表示**: 登録済みのスクリプトパスを一覧表示
408
- - **j/k**: カーソル移動
409
- - **d**: 選択したパスを削除
410
- - **Enter**: 選択したディレクトリにジャンプ
411
- - **ESC**: メニューを閉じる
412
-
413
- #### スクリプト補完機能
414
-
415
- コマンドモード(`:`)でスクリプトをTab補完できます:
416
-
417
- - **`@`プレフィックス**: スクリプト専用補完
418
- - 例: `@bu` + Tab → `@build.sh`
419
- - **通常補完**: 内部コマンドとスクリプト両方を候補に表示
420
-
421
- #### 操作色の統一
422
-
423
- - **緑色ダイアログ**: 作成操作(ファイル、ディレクトリ、ブックマーク)
424
- - **青色ダイアログ**: ディレクトリ作成
425
- - **黄色ダイアログ**: リネーム操作
426
- - **赤色ダイアログ**: 削除操作
427
- - **マゼンタダイアログ**: スクリプトパス管理
428
-
429
- ### zoxide連携機能の詳細
430
-
431
- #### zoxide履歴移動 (`z`)
432
-
433
- - **スマート履歴**: zoxideが記録したディレクトリ移動履歴を表示
434
- - **フリークエンシー順**: よく使用するディレクトリほど上位に表示
435
- - **インタラクティブ選択**: フローティングウィンドウで履歴を選択
436
- - **高速ナビゲーション**: 数字キーで直接ディレクトリを選択
437
- - **パス省略表示**: ホームディレクトリを`~`で表示し見やすく
438
-
439
- #### 使用例
157
+ ### 組み込みコマンド
440
158
 
441
159
  ```
442
- 1. z → zoxide履歴メニューを表示
443
- 2. 1-20 → 表示された番号でディレクトリを選択
444
- 3. ESC → キャンセルして元の画面に戻る
445
- ```
446
-
447
- #### zoxideについて
448
-
449
- [zoxide](https://github.com/ajeetdsouza/zoxide)は、ディレクトリ移動履歴を学習するスマートなcdコマンドです。
450
-
451
- ```bash
452
- # zoxideのインストール
453
- # macOS (Homebrew)
454
- brew install zoxide
455
-
456
- # Ubuntu/Debian
457
- apt install zoxide
458
-
459
- # その他のインストール方法は公式ドキュメントを参照
460
- # https://github.com/ajeetdsouza/zoxide#installation
160
+ :hello # 挨拶メッセージ
161
+ :stop # rufioを終了
461
162
  ```
462
163
 
463
- #### 動作要件
464
-
465
- - zoxideがシステムにインストールされている必要があります
466
- - zoxideが無効な場合は適切なメッセージが表示されます
467
- - 履歴が空の場合も適切にハンドリングされます
164
+ ## スクリプトパス
468
165
 
469
- ### コマンドモードの詳細
166
+ ### スクリプトパスとは
470
167
 
471
- #### コマンドモードの起動 (`:`)
168
+ スクリプトファイルを配置するディレクトリを登録する機能です。登録したディレクトリ内のスクリプトは、コマンドモードで `@` プレフィックスを使って実行できます。
472
169
 
473
- - `:`キーを押してコマンドモードを起動
474
- - 画面最下部にコマンド入力欄が表示される
475
- - プラグインが提供するコマンドを実行できる
170
+ ### 管理方法
476
171
 
477
- #### Tab補完機能
172
+ `B` → `3` でスクリプトパス管理メニューを開きます:
478
173
 
479
- - **インテリジェントな補完**: コマンド名の一部を入力して`Tab`キーを押すと自動補完
480
- - **複数候補の処理**: 複数のコマンドが一致する場合は共通プレフィックスまで補完
481
- - **単一候補の自動完成**: 一つだけマッチする場合は完全に補完される
482
- - **リアルタイム更新**: 入力内容に応じて候補が動的に変化
483
-
484
- #### フローティングウィンドウでの結果表示
485
-
486
- - **視覚的フィードバック**: コマンド実行結果をモダンなフローティングウィンドウで表示
487
- - **色分けされた結果**:
488
- - **緑色のボーダー**: コマンドが正常に実行された場合
489
- - **赤色のボーダー**: エラーまたは警告が発生した場合
490
- - **中央配置**: 画面中央に自動的に配置され視認性が高い
491
- - **自動サイズ調整**: 結果の内容に応じてウィンドウサイズが自動調整
492
- - **簡単に閉じる**: 任意のキーを押すとウィンドウを閉じて通常操作に戻る
493
-
494
- #### 使用例
495
-
496
- ```
497
- 1. : → コマンドモードを起動
498
- 2. "he" → コマンド名の一部を入力
499
- 3. Tab → 補完("hello", "help", "health"などが候補)
500
- 4. Enter → コマンドを実行
501
- 5. フローティングウィンドウで結果を確認
502
- 6. 任意のキーを押してウィンドウを閉じる
503
- ```
174
+ - 登録済みパスの一覧表示
175
+ - `d`: パスを削除
176
+ - `Enter`: ディレクトリにジャンプ
177
+ - `ESC`: メニューを閉じる
504
178
 
505
- #### 利用可能なコマンド
179
+ ### 対応スクリプト
506
180
 
507
- コマンドはDSLで定義されます。DSLコマンドシステムの詳細については後述の「DSLコマンドシステム」セクションを参照してください。
181
+ | 拡張子 | 言語 |
182
+ |--------|------|
183
+ | `.rb` | Ruby |
184
+ | `.py` | Python |
185
+ | `.ps1` | PowerShell |
186
+ | `.sh` | Shell (bash/zsh) |
508
187
 
509
- ### 必要な外部ツール
188
+ ## DSLコマンド
510
189
 
511
- 検索機能・履歴機能を使用するには、以下のツールが必要です:
190
+ `~/.config/rufio/commands.rb` でカスタムコマンドを定義できます:
512
191
 
513
- ```bash
514
- # macOS (Homebrew)
515
- brew install fzf rga zoxide
192
+ ```ruby
193
+ command "hello" do
194
+ ruby { "Hello from rufio!" }
195
+ description "挨拶コマンド"
196
+ end
516
197
 
517
- # Ubuntu/Debian
518
- apt install fzf zoxide
519
- # rgaは別途インストールが必要: https://github.com/phiresky/ripgrep-all
198
+ command "status" do
199
+ shell "git status"
200
+ description "Gitステータス"
201
+ end
520
202
 
521
- # その他のLinuxディストリビューション
522
- # パッケージマネージャーまたは手動インストールが必要
203
+ command "build" do
204
+ script "~/.config/rufio/scripts/build.rb"
205
+ description "ビルド実行"
206
+ end
523
207
  ```
524
208
 
525
- #### 各ツールの用途
526
-
527
- - **fzf**: ファイル名検索機能(`s`キー)
528
- - **rga**: ファイル内容検索機能(`F`キー)
529
- - **zoxide**: ディレクトリ履歴移動機能(`z`キー)
530
-
531
209
  ## 設定
532
210
 
533
- ### 色設定(カスタマイズ)
534
-
535
- rufioではファイルタイプや UI 要素の色をカスタマイズできます。HSLカラーモデルによる直感的な色指定をサポートしています。
536
-
537
- #### サポートされる色形式
538
-
539
- ```ruby
540
- # HSL(色相・彩度・明度)- 推奨形式
541
- {hsl: [220, 80, 60]} # 色相220度、彩度80%、明度60%
542
-
543
- # RGB(赤・緑・青)
544
- {rgb: [100, 150, 200]}
545
-
546
- # HEX(16進数)
547
- {hex: "#6496c8"}
548
-
549
- # 従来のシンボル
550
- :blue, :red, :green, :yellow, :cyan, :magenta, :white, :black
211
+ ### 設定ファイル構成
551
212
 
552
- # ANSIカラーコード
553
- "34" または 34
213
+ ```
214
+ ~/.config/rufio/
215
+ ├── config.rb # カラー設定
216
+ ├── commands.rb # DSLコマンド定義
217
+ ├── bookmarks.json # ブックマーク
218
+ ├── scripts/ # スクリプトファイル
219
+ └── log/ # 実行ログ
554
220
  ```
555
221
 
556
- #### 設定例
222
+ ### カラー設定
557
223
 
558
224
  ```ruby
559
225
  # ~/.config/rufio/config.rb
560
226
  COLORS = {
561
- # HSLでの色指定(直感的で調整しやすい)
562
- directory: {hsl: [220, 80, 60]}, # 青系でディレクトリ
563
- file: {hsl: [0, 0, 90]}, # 薄いグレーで通常ファイル
564
- executable: {hsl: [120, 70, 50]}, # 緑系で実行ファイル
565
- selected: {hsl: [50, 90, 70]}, # 黄色で選択項目
566
- preview: {hsl: [180, 60, 65]}, # シアンでプレビュー
567
-
568
- # 他の形式も併用可能
569
- # directory: :blue, # シンボル
570
- # file: {rgb: [200, 200, 200]}, # RGB
571
- # executable: {hex: "#00aa00"}, # HEX
227
+ directory: {hsl: [220, 80, 60]},
228
+ file: {hsl: [0, 0, 90]},
229
+ executable: {hsl: [120, 70, 50]},
230
+ selected: {hsl: [50, 90, 70]},
231
+ preview: {hsl: [180, 60, 65]},
572
232
  }
573
233
  ```
574
234
 
575
- #### HSLカラーモデルについて
576
-
577
- - **色相(Hue)**: 0-360度(0=赤、120=緑、240=青)
578
- - **彩度(Saturation)**: 0-100%(0=グレー、100=鮮やか)
579
- - **明度(Lightness)**: 0-100%(0=黒、50=標準、100=白)
580
-
581
- #### 設定可能な項目
235
+ ## 外部ツール連携
582
236
 
583
- - `directory`: ディレクトリの色
584
- - `file`: 通常ファイルの色
585
- - `executable`: 実行可能ファイルの色
586
- - `selected`: 選択中の項目の色
587
- - `preview`: プレビューパネルの色
237
+ rufioは以下の外部ツールと連携して機能を拡張します:
588
238
 
589
- ## DSLコマンドシステム
239
+ | ツール | 用途 | キー |
240
+ |--------|------|------|
241
+ | fzf | ファイル名検索 | `s` |
242
+ | rga | ファイル内容検索 | `F` |
243
+ | zoxide | ディレクトリ履歴 | `z` |
590
244
 
591
- rufioはDSLベースのコマンドシステムを備えており、独自のコマンドを簡単に追加できます。
245
+ ### インストール
592
246
 
593
- ### コマンド定義ファイル
594
-
595
- ユーザー定義コマンドは以下のファイルに記述します:
247
+ ```bash
248
+ # macOS
249
+ brew install fzf rga zoxide
596
250
 
597
- ```
598
- ~/.config/rufio/commands.rb
251
+ # Ubuntu/Debian
252
+ apt install fzf zoxide
253
+ # rgaは別途インストール: https://github.com/phiresky/ripgrep-all
599
254
  ```
600
255
 
601
- ### コマンドの作成方法
256
+ ## 高度な機能
602
257
 
603
- #### Rubyコードを実行するコマンド
258
+ ### ネイティブスキャナー(実験的)
604
259
 
605
- ```ruby
606
- # ~/.config/rufio/commands.rb
607
- command "hello" do
608
- ruby { "Hello from rufio!" }
609
- description "挨拶コマンド"
610
- end
611
-
612
- command "time" do
613
- ruby { Time.now.strftime("%Y-%m-%d %H:%M:%S") }
614
- description "現在時刻を表示"
615
- end
616
- ```
617
-
618
- #### シェルコマンドを実行するコマンド
260
+ 高速なディレクトリスキャンのためのネイティブ実装をサポート:
619
261
 
620
- ```ruby
621
- command "status" do
622
- shell "git status"
623
- description "Gitステータスを表示"
624
- end
625
-
626
- command "disk" do
627
- shell "df -h"
628
- description "ディスク使用量を表示"
629
- end
262
+ ```bash
263
+ rufio --native # 自動検出
264
+ rufio --native=zig # Zig実装
630
265
  ```
631
266
 
632
- #### 外部スクリプトを実行するコマンド
267
+ ### JITコンパイラ
633
268
 
634
- ```ruby
635
- command "build" do
636
- script "~/.config/rufio/scripts/build.rb"
637
- description "プロジェクトをビルド"
638
- end
269
+ ```bash
270
+ rufio --yjit # Ruby 3.1+ YJIT
271
+ rufio --zjit # Ruby 3.4+ ZJIT
639
272
  ```
640
273
 
641
- ### コマンドの使い方
642
-
643
- 1. rufioを起動
644
- 2. `:`キーでコマンドモードを起動
645
- 3. コマンド名を入力(または一部を入力してTabキーで補完)
646
- 4. Enterキーで実行
647
- 5. フローティングウィンドウに結果が表示される
648
-
649
- ### 組み込みコマンド
650
-
651
- rufioには以下のコマンドがデフォルトで組み込まれています:
652
-
653
- | コマンド | 説明 |
654
- | -------- | ---- |
655
- | `hello` | 挨拶メッセージを表示 |
656
- | `stop` | rufioを終了 |
657
- | `touch` | ファイルを作成 |
658
- | `mkdir` | ディレクトリを作成 |
659
-
660
- ### DSLコマンドの種類
661
-
662
- 1. **ruby**: Rubyコードをインラインで実行
663
- 2. **shell**: シェルコマンドを実行
664
- 3. **script**: 外部スクリプトファイルを実行
665
-
666
- ### 設定ファイル構成
274
+ ### ヘルスチェック
667
275
 
668
- ```
669
- ~/.config/rufio/
670
- ├── config.rb # カラー設定
671
- ├── commands.rb # DSLコマンド定義
672
- ├── bookmarks.json # ブックマーク
673
- ├── scripts/ # スクリプトファイル
674
- └── log/ # 実行ログ
276
+ ```bash
277
+ rufio -c # システム依存関係をチェック
278
+ rufio --check-health # 同上
675
279
  ```
676
280
 
677
281
  ## 開発
@@ -687,34 +291,20 @@ rufioには以下のコマンドがデフォルトで組み込まれています
687
291
  git clone https://github.com/masisz/rufio
688
292
  cd rufio
689
293
  bundle install
690
- ./exe/rufio
294
+ ./bin/rufio
691
295
  ```
692
296
 
693
- ### テスト実行
297
+ ### テスト
694
298
 
695
299
  ```bash
696
300
  bundle exec rake test
697
301
  ```
698
302
 
699
- ## 対応プラットフォーム
700
-
701
- - **macOS**: ネイティブサポート
702
- - **Linux**: ネイティブサポート
703
- - **Windows**: 基本機能をサポート
704
-
705
303
  ## ライセンス
706
304
 
707
305
  MIT License
708
306
 
709
307
  ## 貢献
710
308
 
711
- バグ報告や機能リクエストは[GitHub Issues](https://github.com/masisz/rufio/issues)でお願いします。
712
-
309
+ バグ報告や機能リクエストは [GitHub Issues](https://github.com/masisz/rufio/issues) でお願いします。
713
310
  プルリクエストも歓迎です!
714
-
715
- ### 開発ガイドライン
716
-
717
- 1. 既存のコードスタイルと規約に従う
718
- 2. 新機能にはテストを追加する
719
- 3. 必要に応じてドキュメントを更新する
720
- 4. 可能であれば複数のプラットフォームでテストする