rufio 0.20.0 → 0.30.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_v0.21.0.md +175 -0
- data/CHANGELOG_v0.30.0.md +148 -0
- data/README.md +21 -15
- data/README_EN.md +8 -12
- data/info/help.md +111 -0
- data/info/keybindings.md +102 -0
- data/info/welcome.md +40 -0
- data/lib/rufio/application.rb +0 -1
- data/lib/rufio/directory_listing.rb +2 -1
- data/lib/rufio/keybind_handler.rb +415 -40
- data/lib/rufio/selection_manager.rb +10 -1
- data/lib/rufio/terminal_ui.rb +147 -156
- data/lib/rufio/text_utils.rb +49 -0
- data/lib/rufio/version.rb +1 -1
- metadata +6 -2
- data/info/welcome.txt +0 -21
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 8f639904d46c7c6cff1424a06e22df2ec476aab1e575a442a47a329af208c555
|
|
4
|
+
data.tar.gz: 4f682afe7f35715ae18b4fcdc08efef03d00677c621d0422567a23d897b6b30b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 8f6ee453b1868123c11d987244735ce092088f7b720dc6f445e21aed0b191e25b47501ff003720647dc17343accdefd88a72b0dfaf69ca644a160e693ec1a1cf
|
|
7
|
+
data.tar.gz: d1ddf57189b941111a314f11c5b6dbcddbda54d96e6fef4eccb8b7a7fec27a9903ca6b29d66e62181a2d98fe5009026ca2609620cef370eba680851cb710ec31
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
# Changelog v0.21.0 - Copy Feature & Code Refactoring
|
|
2
|
+
|
|
3
|
+
## [0.21.0] - 2025-12-28
|
|
4
|
+
|
|
5
|
+
### 🎨 Enhanced - File Operations & Code Quality
|
|
6
|
+
|
|
7
|
+
Complete implementation of copy functionality with floating dialog UI, cross-directory selection improvements, and major code refactoring for better maintainability.
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
#### Copy Feature
|
|
12
|
+
- **`c` key**: Copy selected files to current directory
|
|
13
|
+
- Uses floating confirmation dialog (green border)
|
|
14
|
+
- Shows source and destination paths
|
|
15
|
+
- Supports cross-directory operations
|
|
16
|
+
- Silent completion (no result dialog)
|
|
17
|
+
- **`SelectionManager#source_directory`**: Track directory where files were selected
|
|
18
|
+
- Enables selecting files in one directory and copying/moving to another
|
|
19
|
+
- Automatically set on first selection
|
|
20
|
+
- Cleared when all selections are removed
|
|
21
|
+
- **Copy confirmation dialog**: Green-bordered floating window
|
|
22
|
+
- Displays source and destination paths with smart truncation
|
|
23
|
+
- Consistent with move/delete confirmation UI
|
|
24
|
+
- `[Y]es` / `[N]o` / `ESC` to cancel
|
|
25
|
+
|
|
26
|
+
#### Multiple Selection Delete
|
|
27
|
+
- **Enhanced `x` key**: Delete multiple selected files
|
|
28
|
+
- Checks for selected items first
|
|
29
|
+
- Falls back to single file deletion if no selection
|
|
30
|
+
- Uses floating confirmation dialog showing source path
|
|
31
|
+
- Red border for warning (dangerous operation)
|
|
32
|
+
|
|
33
|
+
#### UI Improvements
|
|
34
|
+
- **Cross-directory selection display**: Selection marks only show in source directory
|
|
35
|
+
- `is_selected?` method checks current directory matches source directory
|
|
36
|
+
- Prevents confusion when navigating to different directories
|
|
37
|
+
- Selection internally maintained for operations
|
|
38
|
+
|
|
39
|
+
### Changed
|
|
40
|
+
|
|
41
|
+
#### File Operations
|
|
42
|
+
- **Move operation** (`m` key): Uses source directory from SelectionManager
|
|
43
|
+
- Select files → navigate to destination → press `m` to move
|
|
44
|
+
- Blue-bordered confirmation dialog with paths
|
|
45
|
+
- Silent completion
|
|
46
|
+
- **Delete operation** (`x` key):
|
|
47
|
+
- Multiple selection support added
|
|
48
|
+
- Shows source path in confirmation
|
|
49
|
+
- Red-bordered warning dialog
|
|
50
|
+
- **All file operations** now use consistent floating dialog pattern:
|
|
51
|
+
- Red: Delete (dangerous)
|
|
52
|
+
- Blue: Move (informational)
|
|
53
|
+
- Green: Copy (safe)
|
|
54
|
+
|
|
55
|
+
#### Code Quality
|
|
56
|
+
- **terminal_ui.rb refactored**: Reduced from 1139 to 1048 lines (-91 lines)
|
|
57
|
+
- Removed duplicate text utility methods
|
|
58
|
+
- Uses `TextUtils` module for all text operations
|
|
59
|
+
- Better separation of concerns
|
|
60
|
+
- **TextUtils module enhanced**: Added `wrap_preview_lines` method
|
|
61
|
+
- Centralized text display width calculation
|
|
62
|
+
- Multi-byte character support (Japanese, etc.)
|
|
63
|
+
- Consistent truncation and wrapping logic
|
|
64
|
+
- **Method call updates**: All `display_width`, `truncate_to_width` calls use `TextUtils.` prefix
|
|
65
|
+
- Proper module method invocation
|
|
66
|
+
- Fixed runtime errors from refactoring
|
|
67
|
+
|
|
68
|
+
#### Keybind Handler
|
|
69
|
+
- **Removed duplicate method definition**: `show_delete_confirmation`
|
|
70
|
+
- Fixed warning about method redefinition
|
|
71
|
+
- Single source of truth for delete confirmation
|
|
72
|
+
- **Unified confirmation methods**:
|
|
73
|
+
- `show_move_confirmation(count, source_path, dest_path)`
|
|
74
|
+
- `show_copy_confirmation(count, source_path, dest_path)`
|
|
75
|
+
- `show_delete_confirmation(count, source_path)`
|
|
76
|
+
|
|
77
|
+
### Technical Changes
|
|
78
|
+
|
|
79
|
+
#### SelectionManager Enhancement
|
|
80
|
+
- **`@source_directory` tracking**: Remember where files were selected
|
|
81
|
+
- **`toggle_selection` updated**: Accepts `current_directory` parameter
|
|
82
|
+
- Sets source directory on first selection
|
|
83
|
+
- Maintains source directory for subsequent selections
|
|
84
|
+
- Clears source when all items deselected
|
|
85
|
+
- **Cross-directory operation support**:
|
|
86
|
+
- Select in `/path/A`
|
|
87
|
+
- Navigate to `/path/B`
|
|
88
|
+
- Execute move/copy/delete from original location
|
|
89
|
+
|
|
90
|
+
#### TextUtils Module
|
|
91
|
+
- **New method**: `wrap_preview_lines(lines, max_width)`
|
|
92
|
+
- Intelligent line wrapping for preview pane
|
|
93
|
+
- Preserves empty lines
|
|
94
|
+
- Character-by-character width calculation
|
|
95
|
+
- **Improved display width calculation**: Handles full-width and half-width characters
|
|
96
|
+
- **Smart truncation**: Adds ellipsis when space permits
|
|
97
|
+
|
|
98
|
+
#### KeybindHandler Updates
|
|
99
|
+
- **`move_selected_to_current`**: Uses `@selection_manager.source_directory`
|
|
100
|
+
- **`copy_selected_to_current`**: New method following same pattern as move
|
|
101
|
+
- **`delete_current_file_with_confirmation`**: Checks for selected items first
|
|
102
|
+
- **`is_selected?(entry_name)`**: Validates current directory matches source
|
|
103
|
+
- **Path display helper**: `shorten_path(path, max_length)` for dialog display
|
|
104
|
+
|
|
105
|
+
### Bug Fixes
|
|
106
|
+
|
|
107
|
+
- **Fixed undefined method error**: `display_width` in terminal_ui.rb
|
|
108
|
+
- Changed to `TextUtils.display_width`
|
|
109
|
+
- Fixed all text utility method calls
|
|
110
|
+
- **Fixed method redefinition warning**: Removed duplicate `show_delete_confirmation`
|
|
111
|
+
- **Fixed cross-directory selection display**: Selection marks only show in source directory
|
|
112
|
+
- Prevents showing same filename selected in different directories
|
|
113
|
+
- Internal selection state maintained correctly
|
|
114
|
+
|
|
115
|
+
### Documentation
|
|
116
|
+
|
|
117
|
+
- **README.md updated**: Added copy operation documentation
|
|
118
|
+
- Updated File Operations table with Copy row
|
|
119
|
+
- Updated Operation Workflow with `c` key
|
|
120
|
+
- Added copy to File Operations section
|
|
121
|
+
- **README_EN.md updated**: Same updates for English documentation
|
|
122
|
+
|
|
123
|
+
### Key Bindings Summary
|
|
124
|
+
|
|
125
|
+
#### File Selection & Operations
|
|
126
|
+
- `SPACE`: Select/deselect files and directories
|
|
127
|
+
- `m`: Move selected items to current directory (blue dialog)
|
|
128
|
+
- `c`: Copy selected items to current directory (green dialog)
|
|
129
|
+
- `x`: Delete selected items (red dialog)
|
|
130
|
+
|
|
131
|
+
#### Operation Workflow
|
|
132
|
+
```
|
|
133
|
+
1. SPACE → Select files/directories (multiple selection possible)
|
|
134
|
+
2. Choose operation key:
|
|
135
|
+
- m → Move to current directory
|
|
136
|
+
- c → Copy to current directory
|
|
137
|
+
- x → Delete
|
|
138
|
+
3. Floating Dialog → Confirm with Y/N, ESC to cancel
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
#### Cross-Directory Operations
|
|
142
|
+
```
|
|
143
|
+
1. Navigate to source directory
|
|
144
|
+
2. SPACE → Select files
|
|
145
|
+
3. Navigate to destination directory (selection marks hidden)
|
|
146
|
+
4. m/c → Move or copy from source to current
|
|
147
|
+
OR navigate back to source
|
|
148
|
+
5. x → Delete selected files
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
### UI Color Scheme
|
|
152
|
+
|
|
153
|
+
- **Copy dialog**: Green border (`\e[32m`) - safe operation
|
|
154
|
+
- **Move dialog**: Blue border (`\e[34m`) - informational
|
|
155
|
+
- **Delete dialog**: Red border (`\e[31m`) - warning/danger
|
|
156
|
+
- **Selection mark**: `✓` with green background (`\e[42m\e[30m`)
|
|
157
|
+
- **Selection visibility**: Only in source directory
|
|
158
|
+
|
|
159
|
+
### Code Metrics
|
|
160
|
+
|
|
161
|
+
- **Lines of code reduction**: terminal_ui.rb: 1139 → 1048 lines (-8%)
|
|
162
|
+
- **Test coverage**: 309 runs, 1407 assertions, 0 failures
|
|
163
|
+
- **Warnings fixed**: Method redefinition warning eliminated
|
|
164
|
+
- **Module organization**: Better separation with TextUtils module
|
|
165
|
+
|
|
166
|
+
### Migration Notes
|
|
167
|
+
|
|
168
|
+
- **No breaking changes**: All existing functionality preserved
|
|
169
|
+
- **New feature**: `c` key for copy operation
|
|
170
|
+
- **Behavior improvement**: Selection display now directory-aware
|
|
171
|
+
- **Code quality**: Internal refactoring with no user-facing changes
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
**Full Changelog**: [v0.20.0...v0.21.0](https://github.com/masisz/rufio/compare/v0.20.0...v0.21.0)
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
# Changelog - v0.30.0
|
|
2
|
+
|
|
3
|
+
## Release Date: 2025-12-30
|
|
4
|
+
|
|
5
|
+
## New Features & Improvements
|
|
6
|
+
|
|
7
|
+
### Help System Overhaul
|
|
8
|
+
|
|
9
|
+
#### Help Mode (Press `?`)
|
|
10
|
+
- **Full-screen help mode** instead of popup dialog
|
|
11
|
+
- Browse help documentation files in `info/` directory
|
|
12
|
+
- Uses normal file manager UI for navigation
|
|
13
|
+
- Navigation restricted to `info/` directory (cannot go to parent)
|
|
14
|
+
- Press `ESC` to exit help mode and return to previous directory
|
|
15
|
+
|
|
16
|
+
#### Help Documentation
|
|
17
|
+
- Converted all help files to **Markdown format** (`.md`)
|
|
18
|
+
- **Unified language**: All documentation now in English
|
|
19
|
+
- Created comprehensive help files:
|
|
20
|
+
- `info/welcome.md` - Introduction and quick start guide
|
|
21
|
+
- `info/help.md` - Complete feature documentation with table of contents
|
|
22
|
+
- `info/keybindings.md` - Full keybindings reference organized by category
|
|
23
|
+
|
|
24
|
+
### Preview Pane Scrolling
|
|
25
|
+
|
|
26
|
+
#### Enter Key Behavior Change
|
|
27
|
+
- Press `Enter` on a **file** to focus preview pane (instead of doing nothing)
|
|
28
|
+
- Press `Enter` on a **directory** to navigate into it (unchanged)
|
|
29
|
+
- Preview pane shows `[PREVIEW MODE]` indicator when focused
|
|
30
|
+
|
|
31
|
+
#### Scroll Controls in Preview Mode
|
|
32
|
+
- `j` / `↓` : Scroll down one line
|
|
33
|
+
- `k` / `↑` : Scroll up one line
|
|
34
|
+
- `Ctrl+D` : Scroll down half page (20 lines)
|
|
35
|
+
- `Ctrl+U` : Scroll up half page (20 lines)
|
|
36
|
+
- `ESC` : Exit preview mode and return focus to directory list
|
|
37
|
+
|
|
38
|
+
#### Smart Scroll Management
|
|
39
|
+
- Scroll position automatically resets when changing files
|
|
40
|
+
- Scroll position cannot go below zero
|
|
41
|
+
- Works in both **normal mode** and **help mode**
|
|
42
|
+
|
|
43
|
+
### UI Improvements
|
|
44
|
+
|
|
45
|
+
#### Footer Enhancements
|
|
46
|
+
- **Bookmark list with numbers**: `0.dirname 1.bookmark1 2.bookmark2 ...`
|
|
47
|
+
- **Bookmark 0**: Jump to startup directory with `0` key
|
|
48
|
+
- **Processing time**: Display render time in milliseconds
|
|
49
|
+
- **Help hint**: `?:help` shown on the right side
|
|
50
|
+
- Removed time and version display from footer (simplified layout)
|
|
51
|
+
|
|
52
|
+
#### Project Mode Improvements
|
|
53
|
+
- Bookmark list displays with numbers: `1. project1`, `2. project2`, etc.
|
|
54
|
+
- Improved consistency with bookmark number navigation
|
|
55
|
+
|
|
56
|
+
### Header Improvements
|
|
57
|
+
- Help mode indicator: `[Help Mode - Press ESC to exit]`
|
|
58
|
+
- Version information moved to help dialog
|
|
59
|
+
|
|
60
|
+
## Technical Changes
|
|
61
|
+
|
|
62
|
+
### New Methods
|
|
63
|
+
|
|
64
|
+
**KeybindHandler**:
|
|
65
|
+
- `help_mode?` - Check if help mode is active
|
|
66
|
+
- `enter_help_mode` - Enter help mode (navigate to `info/` directory)
|
|
67
|
+
- `exit_help_mode` - Exit help mode and return to previous directory
|
|
68
|
+
- `navigate_parent_with_restriction` - Navigate parent with `info/` directory restriction
|
|
69
|
+
- `preview_focused?` - Check if preview pane is focused
|
|
70
|
+
- `focus_preview_pane` - Focus preview pane (file only)
|
|
71
|
+
- `unfocus_preview_pane` - Unfocus preview pane
|
|
72
|
+
- `preview_scroll_offset` - Get current scroll offset
|
|
73
|
+
- `scroll_preview_down` - Scroll preview down one line
|
|
74
|
+
- `scroll_preview_up` - Scroll preview up one line
|
|
75
|
+
- `scroll_preview_page_down` - Scroll preview down half page (Ctrl+D)
|
|
76
|
+
- `scroll_preview_page_up` - Scroll preview up half page (Ctrl+U)
|
|
77
|
+
- `reset_preview_scroll` - Reset scroll position
|
|
78
|
+
- `handle_enter_key` - Handle Enter key (focus preview or navigate)
|
|
79
|
+
- `handle_preview_focus_key` - Handle keys in preview mode
|
|
80
|
+
|
|
81
|
+
**TerminalUI**:
|
|
82
|
+
- `draw_header` - Updated to show help mode indicator
|
|
83
|
+
- `draw_footer` - Updated to show bookmarks with numbers and processing time
|
|
84
|
+
- `draw_file_preview` - Updated to apply scroll offset and show preview mode indicator
|
|
85
|
+
|
|
86
|
+
### Modified Behavior
|
|
87
|
+
|
|
88
|
+
**Keybindings**:
|
|
89
|
+
- `?` - Enter help mode (was: show help dialog)
|
|
90
|
+
- `Enter` - Focus preview pane on files / Navigate on directories (was: navigate only)
|
|
91
|
+
- `h` - Navigate parent with restriction in help mode (was: unrestricted)
|
|
92
|
+
- `ESC` - Exit help mode or unfocus preview pane (was: clear filter only)
|
|
93
|
+
|
|
94
|
+
**Directory Navigation**:
|
|
95
|
+
- `DirectoryListing#initialize` - Save startup directory as `start_directory`
|
|
96
|
+
- `KeybindHandler#goto_start_directory` - Jump to startup directory with `0` key
|
|
97
|
+
|
|
98
|
+
### Layout Constants
|
|
99
|
+
- `HEADER_FOOTER_MARGIN = 3` - Header + Footer (2-line layout)
|
|
100
|
+
|
|
101
|
+
## Usage Guide
|
|
102
|
+
|
|
103
|
+
### Help Mode
|
|
104
|
+
1. Press `?` to enter help mode
|
|
105
|
+
2. Navigate help files using `j/k/h/l` keys
|
|
106
|
+
3. Press `Enter` or `l` to view a help file
|
|
107
|
+
4. Press `h` to go back (restricted to `info/` directory)
|
|
108
|
+
5. Press `ESC` to exit help mode
|
|
109
|
+
|
|
110
|
+
### Preview Scrolling
|
|
111
|
+
1. Select a file with `j/k` keys
|
|
112
|
+
2. Press `Enter` to focus preview pane
|
|
113
|
+
3. Use `j/k` or arrow keys to scroll line by line
|
|
114
|
+
4. Use `Ctrl+D` / `Ctrl+U` for page scrolling
|
|
115
|
+
5. Press `ESC` to return to directory list
|
|
116
|
+
|
|
117
|
+
### Bookmarks
|
|
118
|
+
- `b` - Add current directory to bookmarks
|
|
119
|
+
- `0` - Jump to startup directory
|
|
120
|
+
- `1-9` - Jump to bookmarks 1-9
|
|
121
|
+
- `p` - Enter project mode (browse all bookmarks)
|
|
122
|
+
|
|
123
|
+
## Testing
|
|
124
|
+
|
|
125
|
+
### New Test Files
|
|
126
|
+
- `test/test_help_mode.rb` - Help mode functionality tests
|
|
127
|
+
- `test/test_preview_scroll.rb` - Preview scrolling tests
|
|
128
|
+
|
|
129
|
+
### Test Results
|
|
130
|
+
- **329 tests** passing
|
|
131
|
+
- **1444 assertions**
|
|
132
|
+
- **0 failures**
|
|
133
|
+
- **0 errors**
|
|
134
|
+
|
|
135
|
+
## Compatibility
|
|
136
|
+
|
|
137
|
+
- Ruby 3.0 or higher
|
|
138
|
+
- Maintains compatibility with existing configuration files
|
|
139
|
+
- Maintains compatibility with existing bookmark data
|
|
140
|
+
- All help files now in English (breaking change for Japanese users)
|
|
141
|
+
|
|
142
|
+
## Known Issues
|
|
143
|
+
|
|
144
|
+
None
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
**Full Changelog**: v0.21.0...v0.30.0
|
data/README.md
CHANGED
|
@@ -16,12 +16,14 @@ rufioは、Yaziにインスパイアされたターミナル上で動作する
|
|
|
16
16
|
- **コマンドモード**: Tab補完とフローティングウィンドウを備えた強力なコマンドシステム
|
|
17
17
|
- **ファイルプレビュー**: テキストファイルの内容をその場で確認
|
|
18
18
|
- **ファイル選択・操作**: 複数ファイルの選択、移動、コピー、削除が可能
|
|
19
|
-
- **ベースディレクトリ操作**: 起動ディレクトリへの一括ファイル移動・コピー
|
|
20
19
|
- **リアルタイムフィルター**: sキーでファイル名の絞り込み表示
|
|
21
20
|
- **高度な検索機能**: fzfとrgaを使った強力な検索
|
|
22
21
|
- **マルチプラットフォーム**: macOS、Linux、Windowsで動作
|
|
23
22
|
- **外部エディタ連携**: お気に入りのエディタでファイルを開く
|
|
24
23
|
- **ヘルスチェック**: システム依存関係の確認機能
|
|
24
|
+
- **ステータスバー**: 処理時間、現在時刻、バージョン情報をリアルタイム表示
|
|
25
|
+
- **ブックマーク一覧表示**: フッタに1-9のブックマークを番号付きで表示
|
|
26
|
+
- **統合ヘルプシステム**: ?キーでキーバインド一覧とお知らせを表示
|
|
25
27
|
|
|
26
28
|
## インストール
|
|
27
29
|
|
|
@@ -87,8 +89,8 @@ rufio --help # ヘルプメッセージを表示
|
|
|
87
89
|
| キー | 機能 |
|
|
88
90
|
| ------- | ---------------------------------------------------- |
|
|
89
91
|
| `Space` | ファイル・ディレクトリを選択・選択解除(複数選択可) |
|
|
90
|
-
| `m` |
|
|
91
|
-
| `
|
|
92
|
+
| `m` | 選択したアイテムをカレントディレクトリに移動 |
|
|
93
|
+
| `c` | 選択したアイテムをカレントディレクトリにコピー |
|
|
92
94
|
| `x` | 選択したアイテムを削除 |
|
|
93
95
|
|
|
94
96
|
#### リアルタイムフィルター機能
|
|
@@ -114,6 +116,7 @@ rufio --help # ヘルプメッセージを表示
|
|
|
114
116
|
| --------- | ------------------------------------ |
|
|
115
117
|
| `b` | 現在のディレクトリをブックマークに追加 |
|
|
116
118
|
| `p` | プロジェクトモードに入る |
|
|
119
|
+
| `0` | 起動したディレクトリに移動 |
|
|
117
120
|
| `1`-`9` | 対応する番号のブックマークに移動 |
|
|
118
121
|
|
|
119
122
|
#### zoxide連携機能
|
|
@@ -131,6 +134,12 @@ rufio --help # ヘルプメッセージを表示
|
|
|
131
134
|
| `Enter`| コマンドを実行(コマンドモード中) |
|
|
132
135
|
| `ESC` | コマンドモードをキャンセル(コマンドモード中) |
|
|
133
136
|
|
|
137
|
+
#### ヘルプ
|
|
138
|
+
|
|
139
|
+
| キー | 機能 |
|
|
140
|
+
| ---- | ---------------------------------- |
|
|
141
|
+
| `?` | キーバインド一覧とお知らせを表示 |
|
|
142
|
+
|
|
134
143
|
#### システム操作
|
|
135
144
|
|
|
136
145
|
| キー | 機能 |
|
|
@@ -144,17 +153,14 @@ rufio --help # ヘルプメッセージを表示
|
|
|
144
153
|
- **選択・選択解除**: `Space`キーでファイルやディレクトリを選択・選択解除
|
|
145
154
|
- **複数選択**: 複数のファイルやディレクトリを同時に選択可能
|
|
146
155
|
- **視覚的表示**: 選択されたアイテムは✓マークと緑色の背景で表示
|
|
147
|
-
- **選択状態の表示**: 画面上部2行目に選択中のアイテム数が表示
|
|
148
|
-
|
|
149
|
-
#### ベースディレクトリ操作
|
|
150
156
|
|
|
151
|
-
|
|
157
|
+
#### ファイル操作
|
|
152
158
|
|
|
153
|
-
| 操作
|
|
154
|
-
|
|
|
155
|
-
| **移動**
|
|
156
|
-
| **コピー** | `
|
|
157
|
-
| **削除**
|
|
159
|
+
| 操作 | キー | 機能 |
|
|
160
|
+
| ---------- | ---- | ---------------------------------------- |
|
|
161
|
+
| **移動** | `m` | 選択したアイテムをカレントディレクトリに移動 |
|
|
162
|
+
| **コピー** | `c` | 選択したアイテムをカレントディレクトリにコピー |
|
|
163
|
+
| **削除** | `x` | 選択したアイテムを削除 |
|
|
158
164
|
|
|
159
165
|
#### 削除操作の詳細
|
|
160
166
|
|
|
@@ -171,11 +177,11 @@ rufio起動時のディレクトリが**ベースディレクトリ**として
|
|
|
171
177
|
```
|
|
172
178
|
1. Space → ファイル・ディレクトリを選択(複数選択可)
|
|
173
179
|
2. 操作キーを選択:
|
|
174
|
-
- m →
|
|
175
|
-
-
|
|
180
|
+
- m → カレントディレクトリに移動
|
|
181
|
+
- c → カレントディレクトリにコピー
|
|
176
182
|
- x → 削除
|
|
177
183
|
3. フローティングダイアログ → Y/Nで確認、ESCでキャンセル
|
|
178
|
-
4.
|
|
184
|
+
4. 操作完了 → 選択解除、画面更新
|
|
179
185
|
```
|
|
180
186
|
|
|
181
187
|
#### 安全機能
|
data/README_EN.md
CHANGED
|
@@ -14,8 +14,7 @@ rufio is a terminal-based file manager inspired by Yazi. It's implemented in Rub
|
|
|
14
14
|
- **Intuitive Operation**: Vim-like key bindings
|
|
15
15
|
- **Plugin System**: Extensible plugin architecture
|
|
16
16
|
- **File Preview**: View text file contents on the fly
|
|
17
|
-
- **File Selection & Operations**: Select multiple files, move,
|
|
18
|
-
- **Base Directory Operations**: Batch file operations to startup directory
|
|
17
|
+
- **File Selection & Operations**: Select multiple files, move, and delete
|
|
19
18
|
- **Real-time Filter**: Filter files by name using s key
|
|
20
19
|
- **Advanced Search**: Powerful search using fzf and rga
|
|
21
20
|
- **Multi-platform**: Runs on macOS, Linux, and Windows
|
|
@@ -85,8 +84,8 @@ rufio --help # Show help message
|
|
|
85
84
|
| Key | Function |
|
|
86
85
|
| ------- | ------------------------------------------- |
|
|
87
86
|
| `Space` | Select/deselect files and directories |
|
|
88
|
-
| `m` | Move selected items to
|
|
89
|
-
| `
|
|
87
|
+
| `m` | Move selected items to current directory |
|
|
88
|
+
| `c` | Copy selected items to current directory |
|
|
90
89
|
| `x` | Delete selected items |
|
|
91
90
|
|
|
92
91
|
#### Real-time Filter
|
|
@@ -132,16 +131,13 @@ rufio --help # Show help message
|
|
|
132
131
|
- **Select/Deselect**: Use `Space` key to select or deselect files and directories
|
|
133
132
|
- **Multiple Selection**: Select multiple files and directories simultaneously
|
|
134
133
|
- **Visual Display**: Selected items are marked with ✓ and highlighted in green
|
|
135
|
-
- **Selection Counter**: The number of selected items is shown on the second line of the screen
|
|
136
134
|
|
|
137
|
-
####
|
|
138
|
-
|
|
139
|
-
The directory where rufio starts becomes the **base directory**, which serves as the destination for move and copy operations.
|
|
135
|
+
#### File Operations
|
|
140
136
|
|
|
141
137
|
| Operation | Key | Function |
|
|
142
138
|
| --------- | --- | --------------------------------------- |
|
|
143
|
-
| **Move** | `m` | Move selected items to
|
|
144
|
-
| **Copy** | `
|
|
139
|
+
| **Move** | `m` | Move selected items to current directory |
|
|
140
|
+
| **Copy** | `c` | Copy selected items to current directory |
|
|
145
141
|
| **Delete** | `x` | Delete selected items |
|
|
146
142
|
|
|
147
143
|
#### Delete Operation Details
|
|
@@ -159,8 +155,8 @@ The directory where rufio starts becomes the **base directory**, which serves as
|
|
|
159
155
|
```
|
|
160
156
|
1. Space → Select files/directories (multiple selection possible)
|
|
161
157
|
2. Choose operation key:
|
|
162
|
-
- m → Move to
|
|
163
|
-
-
|
|
158
|
+
- m → Move to current directory
|
|
159
|
+
- c → Copy to current directory
|
|
164
160
|
- x → Delete
|
|
165
161
|
3. Floating Dialog → Confirm with Y/N, ESC to cancel
|
|
166
162
|
4. Result Display → Review operation results in floating window
|
data/info/help.md
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# rufio Help
|
|
2
|
+
|
|
3
|
+
**rufio** is a terminal-based file manager inspired by Yazi.
|
|
4
|
+
|
|
5
|
+
## Table of Contents
|
|
6
|
+
|
|
7
|
+
- [Basic Operations](#basic-operations)
|
|
8
|
+
- [Navigation](#navigation)
|
|
9
|
+
- [File Operations](#file-operations)
|
|
10
|
+
- [File Selection & Bulk Operations](#file-selection--bulk-operations)
|
|
11
|
+
- [Filtering & Search](#filtering--search)
|
|
12
|
+
- [Bookmarks](#bookmarks)
|
|
13
|
+
- [Other Features](#other-features)
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Basic Operations
|
|
18
|
+
|
|
19
|
+
### Navigation
|
|
20
|
+
|
|
21
|
+
| Key | Action |
|
|
22
|
+
|-----|--------|
|
|
23
|
+
| `j` or `↓` | Move down one item |
|
|
24
|
+
| `k` or `↑` | Move up one item |
|
|
25
|
+
| `h` or `←` | Go to parent directory |
|
|
26
|
+
| `l`, `Enter`, or `→` | Enter directory / Select file |
|
|
27
|
+
| `g` | Jump to top of list |
|
|
28
|
+
| `G` | Jump to bottom of list |
|
|
29
|
+
|
|
30
|
+
### File Operations
|
|
31
|
+
|
|
32
|
+
| Key | Action |
|
|
33
|
+
|-----|--------|
|
|
34
|
+
| `o` | Open file with external editor |
|
|
35
|
+
| `e` | Open in file explorer |
|
|
36
|
+
| `R` | Refresh directory contents |
|
|
37
|
+
| `r` | Rename file or directory |
|
|
38
|
+
| `d` | Delete file or directory (with confirmation) |
|
|
39
|
+
| `a` | Create new file |
|
|
40
|
+
| `A` | Create new directory |
|
|
41
|
+
|
|
42
|
+
### File Selection & Bulk Operations
|
|
43
|
+
|
|
44
|
+
| Key | Action |
|
|
45
|
+
|-----|--------|
|
|
46
|
+
| `Space` | Toggle file/directory selection |
|
|
47
|
+
| `m` | Move selected items to current directory |
|
|
48
|
+
| `c` | Copy selected items to current directory |
|
|
49
|
+
| `x` | Delete selected items |
|
|
50
|
+
|
|
51
|
+
### Filtering & Search
|
|
52
|
+
|
|
53
|
+
| Key | Action |
|
|
54
|
+
|-----|--------|
|
|
55
|
+
| `f` | Start filter mode |
|
|
56
|
+
| `s` | Search file names with fzf |
|
|
57
|
+
| `F` | Search file contents with rga (ripgrep-all) |
|
|
58
|
+
|
|
59
|
+
**Filter Mode:**
|
|
60
|
+
- Type characters to filter files in real-time
|
|
61
|
+
- Press `Enter` to apply filter and exit filter mode
|
|
62
|
+
- Press `ESC` to cancel and clear filter
|
|
63
|
+
|
|
64
|
+
### Bookmarks
|
|
65
|
+
|
|
66
|
+
| Key | Action |
|
|
67
|
+
|-----|--------|
|
|
68
|
+
| `b` | Add current directory to bookmarks |
|
|
69
|
+
| `0` | Jump to startup directory |
|
|
70
|
+
| `1-9` | Jump to bookmark 1-9 |
|
|
71
|
+
| `p` | Enter project mode (browse bookmarks) |
|
|
72
|
+
|
|
73
|
+
**Project Mode:**
|
|
74
|
+
- Browse all bookmarks with normal navigation keys
|
|
75
|
+
- Press `Space` to select a bookmark and jump to it
|
|
76
|
+
- Press `ESC` to exit project mode
|
|
77
|
+
|
|
78
|
+
### Other Features
|
|
79
|
+
|
|
80
|
+
| Key | Action |
|
|
81
|
+
|-----|--------|
|
|
82
|
+
| `z` | Navigate using zoxide history |
|
|
83
|
+
| `:` | Enter command mode |
|
|
84
|
+
| `?` | Enter help mode (this mode) |
|
|
85
|
+
| `ESC` | Exit help mode / Cancel filter |
|
|
86
|
+
| `q` | Quit rufio |
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## Help Mode
|
|
91
|
+
|
|
92
|
+
You are currently in **Help Mode**. In this mode:
|
|
93
|
+
|
|
94
|
+
- Navigate through help files using normal keys (`j/k/h/l`)
|
|
95
|
+
- Press `l` or `Enter` to view a help file
|
|
96
|
+
- Press `h` to go back (restricted to `info/` directory)
|
|
97
|
+
- Press `ESC` to exit help mode and return to your previous directory
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## Tips
|
|
102
|
+
|
|
103
|
+
1. **Quick navigation**: Use `g` and `G` to jump to top/bottom
|
|
104
|
+
2. **Bulk operations**: Select multiple files with `Space`, then use `m/c/x`
|
|
105
|
+
3. **Filter + Search**: Use `f` for real-time filtering, `s` for fuzzy search
|
|
106
|
+
4. **Bookmarks**: Save frequently used directories with `b`, access with `1-9`
|
|
107
|
+
5. **Project mode**: Press `p` to see all bookmarks at once
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
For more information, visit: https://github.com/masisz/rufio
|
data/info/keybindings.md
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# Keybindings Reference
|
|
2
|
+
|
|
3
|
+
Complete reference of all keyboard shortcuts in **rufio**.
|
|
4
|
+
|
|
5
|
+
## Navigation
|
|
6
|
+
|
|
7
|
+
| Key | Action |
|
|
8
|
+
|-----|--------|
|
|
9
|
+
| `j` / `↓` | Move down |
|
|
10
|
+
| `k` / `↑` | Move up |
|
|
11
|
+
| `h` / `←` | Go to parent directory |
|
|
12
|
+
| `l` / `→` / `Enter` | Enter directory or select file |
|
|
13
|
+
| `g` | Jump to top of list |
|
|
14
|
+
| `G` | Jump to bottom of list |
|
|
15
|
+
|
|
16
|
+
## File Operations
|
|
17
|
+
|
|
18
|
+
| Key | Action |
|
|
19
|
+
|-----|--------|
|
|
20
|
+
| `o` | Open file with external editor |
|
|
21
|
+
| `e` | Open in file explorer (system default) |
|
|
22
|
+
| `R` | Refresh directory contents |
|
|
23
|
+
| `r` | Rename file or directory |
|
|
24
|
+
| `d` | Delete file or directory (with confirmation) |
|
|
25
|
+
| `a` | Create new file |
|
|
26
|
+
| `A` | Create new directory |
|
|
27
|
+
|
|
28
|
+
## File Selection
|
|
29
|
+
|
|
30
|
+
| Key | Action |
|
|
31
|
+
|-----|--------|
|
|
32
|
+
| `Space` | Toggle selection on current item |
|
|
33
|
+
| `m` | Move selected items to current directory |
|
|
34
|
+
| `c` | Copy selected items to current directory |
|
|
35
|
+
| `x` | Delete selected items |
|
|
36
|
+
|
|
37
|
+
## Filtering & Search
|
|
38
|
+
|
|
39
|
+
| Key | Action |
|
|
40
|
+
|-----|--------|
|
|
41
|
+
| `f` | Enter filter mode (type to filter) |
|
|
42
|
+
| `s` | Search file names with fzf |
|
|
43
|
+
| `F` | Search file contents with rga |
|
|
44
|
+
|
|
45
|
+
## Bookmarks
|
|
46
|
+
|
|
47
|
+
| Key | Action |
|
|
48
|
+
|-----|--------|
|
|
49
|
+
| `b` | Add current directory to bookmarks |
|
|
50
|
+
| `0` | Jump to startup directory |
|
|
51
|
+
| `1` | Jump to bookmark 1 |
|
|
52
|
+
| `2` | Jump to bookmark 2 |
|
|
53
|
+
| `3` | Jump to bookmark 3 |
|
|
54
|
+
| `4` | Jump to bookmark 4 |
|
|
55
|
+
| `5` | Jump to bookmark 5 |
|
|
56
|
+
| `6` | Jump to bookmark 6 |
|
|
57
|
+
| `7` | Jump to bookmark 7 |
|
|
58
|
+
| `8` | Jump to bookmark 8 |
|
|
59
|
+
| `9` | Jump to bookmark 9 |
|
|
60
|
+
| `p` | Enter project mode (browse all bookmarks) |
|
|
61
|
+
|
|
62
|
+
## Other
|
|
63
|
+
|
|
64
|
+
| Key | Action |
|
|
65
|
+
|-----|--------|
|
|
66
|
+
| `z` | Navigate using zoxide history |
|
|
67
|
+
| `:` | Enter command mode |
|
|
68
|
+
| `?` | Enter help mode |
|
|
69
|
+
| `ESC` | Exit current mode (help/filter/project) |
|
|
70
|
+
| `q` | Quit rufio |
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Mode-Specific Keys
|
|
75
|
+
|
|
76
|
+
### Filter Mode
|
|
77
|
+
- **Any character**: Add to filter query
|
|
78
|
+
- **Backspace**: Remove last character
|
|
79
|
+
- **Enter**: Apply filter and exit filter mode
|
|
80
|
+
- **ESC**: Cancel filter and exit filter mode
|
|
81
|
+
|
|
82
|
+
### Project Mode
|
|
83
|
+
- **j/k**: Navigate through bookmarks
|
|
84
|
+
- **Space**: Select bookmark and jump to directory
|
|
85
|
+
- **ESC**: Exit project mode
|
|
86
|
+
|
|
87
|
+
### Help Mode
|
|
88
|
+
- **j/k/h/l**: Navigate help files
|
|
89
|
+
- **ESC**: Exit help mode and return to previous directory
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Tips
|
|
94
|
+
|
|
95
|
+
- **Vim users**: Navigation keys (`hjkl`) work exactly like Vim
|
|
96
|
+
- **Selection**: Use `Space` to mark multiple files, then operate on all at once
|
|
97
|
+
- **Quick access**: Number keys `1-9` provide instant access to bookmarks
|
|
98
|
+
- **Filtering**: Press `f` and start typing for real-time filtering
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
*Press `?` anytime to return to help mode*
|