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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0b83ee6642477115c1a4590c5e0dd5194277eb5cc893e66fa8f59467a8768bec
4
- data.tar.gz: 674b4c809669a17fcfc94a068e13a1524977cda466b610a75cd94f85995cbfbb
3
+ metadata.gz: 8f639904d46c7c6cff1424a06e22df2ec476aab1e575a442a47a329af208c555
4
+ data.tar.gz: 4f682afe7f35715ae18b4fcdc08efef03d00677c621d0422567a23d897b6b30b
5
5
  SHA512:
6
- metadata.gz: 8e72520a40a2315b963d1c9a04f0071f35732696bbbf56d83a8d990025fb334fb6c834ec73bbe97b18fe27122c878771fc9710c33eda3293aa0dd0478946cd1e
7
- data.tar.gz: 26089800c3bb70e4b63d698ffdb8c87c5f4827229769bddef6e18c76cfa78984e9dbbacdf7bf14de2c201396c390b714b89ec74a170fda157ea5a7297c7b0293
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
- | `p` | 選択したアイテムをベースディレクトリにコピー |
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
- rufio起動時のディレクトリが**ベースディレクトリ**として設定され、選択したファイルの移動・コピー先となります。
157
+ #### ファイル操作
152
158
 
153
- | 操作 | キー | 機能 |
154
- | -------- | ---- | ---------------------------------------- |
155
- | **移動** | `m` | 選択したアイテムをベースディレクトリに移動 |
156
- | **コピー** | `p` | 選択したアイテムをベースディレクトリにコピー |
157
- | **削除** | `x` | 選択したアイテムを削除 |
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
- - pベースディレクトリにコピー
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, copy, and delete
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 base directory |
89
- | `p` | Copy selected items to base directory |
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
- #### Base Directory Operations
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 base directory |
144
- | **Copy** | `p` | Copy selected items to base directory |
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 base directory
163
- - p → Copy to base directory
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
@@ -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*