rufio 0.31.0 → 0.33.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +132 -12
- data/README.md +84 -10
- data/README_EN.md +55 -2
- data/docs/CHANGELOG_v0.32.0.md +288 -0
- data/docs/CHANGELOG_v0.33.0.md +444 -0
- data/{CHANGELOG_v0.4.0.md → docs/CHANGELOG_v0.4.0.md} +2 -2
- data/{CHANGELOG_v0.5.0.md → docs/CHANGELOG_v0.5.0.md} +3 -0
- data/{CHANGELOG_v0.7.0.md → docs/CHANGELOG_v0.7.0.md} +1 -1
- data/{CHANGELOG_v0.8.0.md → docs/CHANGELOG_v0.8.0.md} +1 -1
- data/{CHANGELOG_v0.9.0.md → docs/CHANGELOG_v0.9.0.md} +1 -1
- data/docs/file-preview-optimization-analysis.md +759 -0
- data/docs/file-preview-performance-issue-FIXED.md +547 -0
- data/lib/rufio/application.rb +9 -1
- data/lib/rufio/background_command_executor.rb +98 -0
- data/lib/rufio/command_completion.rb +101 -0
- data/lib/rufio/command_history.rb +109 -0
- data/lib/rufio/command_logger.rb +118 -0
- data/lib/rufio/command_mode.rb +51 -1
- data/lib/rufio/command_mode_ui.rb +48 -15
- data/lib/rufio/config_loader.rb +9 -0
- data/lib/rufio/directory_listing.rb +60 -12
- data/lib/rufio/keybind_handler.rb +73 -2
- data/lib/rufio/native/rufio_native.bundle +0 -0
- data/lib/rufio/native/rufio_zig.bundle +0 -0
- data/lib/rufio/native_scanner.rb +306 -0
- data/lib/rufio/native_scanner_magnus.rb +194 -0
- data/lib/rufio/native_scanner_zig.rb +221 -0
- data/lib/rufio/plugins/hello.rb +30 -0
- data/lib/rufio/shell_command_completion.rb +120 -0
- data/lib/rufio/terminal_ui.rb +155 -20
- data/lib/rufio/version.rb +1 -1
- data/lib/rufio.rb +11 -0
- data/lib_rust/rufio_native/.cargo/config.toml +2 -0
- data/lib_rust/rufio_native/Cargo.lock +346 -0
- data/lib_rust/rufio_native/Cargo.toml +18 -0
- data/lib_rust/rufio_native/build.rs +46 -0
- data/lib_rust/rufio_native/src/lib.rs +197 -0
- data/lib_zig/rufio_native/Makefile +33 -0
- data/lib_zig/rufio_native/build.zig +45 -0
- data/lib_zig/rufio_native/src/main.zig +167 -0
- metadata +36 -13
- /data/{CHANGELOG_v0.10.0.md → docs/CHANGELOG_v0.10.0.md} +0 -0
- /data/{CHANGELOG_v0.20.0.md → docs/CHANGELOG_v0.20.0.md} +0 -0
- /data/{CHANGELOG_v0.21.0.md → docs/CHANGELOG_v0.21.0.md} +0 -0
- /data/{CHANGELOG_v0.30.0.md → docs/CHANGELOG_v0.30.0.md} +0 -0
- /data/{CHANGELOG_v0.31.0.md → docs/CHANGELOG_v0.31.0.md} +0 -0
- /data/{CHANGELOG_v0.6.0.md → docs/CHANGELOG_v0.6.0.md} +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 225c3d631526c9d005dc935b0ac6f6a2bfb27efbc31211ec4cf319864e0885bb
|
|
4
|
+
data.tar.gz: 6148268cd607c98f42a9396b499cb5668c6b5f9001b583a245099d47415ab22a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 67f1e5730ed0eb0e8e71746c89729eaee14b8d0fbe503d8d54de626b4a4b30f3a79c284f73b662e5ec355a00df6806a73e693aa78a6f76ed953afe4ceaf4e889
|
|
7
|
+
data.tar.gz: 485c7db79703f4f3f698dd64f94e9f383a9b1f1ec3fb4dad46a34ef116b26b15537607f0cf6c7a843adddd79f3b5dfdaa46519d6da75f307f74b631b6c56dd55
|
data/CHANGELOG.md
CHANGED
|
@@ -7,7 +7,109 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
-
## [0.
|
|
10
|
+
## [0.33.0] - 2026-01-03
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
- **🚨 CRITICAL: File Preview Performance Bug**: Fixed severe rendering delays (80ms → 1-2ms)
|
|
14
|
+
- Root cause: Redundant processing inside rendering loop (38x per frame)
|
|
15
|
+
- Impact: 97-99% improvement, 40-86x faster file preview
|
|
16
|
+
- All text file previews now render in < 2ms
|
|
17
|
+
|
|
18
|
+
### Added
|
|
19
|
+
- **⚡ Zig Native Scanner**: Experimental implementation with minimal binary size (52.6 KB)
|
|
20
|
+
- Direct Ruby C API integration (no FFI overhead)
|
|
21
|
+
- Competitive performance (within 6% of fastest implementations)
|
|
22
|
+
- 5.97x smaller than Rust/Magnus implementation
|
|
23
|
+
- **📊 YJIT Performance Analysis**: Comprehensive benchmarking of JIT compiler impact
|
|
24
|
+
- Pure Ruby: 2-5% improvement with YJIT
|
|
25
|
+
- Native extensions: No significant impact
|
|
26
|
+
- **📈 Performance Documentation**: Extensive benchmarking suite and analysis
|
|
27
|
+
- 7 new benchmark scripts
|
|
28
|
+
- 4 detailed performance reports
|
|
29
|
+
- Complete implementation comparison
|
|
30
|
+
|
|
31
|
+
For detailed information, see [CHANGELOG_v0.33.0.md](./docs/CHANGELOG_v0.33.0.md)
|
|
32
|
+
|
|
33
|
+
## [0.32.0] - 2026-01-02
|
|
34
|
+
|
|
35
|
+
### Added
|
|
36
|
+
- **🎯 Shell Command Execution**: Execute shell commands with `!` prefix (e.g., `:!ls`, `:!git status`)
|
|
37
|
+
- **📜 Command History**: Navigate command history with arrow keys, persistent storage
|
|
38
|
+
- **⌨️ Intelligent Tab Completion**: Smart completion with candidate list display
|
|
39
|
+
- **🔌 Hello Plugin**: Example Ruby plugin demonstrating command implementation
|
|
40
|
+
- **⚙️ Command History Configuration**: Configurable history size (default: 1000)
|
|
41
|
+
|
|
42
|
+
### Changed
|
|
43
|
+
- Command mode UI improvements: cleaner interface, better visual feedback
|
|
44
|
+
- Tab completion now shows candidate list when multiple matches exist
|
|
45
|
+
- Plugin system now auto-loads from `lib/rufio/plugins/`
|
|
46
|
+
|
|
47
|
+
### Fixed
|
|
48
|
+
- Tab completion not working for shell commands
|
|
49
|
+
- Command input display showing candidates unnecessarily
|
|
50
|
+
|
|
51
|
+
For detailed information, see [CHANGELOG_v0.32.0.md](./docs/CHANGELOG_v0.32.0.md)
|
|
52
|
+
|
|
53
|
+
## [0.31.0] - 2026-01-01
|
|
54
|
+
|
|
55
|
+
### Added
|
|
56
|
+
- **🚀 Experimental Native Scanner**: High-performance directory scanning with Rust/Go implementations
|
|
57
|
+
- **Rust implementation** (`lib_rust/scanner/`): Fastest, memory-safe implementation
|
|
58
|
+
- **Go implementation** (`lib_go/scanner/`): Fast with excellent concurrency
|
|
59
|
+
- **NativeScanner abstraction layer**: Unified interface with automatic fallback to Ruby
|
|
60
|
+
- **Launch options**: `--native`, `--native=rust`, `--native=go` for performance optimization
|
|
61
|
+
- **Environment variable**: `RUFIO_NATIVE` for configuration
|
|
62
|
+
|
|
63
|
+
### Changed
|
|
64
|
+
- Default scanner remains Ruby implementation for stability
|
|
65
|
+
- Auto-detection priority: Rust > Go > Ruby
|
|
66
|
+
|
|
67
|
+
For detailed information, see [CHANGELOG_v0.31.0.md](./docs/CHANGELOG_v0.31.0.md)
|
|
68
|
+
|
|
69
|
+
## [0.30.0] - 2025-12-30
|
|
70
|
+
|
|
71
|
+
### Added
|
|
72
|
+
- **📚 Help System Overhaul**: Full-screen help mode with Markdown documentation
|
|
73
|
+
- **Preview Pane Scrolling**: `Enter` on files focuses preview pane, `j/k` for scrolling
|
|
74
|
+
- **Help documentation**: `info/welcome.md`, `info/help.md`, `info/keybindings.md`
|
|
75
|
+
- **Enhanced file preview**: `.docx`, `.xlsx`, `.pptx` preview support via `pandoc`
|
|
76
|
+
|
|
77
|
+
### Changed
|
|
78
|
+
- All help documentation converted to English and Markdown format
|
|
79
|
+
- Help mode uses full file manager UI for browsing
|
|
80
|
+
- Preview pane shows `[PREVIEW MODE]` indicator when focused
|
|
81
|
+
|
|
82
|
+
For detailed information, see [CHANGELOG_v0.30.0.md](./docs/CHANGELOG_v0.30.0.md)
|
|
83
|
+
|
|
84
|
+
## [0.21.0] - 2025-12-29
|
|
85
|
+
|
|
86
|
+
### Added
|
|
87
|
+
- **📋 Copy Feature**: `c` key to copy selected files with floating dialog UI
|
|
88
|
+
- **Cross-directory selection**: Select files in one directory and copy/move to another
|
|
89
|
+
- **Multiple selection delete**: Enhanced `x` key for deleting multiple files
|
|
90
|
+
- **Code refactoring**: Extracted dialog confirmation logic to shared methods
|
|
91
|
+
|
|
92
|
+
### Changed
|
|
93
|
+
- Improved SelectionManager with source directory tracking
|
|
94
|
+
- Unified confirmation dialog UI across copy/move/delete operations
|
|
95
|
+
|
|
96
|
+
For detailed information, see [CHANGELOG_v0.21.0.md](./docs/CHANGELOG_v0.21.0.md)
|
|
97
|
+
|
|
98
|
+
## [0.20.0] - 2025-12-28
|
|
99
|
+
|
|
100
|
+
### Added
|
|
101
|
+
- **🎯 Project Mode UI Unification**: Consistent UI between normal and project modes
|
|
102
|
+
- **Script directory support**: Execute custom Ruby scripts from `~/.config/rufio/scripts`
|
|
103
|
+
- **Bookmark rename feature**: `r` key in project mode to rename bookmarks
|
|
104
|
+
- **Enhanced command mode**: `:` command with script execution
|
|
105
|
+
|
|
106
|
+
### Changed
|
|
107
|
+
- Project mode shows bookmark list with consistent UI
|
|
108
|
+
- Improved bookmark management with rename capability
|
|
109
|
+
|
|
110
|
+
For detailed information, see [CHANGELOG_v0.20.0.md](./docs/CHANGELOG_v0.20.0.md)
|
|
111
|
+
|
|
112
|
+
## [0.10.0] - 2025-12-21
|
|
11
113
|
|
|
12
114
|
### 🎨 Enhanced - Bookmark UI Overhaul
|
|
13
115
|
- **Floating input dialogs**: All bookmark operations now use modern floating window interface
|
|
@@ -31,9 +133,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
31
133
|
- New input dialog system with multi-byte character support
|
|
32
134
|
- Enhanced BookmarkManager with private helper methods for dialogs
|
|
33
135
|
- Improved cursor positioning calculations
|
|
34
|
-
- **Detailed changelog**: [CHANGELOG_v0.10.0.md](./CHANGELOG_v0.10.0.md)
|
|
136
|
+
- **Detailed changelog**: [CHANGELOG_v0.10.0.md](./docs/CHANGELOG_v0.10.0.md)
|
|
35
137
|
|
|
36
|
-
## [0.9.0] - 2025-
|
|
138
|
+
## [0.9.0] - 2025-12-13
|
|
37
139
|
|
|
38
140
|
### Added
|
|
39
141
|
- **Escape key support for file/directory creation**: Press `Esc` to cancel file (`a`) or directory (`A`) creation prompts and return to the main view
|
|
@@ -47,8 +149,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
47
149
|
- New `read_line_with_escape` method for cancelable input handling
|
|
48
150
|
- Comprehensive test suite for escape key functionality
|
|
49
151
|
- Support for multi-byte characters (Japanese, etc.) in filename/directory input
|
|
152
|
+
- **Detailed changelog**: [CHANGELOG_v0.9.0.md](./docs/CHANGELOG_v0.9.0.md)
|
|
50
153
|
|
|
51
|
-
## [0.
|
|
154
|
+
## [0.8.0] - 2025-12-06
|
|
155
|
+
|
|
156
|
+
For detailed information, see [CHANGELOG_v0.8.0.md](./docs/CHANGELOG_v0.8.0.md)
|
|
157
|
+
|
|
158
|
+
## [0.7.0] - 2025-11-29
|
|
52
159
|
|
|
53
160
|
### Added
|
|
54
161
|
- **🔌 Plugin System**: Complete extensible plugin architecture for rufio
|
|
@@ -70,9 +177,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
70
177
|
- New `PluginConfig` for configuration file handling
|
|
71
178
|
- Plugin directory structure: `lib/rufio/plugins/` and `~/.rufio/plugins/`
|
|
72
179
|
- Case-insensitive plugin name matching in configuration
|
|
73
|
-
- **Detailed changelog**: [CHANGELOG_v0.7.0.md](./CHANGELOG_v0.7.0.md)
|
|
180
|
+
- **Detailed changelog**: [CHANGELOG_v0.7.0.md](./docs/CHANGELOG_v0.7.0.md)
|
|
74
181
|
|
|
75
|
-
## [0.6.0] - 2025-
|
|
182
|
+
## [0.6.0] - 2025-09-28
|
|
76
183
|
|
|
77
184
|
### Added
|
|
78
185
|
- **🚀 zoxide Integration**: Complete zoxide directory history navigation functionality
|
|
@@ -95,7 +202,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
95
202
|
- Extended `HealthChecker` with zoxide version checking
|
|
96
203
|
- Comprehensive test suite for zoxide functionality
|
|
97
204
|
- Safe path escaping using Ruby's Shellwords module
|
|
98
|
-
- **Detailed changelog**: [CHANGELOG_v0.6.0.md](./CHANGELOG_v0.6.0.md)
|
|
205
|
+
- **Detailed changelog**: [CHANGELOG_v0.6.0.md](./docs/CHANGELOG_v0.6.0.md)
|
|
99
206
|
|
|
100
207
|
## [0.5.0] - 2025-09-20
|
|
101
208
|
|
|
@@ -120,7 +227,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
120
227
|
- Maximum 9 bookmarks with automatic sorting
|
|
121
228
|
- Floating window system for bookmark management
|
|
122
229
|
- Integration with existing terminal UI components
|
|
123
|
-
- **Detailed changelog**: [CHANGELOG_v0.5.0.md](./CHANGELOG_v0.5.0.md)
|
|
230
|
+
- **Detailed changelog**: [CHANGELOG_v0.5.0.md](./docs/CHANGELOG_v0.5.0.md)
|
|
124
231
|
|
|
125
232
|
## [0.4.0] - 2025-09-13
|
|
126
233
|
|
|
@@ -153,7 +260,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
153
260
|
- **Enhanced error handling** patterns throughout codebase
|
|
154
261
|
- **Improved file system safety** checks and validation
|
|
155
262
|
|
|
156
|
-
For detailed information, see [CHANGELOG_v0.4.0.md](./CHANGELOG_v0.4.0.md)
|
|
263
|
+
For detailed information, see [CHANGELOG_v0.4.0.md](./docs/CHANGELOG_v0.4.0.md)
|
|
157
264
|
|
|
158
265
|
## [0.3.0] - 2025-09-06
|
|
159
266
|
|
|
@@ -189,9 +296,22 @@ For detailed information, see [CHANGELOG_v0.4.0.md](./CHANGELOG_v0.4.0.md)
|
|
|
189
296
|
|
|
190
297
|
## Release Links
|
|
191
298
|
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
- [v0.
|
|
299
|
+
### Detailed Release Notes
|
|
300
|
+
|
|
301
|
+
- [v0.31.0](./docs/CHANGELOG_v0.31.0.md) - Experimental Native Scanner Implementation
|
|
302
|
+
- [v0.30.0](./docs/CHANGELOG_v0.30.0.md) - Help System Overhaul
|
|
303
|
+
- [v0.21.0](./docs/CHANGELOG_v0.21.0.md) - Copy Feature & Code Refactoring
|
|
304
|
+
- [v0.20.0](./docs/CHANGELOG_v0.20.0.md) - Project Mode Enhancement & UI Unification
|
|
305
|
+
- [v0.10.0](./docs/CHANGELOG_v0.10.0.md) - Bookmark UI Overhaul
|
|
306
|
+
- [v0.9.0](./docs/CHANGELOG_v0.9.0.md) - Escape Key Support & Input Improvements
|
|
307
|
+
- [v0.8.0](./docs/CHANGELOG_v0.8.0.md) - Additional Features
|
|
308
|
+
- [v0.7.0](./docs/CHANGELOG_v0.7.0.md) - Plugin System
|
|
309
|
+
- [v0.6.0](./docs/CHANGELOG_v0.6.0.md) - zoxide Integration
|
|
310
|
+
- [v0.5.0](./docs/CHANGELOG_v0.5.0.md) - Bookmark System Implementation
|
|
311
|
+
- [v0.4.0](./docs/CHANGELOG_v0.4.0.md) - Floating Dialog System & English Interface
|
|
312
|
+
|
|
313
|
+
### External Links
|
|
314
|
+
|
|
195
315
|
- [GitHub Releases](https://github.com/masisz/rufio/releases) - Download releases and view release history
|
|
196
316
|
- [Installation Guide](./README.md#installation) - How to install rufio
|
|
197
317
|
- [Usage Documentation](./README.md#usage) - Complete usage guide
|
data/README.md
CHANGED
|
@@ -8,13 +8,37 @@ Ruby製のターミナルベースファイルマネージャー
|
|
|
8
8
|
|
|
9
9
|
rufioは、Yaziにインスパイアされたターミナル上で動作するファイルマネージャーです。Rubyで実装されており、プラグインサポートを備えています。軽量で高速な操作性を提供し、ファイルの閲覧・管理・検索機能を備えています。
|
|
10
10
|
|
|
11
|
+
### 🚀 v0.33.0の重要な更新
|
|
12
|
+
|
|
13
|
+
- **🚨 重大なパフォーマンス改善**: ファイルプレビューが40-86倍高速化(80ms → 1-2ms)
|
|
14
|
+
- **⚡ Zig実装追加**: 最小バイナリサイズ(52.6 KB)のネイティブスキャナー
|
|
15
|
+
- **📊 YJIT対応**: Ruby 3.4+ のJITコンパイラで全体的な性能向上
|
|
16
|
+
|
|
17
|
+
詳細は [CHANGELOG v0.33.0](./docs/CHANGELOG_v0.33.0.md) を参照してください。
|
|
18
|
+
|
|
11
19
|
## 特徴
|
|
12
20
|
|
|
13
21
|
- **軽量でシンプル**: Rubyで書かれた軽量なファイルマネージャー
|
|
14
22
|
- **直感的な操作**: Vimライクなキーバインド
|
|
15
23
|
- **プラグインシステム**: 拡張可能なプラグインアーキテクチャ
|
|
16
|
-
-
|
|
17
|
-
-
|
|
24
|
+
- **強力なコマンドモード** (v0.32.0):
|
|
25
|
+
- シェルコマンド実行 (`!ls`, `!git status` など)
|
|
26
|
+
- コマンド履歴(上下矢印キーでナビゲーション)
|
|
27
|
+
- インテリジェントなTab補完(候補リスト表示)
|
|
28
|
+
- Rubyプラグインによる拡張可能なコマンド
|
|
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
|
+
- スムーズなスクロールと快適な操作性
|
|
18
42
|
- **ファイル選択・操作**: 複数ファイルの選択、移動、コピー、削除が可能
|
|
19
43
|
- **リアルタイムフィルター**: sキーでファイル名の絞り込み表示
|
|
20
44
|
- **高度な検索機能**: fzfとrgaを使った強力な検索
|
|
@@ -48,7 +72,7 @@ rufio /path/to # 指定したディレクトリで起動
|
|
|
48
72
|
|
|
49
73
|
### ネイティブスキャナー(実験的機能)
|
|
50
74
|
|
|
51
|
-
rufio v0.31.0以降では、高速なディレクトリスキャンのためのネイティブ実装(Rust/Go)をサポートしています。デフォルトは安定したRuby実装を使用し、オプションでネイティブ実装に切り替え可能です。
|
|
75
|
+
rufio v0.31.0以降では、高速なディレクトリスキャンのためのネイティブ実装(Rust/Go/Zig)をサポートしています。デフォルトは安定したRuby実装を使用し、オプションでネイティブ実装に切り替え可能です。
|
|
52
76
|
|
|
53
77
|
#### 起動オプション
|
|
54
78
|
|
|
@@ -56,10 +80,13 @@ rufio v0.31.0以降では、高速なディレクトリスキャンのための
|
|
|
56
80
|
# デフォルト(Ruby実装 - 安定)
|
|
57
81
|
rufio
|
|
58
82
|
|
|
59
|
-
# ネイティブ実装を有効化(自動検出: Rust > Go > Ruby)
|
|
83
|
+
# ネイティブ実装を有効化(自動検出: Magnus > Zig > Rust > Go > Ruby)
|
|
60
84
|
rufio --native
|
|
61
85
|
rufio --native=auto
|
|
62
86
|
|
|
87
|
+
# Zig実装を使用(v0.33.0 - 実験的)
|
|
88
|
+
rufio --native=zig
|
|
89
|
+
|
|
63
90
|
# Rust実装を強制使用
|
|
64
91
|
rufio --native=rust
|
|
65
92
|
rufio --native rust /path/to/dir
|
|
@@ -69,21 +96,34 @@ rufio --native=go
|
|
|
69
96
|
rufio --native go /path/to/dir
|
|
70
97
|
|
|
71
98
|
# 環境変数でも制御可能
|
|
99
|
+
RUFIO_NATIVE=zig rufio
|
|
72
100
|
RUFIO_NATIVE=rust rufio
|
|
73
101
|
RUFIO_NATIVE=go rufio /path/to/dir
|
|
74
102
|
```
|
|
75
103
|
|
|
76
104
|
#### ネイティブ実装について
|
|
77
105
|
|
|
78
|
-
- **
|
|
79
|
-
- **
|
|
80
|
-
- **
|
|
106
|
+
- **Zig実装** (v0.33.0 - 実験的): 最小バイナリサイズ(52.6 KB)、高速、FFI不要
|
|
107
|
+
- **Magnus (Rust)**: 最速、メモリ安全、FFI不要(バイナリ: 314 KB)
|
|
108
|
+
- **Rust (FFI)**: 高速、メモリ安全、JSON経由
|
|
109
|
+
- **Go (FFI)**: 高速、並行処理に優れる
|
|
110
|
+
- **Ruby実装** (デフォルト): 依存なし、安定動作保証
|
|
111
|
+
|
|
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(最小バイナリ)
|
|
81
117
|
|
|
82
118
|
#### ビルド方法
|
|
83
119
|
|
|
84
120
|
ネイティブ実装を使用するには、事前にビルドが必要です:
|
|
85
121
|
|
|
86
122
|
```bash
|
|
123
|
+
# Zig実装のビルド(v0.33.0 - 実験的)
|
|
124
|
+
cd lib_zig/rufio_native
|
|
125
|
+
make
|
|
126
|
+
|
|
87
127
|
# Rust実装のビルド
|
|
88
128
|
cd lib_rust/scanner
|
|
89
129
|
cargo build --release
|
|
@@ -94,6 +134,11 @@ cd lib_go/scanner
|
|
|
94
134
|
make install
|
|
95
135
|
```
|
|
96
136
|
|
|
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/)
|
|
141
|
+
|
|
97
142
|
#### 注意事項
|
|
98
143
|
|
|
99
144
|
- ネイティブ実装は実験的機能です
|
|
@@ -170,7 +215,7 @@ rufio --help # ヘルプメッセージを表示
|
|
|
170
215
|
| キー | 機能 |
|
|
171
216
|
| --------- | ------------------------------------ |
|
|
172
217
|
| `b` | 現在のディレクトリをブックマークに追加 |
|
|
173
|
-
| `
|
|
218
|
+
| `P` | プロジェクトモードに入る (v0.33.0で変更) |
|
|
174
219
|
| `0` | 起動したディレクトリに移動 |
|
|
175
220
|
| `1`-`9` | 対応する番号のブックマークに移動 |
|
|
176
221
|
|
|
@@ -180,15 +225,44 @@ rufio --help # ヘルプメッセージを表示
|
|
|
180
225
|
| ---- | ---------------------------------- |
|
|
181
226
|
| `z` | zoxide履歴からディレクトリを選択移動 |
|
|
182
227
|
|
|
183
|
-
#### コマンドモード
|
|
228
|
+
#### コマンドモード (v0.32.0 強化版)
|
|
184
229
|
|
|
185
230
|
| キー | 機能 |
|
|
186
231
|
| ------ | ---------------------------------------- |
|
|
187
232
|
| `:` | コマンドモードを起動 |
|
|
188
|
-
| `Tab` |
|
|
233
|
+
| `Tab` | コマンド補完・候補リスト表示(コマンドモード中)|
|
|
234
|
+
| `↑` | 前のコマンドを表示(コマンドモード中) |
|
|
235
|
+
| `↓` | 次のコマンドを表示(コマンドモード中) |
|
|
189
236
|
| `Enter`| コマンドを実行(コマンドモード中) |
|
|
190
237
|
| `ESC` | コマンドモードをキャンセル(コマンドモード中) |
|
|
191
238
|
|
|
239
|
+
**シェルコマンド実行** (v0.32.0):
|
|
240
|
+
```
|
|
241
|
+
:!ls -la # ファイル一覧を表示
|
|
242
|
+
:!git status # Gitステータスを確認
|
|
243
|
+
:!pwd # 現在のディレクトリを表示
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
**バックグラウンド実行** (v0.33.0):
|
|
247
|
+
- `:!command` でシェルコマンドを非同期実行
|
|
248
|
+
- 実行中もrufioの操作が可能
|
|
249
|
+
- 完了時に通知メッセージを3秒間表示
|
|
250
|
+
- 実行結果は自動的に `~/.config/rufio/log/` に保存
|
|
251
|
+
|
|
252
|
+
**Rubyコマンド** (v0.32.0):
|
|
253
|
+
```
|
|
254
|
+
:hello # Hello プラグインを実行
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
#### ログビューワ (v0.33.0)
|
|
258
|
+
|
|
259
|
+
| キー | 機能 |
|
|
260
|
+
| ---- | ---------------------------------- |
|
|
261
|
+
| `L` | コマンド実行ログを閲覧 |
|
|
262
|
+
| `ESC`| ログビューワモードを終了 |
|
|
263
|
+
|
|
264
|
+
コマンド実行ログは `~/.config/rufio/log/` に保存され、`L`キーで閲覧できます。
|
|
265
|
+
|
|
192
266
|
#### ヘルプ
|
|
193
267
|
|
|
194
268
|
| キー | 機能 |
|
data/README_EN.md
CHANGED
|
@@ -13,9 +13,23 @@ rufio is a terminal-based file manager inspired by Yazi. It's implemented in Rub
|
|
|
13
13
|
- **Lightweight & Simple**: A lightweight file manager written in Ruby
|
|
14
14
|
- **Intuitive Operation**: Vim-like key bindings
|
|
15
15
|
- **Plugin System**: Extensible plugin architecture
|
|
16
|
+
- **Powerful Command Mode** (v0.32.0):
|
|
17
|
+
- Shell command execution (`!ls`, `!git status`, etc.)
|
|
18
|
+
- Command history (navigate with arrow keys)
|
|
19
|
+
- Intelligent Tab completion (with candidate list display)
|
|
20
|
+
- Extensible commands via Ruby plugins
|
|
21
|
+
- **Background Command Execution** (v0.33.0):
|
|
22
|
+
- Execute shell commands asynchronously with `:!command`
|
|
23
|
+
- rufio remains operational during execution
|
|
24
|
+
- Displays completion notification
|
|
25
|
+
- Automatically saves execution results to log files
|
|
26
|
+
- **Execution Log Viewer** (v0.33.0):
|
|
27
|
+
- View command execution logs with `L` key
|
|
28
|
+
- Timestamp-based log file management
|
|
29
|
+
- Intuitive UI similar to help mode
|
|
16
30
|
- **File Preview**: View text file contents on the fly
|
|
17
|
-
- **File Selection & Operations**: Select multiple files, move, and delete
|
|
18
|
-
- **Real-time Filter**: Filter files by name using
|
|
31
|
+
- **File Selection & Operations**: Select multiple files, move, copy, and delete
|
|
32
|
+
- **Real-time Filter**: Filter files by name using f key
|
|
19
33
|
- **Advanced Search**: Powerful search using fzf and rga
|
|
20
34
|
- **Multi-platform**: Runs on macOS, Linux, and Windows
|
|
21
35
|
- **External Editor Integration**: Open files with your favorite editor
|
|
@@ -110,6 +124,7 @@ rufio --help # Show help message
|
|
|
110
124
|
| Key | Function |
|
|
111
125
|
| ------- | ------------------------------- |
|
|
112
126
|
| `b` | Show bookmark menu |
|
|
127
|
+
| `P` | Enter project mode (Changed in v0.33.0) |
|
|
113
128
|
| `1`-`9` | Go to corresponding bookmark |
|
|
114
129
|
|
|
115
130
|
#### zoxide Integration
|
|
@@ -118,6 +133,44 @@ rufio --help # Show help message
|
|
|
118
133
|
| --- | ---------------------------------- |
|
|
119
134
|
| `z` | Select directory from zoxide history |
|
|
120
135
|
|
|
136
|
+
#### Command Mode (v0.32.0 Enhanced)
|
|
137
|
+
|
|
138
|
+
| Key | Function |
|
|
139
|
+
| ------- | ----------------------------------------- |
|
|
140
|
+
| `:` | Activate command mode |
|
|
141
|
+
| `Tab` | Command completion / Show candidate list |
|
|
142
|
+
| `↑` | Previous command (in command mode) |
|
|
143
|
+
| `↓` | Next command (in command mode) |
|
|
144
|
+
| `Enter` | Execute command (in command mode) |
|
|
145
|
+
| `ESC` | Cancel command mode (in command mode) |
|
|
146
|
+
|
|
147
|
+
**Shell Command Execution** (v0.32.0):
|
|
148
|
+
```
|
|
149
|
+
:!ls -la # List files with details
|
|
150
|
+
:!git status # Check git status
|
|
151
|
+
:!pwd # Print working directory
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
**Background Execution** (v0.33.0):
|
|
155
|
+
- Execute shell commands asynchronously with `:!command`
|
|
156
|
+
- rufio remains operational during execution
|
|
157
|
+
- Displays completion notification for 3 seconds
|
|
158
|
+
- Execution results automatically saved to `~/.config/rufio/log/`
|
|
159
|
+
|
|
160
|
+
**Ruby Commands** (v0.32.0):
|
|
161
|
+
```
|
|
162
|
+
:hello # Execute Hello plugin
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
#### Log Viewer (v0.33.0)
|
|
166
|
+
|
|
167
|
+
| Key | Function |
|
|
168
|
+
| ----- | ---------------------------- |
|
|
169
|
+
| `L` | View command execution logs |
|
|
170
|
+
| `ESC` | Exit log viewer mode |
|
|
171
|
+
|
|
172
|
+
Command execution logs are saved to `~/.config/rufio/log/` and can be viewed with the `L` key.
|
|
173
|
+
|
|
121
174
|
#### System Operations
|
|
122
175
|
|
|
123
176
|
| Key | Function |
|