File TODO changed (mode: 100644) (index 5f6c5ee8a..fa92192e3) |
1 |
|
Basic things that need to be done. |
|
2 |
|
Termcap or terminfo support for keybindings (do we need this? curses does). |
|
3 |
|
Backgrounding of commands with job control (pause/resume/kill). |
|
4 |
|
Maybe remove 'trash' option, since we have two commands for deletion. |
|
5 |
|
Templates for :touch. |
|
6 |
|
Mouse support. |
|
7 |
|
Wrapping of lines in the menus. |
|
8 |
|
IPC among all running vifm instances (share settings among instances). |
|
9 |
|
Make status bar able to display error and info messages at the same time. |
|
10 |
|
Command to create multiple copies of selected one with ability to rename |
|
11 |
|
it (e.g. a -> :hub b c -> a b c, a -> :hub! b c -> b c). |
|
12 |
|
Add :increment and :decrement commands, which should work in two modes |
|
13 |
|
in the same way as Ctrl-X/Ctrl-A and like their combination with :clone. |
|
14 |
|
Improve ga and gA commands to recalculate sizes of modified directories |
|
15 |
|
only, and maybe update size of all parent cached directories. And maybe |
|
16 |
|
show somehow in the TUI calculation process. Maybe cache in vifminfo. |
|
17 |
|
Better remove confirmation messages (should contain list of files). |
|
18 |
|
Better failed operation messages (list of errors, not just one first error). |
|
19 |
|
Process shell pause request for running in %s. |
|
20 |
|
Filtering in menus. |
|
21 |
|
Search match highlight in menus. |
|
22 |
|
For 'syscalls', vifm should ask for standard retry/ignore/abort actions on |
|
23 |
|
error (done for file/directory removal). |
|
24 |
|
Queueing of file operations. |
|
|
1 |
|
Basic things: |
|
2 |
|
* Menu shortcut to put current line into command-line. |
|
3 |
|
* Merged directory history for both panes. |
|
4 |
|
* Improve ga and gA commands. (partially done) |
|
5 |
|
* Queueing of file operations. |
|
6 |
|
* Backgrounding of commands with job control (pause/resume/kill). (partially |
|
7 |
|
done) |
|
8 |
|
* Display parsing errors in dialog that indicate the error, don't rely on |
|
9 |
|
status bar. |
|
10 |
|
* Remove trash option, since we have two commands for deletion. |
|
11 |
|
* Abort/retry/ignore kind of actions for i/o for 'syscalls'. (partially |
|
12 |
|
done) |
|
13 |
|
* Search match highlight in menus. |
|
14 |
|
* Filtering in menus. |
|
15 |
|
* Process shell pause request for running in %s. |
|
16 |
|
* Responsive TUI during blocking operations. |
|
17 |
|
* Better failed operation messages (partially done) |
|
18 |
|
* Better removal confirmation messages. |
|
19 |
|
* Make status bar able to display error and info messages at the same time. |
|
20 |
|
* Command to create multiple copies of selected file |
25 |
21 |
|
|
26 |
|
Documentation. |
|
27 |
|
Better documentation. |
|
28 |
|
Maybe divide vifm.txt in several files (if it becomes too big). |
|
29 |
|
Document single and double quotes treating in the command-line mode. |
|
30 |
|
Document name conflict resolution options. |
|
|
22 |
|
Documentation: |
|
23 |
|
* Document non-forking requirement for 'vicmd' on :rename and alike |
|
24 |
|
commands. |
|
25 |
|
* State the need of *nix tools on Windows more explicitly. |
|
26 |
|
* Describe 'shell', $SHELL and `:shell` relationships. |
|
27 |
|
* Document single and double quotes treating in the command-line mode. |
|
28 |
|
* Divide docs into several files (as it's quite big now). |
|
29 |
|
* Document name conflict resolution options. |
|
30 |
|
* Generally better documentation. (partially done) |
|
31 |
|
* Add separate section on bookmarks. |
31 |
32 |
|
|
32 |
|
Windows. |
|
33 |
|
Make :chmod accept arguments. |
|
34 |
|
Make properties dialog change file attributes recursively. |
|
35 |
|
Add a command to create .lnk files. |
|
36 |
|
Follow targets of .lnk files. |
|
37 |
|
Make 'fastrun' understand file extensions on Windows (to ignore them). |
|
38 |
|
Maybe read first bytes of files and threat files as executable if first |
|
39 |
|
two bytes equal to '#!'. |
|
40 |
|
Make 'slowfs' option available on Windows and provide a support for builtin |
|
41 |
|
file system time 'winnetwork', which will mean network resources. |
|
42 |
|
Maybe sort completion items ignoring their case on Windows. |
|
43 |
|
Handle numpad keys better, just like corresponding non-numpad keys. |
|
|
33 |
|
Vi(m) specific features: |
|
34 |
|
* Add support for directory completion for some of :set options. |
|
35 |
|
* 'wildignore' ('wig') option |
|
36 |
|
* Think about dot normal mode command. |
|
37 |
|
* Completion based on global (when one enters pattern<tab>, e.g. *.c<tab>). |
|
38 |
|
* Add support of n flag for :substitute command. |
|
39 |
|
* :let mapleader and <leader> support. |
|
40 |
|
* Ctrl-W F key. |
|
41 |
|
* Add support of [count] for Ctrl-E/Ctrl-Y/H/M/L. |
|
42 |
|
* nrformats option as in Vim. |
|
43 |
|
* Better registers support. (partially done) |
|
44 |
|
* Add support of ^= in :set command for more option kinds. |
|
45 |
|
* Better ranges (add support for search patterns). |
|
46 |
|
* :map without arguments. |
|
47 |
|
* Lazy redraw support. |
|
48 |
|
* Expand environment variables for :edit command. |
|
49 |
|
* Don't move cursor on search failure. |
|
50 |
|
* Completion of first argument for :map commands. |
|
51 |
|
* Make gU2U and similar commands work as in Vim. |
|
52 |
|
* Change file list filters to use fold levels. |
|
53 |
|
* Quickfix list support |
|
54 |
|
* /, ?, n, N as selectors. |
|
55 |
|
* Fix '' to go back to all jumps G gg links (in one directory?). |
|
56 |
|
* Maybe make zf and zd more Vim-like. |
|
57 |
|
* Kinda macros like in Vim (qa ... q). |
|
58 |
|
* Add =~ and !~ operators to expressions. |
|
59 |
|
* Add titleold option. |
|
60 |
|
* Support hex and octal numbers in :set. |
|
61 |
|
* Add %p and %P macros to rulerformat option. |
44 |
62 |
|
|
45 |
|
Vi(m) specific features that need to be added. |
|
46 |
|
Fix '' to go back to all jumps G gg links (in one directory?). |
|
47 |
|
Change file list filters to use fold levels instead of just |
|
48 |
|
the dot filter and regular expression filter (what does this mean?). |
|
49 |
|
Better registers support. |
|
50 |
|
/, ?, n, N as selectors. |
|
51 |
|
Make n, N, / and ? with count behave like Vim on nowrapscan and match fail |
|
52 |
|
(this means "don't move cursor on search failure"). |
|
53 |
|
:map without arguments |
|
54 |
|
Better ranges (add support for search patterns). |
|
55 |
|
Ctrl-W F key. |
|
56 |
|
'wildignore' ('wig') option (also think about it in context of file |
|
57 |
|
filtering). |
|
58 |
|
Kinda macros like in Vim (qa ... q). |
|
59 |
|
Something like <silent> in Vim (no command blinking in the command-line) |
|
60 |
|
:let mapleader and <leader> support. |
|
61 |
|
Completion of first argument for :map commands. |
|
62 |
|
Support hex and octal numbers in :set |
|
63 |
|
Add support of ^= in :set command for more option kinds. |
|
64 |
|
Add support for directory completion for some of :set options. |
|
65 |
|
Add support of 'n' flag for :substitute command. |
|
66 |
|
Expand environment variables for :edit command. |
|
67 |
|
Think about dot normal mode command. |
|
68 |
|
Add support of [count] for Ctrl-E/Ctrl-Y/H/M/L. |
|
69 |
|
Completion based on global (when one enters pattern<tab>, e.g. *.c<tab>). |
|
70 |
|
Quickfix list support (to navigate through file list produced by :find or |
|
71 |
|
:locate with :cn, :cp and alike). |
|
72 |
|
Maybe add 'titleold' option. |
|
73 |
|
Maybe add "%p" and "%P" macros to 'rulerformat' option. |
|
74 |
|
Make gU2U and similar commands work as in Vim. |
|
75 |
|
Lazy redraw support (useful for mappings and udf). |
|
76 |
|
'nrformats' option as in Vim. |
|
|
63 |
|
Windows: |
|
64 |
|
* Make properties dialog change file attributes recursively. |
|
65 |
|
* Make :chmod accept arguments. |
|
66 |
|
* Add command to create .lnk files. |
|
67 |
|
* Sort completion items ignoring their case on Windows. |
|
68 |
|
* Handle numpad keys better, just like corresponding non-numpad keys. |
|
69 |
|
* Follow targets of .lnk files. |
|
70 |
|
* Make 'fastrun' understand file extensions on Windows (to ignore them). |
|
71 |
|
* Make 'slowfs' option available on Windows |
|
72 |
|
* Support more of pdcurses specific keys (e.g. <a-bs>, <s-bs>). |
|
73 |
|
* Read first bytes of files and treat '#!' files as executable. |
77 |
74 |
|
|
78 |
|
Possible things to add. |
|
79 |
|
Use system wide mimetypes file. /etc/mailcap? |
|
80 |
|
Virtual File System - currently vifm can use fuse to mount most |
|
81 |
|
file systems. |
|
82 |
|
Make :undolist more interactive. |
|
83 |
|
Maybe something like :g/.../com and :v/.../com in Vim. |
|
84 |
|
Add g/ and g? commands (search, but don't select files). |
|
85 |
|
Reverse searching (/ for search, g/ for selecting, g!/ for selecting |
|
86 |
|
reverse) |
|
87 |
|
Improve sorting (iext; choosing multiple sorting keys in dialog). |
|
88 |
|
Add :mksession command and 'sessionoptions' option. |
|
89 |
|
Position macros for user defined commands (%1, %2, ..., %9). Something |
|
90 |
|
like %!1 could be used for mandatory parameters. |
|
91 |
|
Some key to (un)select all files with extension of current file. |
|
92 |
|
Maybe we should not reread configuration files on :restart when |
|
93 |
|
--no-configs was passed on startup. |
|
94 |
|
'wildmode' option. |
|
95 |
|
A macro to redirect command output into view pane. |
|
96 |
|
$_ env var and Alt-T combination as in bash shell. |
|
97 |
|
Rename existing file option on name conflicts. |
|
98 |
|
Support of command line arguments like ~/some.ssh/server/path (for FUSE). |
|
99 |
|
Add search history for less-like mode. |
|
100 |
|
Update visible symbolic links in the other pane on updating current pane |
|
101 |
|
(to show broken links to the user). |
|
102 |
|
Highlight first line of command-editing buffer of vifm in different |
|
103 |
|
color, like gitcommit syntax file does. |
|
104 |
|
Parse escape sequences in menus as in preview. |
|
|
75 |
|
Possible things to add: |
|
76 |
|
* Add macros for marks. |
|
77 |
|
* Make package for Cygwin. |
|
78 |
|
* Position macros for user defined commands (%1, %2, ..., %9). |
|
79 |
|
* Improve sorting (iext; choosing multiple sorting keys in dialog). |
|
80 |
|
(partially done) |
|
81 |
|
* Consider escaping of tilde in paths. |
|
82 |
|
* Wrapping of lines in the menus. |
|
83 |
|
* Something like :g/.../com and :v/.../com in Vim. |
|
84 |
|
* Don't reread config files on :restart for --no-configs session. |
|
85 |
|
* Add tabs. |
|
86 |
|
* Better renaming keys. |
|
87 |
|
* Quad-view + tabs |
|
88 |
|
* Add a general file preview script. |
|
89 |
|
* A more convenient shortcut for the :filter command (at least :filt). |
|
90 |
|
* Multiselect for items (menu and/or file list). |
|
91 |
|
* inotify support on Linux. (partially done) |
|
92 |
|
* :filter !filter-tool |
|
93 |
|
* Add short description to key menu. |
|
94 |
|
* Use system wide mimetypes file. /etc/mailcap? |
|
95 |
|
* :select/unselect commands. |
|
96 |
|
* Add "|" command to menu to process list with external tool. |
|
97 |
|
* "Blow directory" command to replace directory with its content. |
|
98 |
|
* Some key to (un)select all files with extension of current file. |
|
99 |
|
* $_ env var and Alt-T combination as in bash shell. |
|
100 |
|
* Select contents of a register "xgs, current behaviour on gs. |
|
101 |
|
* Templates for :touch. |
|
102 |
|
* Reverse searching |
|
103 |
|
* Add g/ and g? commands (search, but don't select files). |
|
104 |
|
* IPC among all running vifm instances (share settings among instances). |
|
105 |
|
* More flexible control over displaying file size. |
|
106 |
|
* { and } keys to skip to files/directories. |
|
107 |
|
* Parse escape sequences in menus as in preview. |
|
108 |
|
* Virtual File System - currently vifm can use FUSE to mount most file |
|
109 |
|
systems. |
|
110 |
|
* ]s/[s || ]t/[t || ]h/[h to go to the next/previous selected file. |
|
111 |
|
* Add removable media managing. |
|
112 |
|
* Something to control behaviour of menu picks. |
|
113 |
|
* Like gv but to select just pasted files (gp?). |
|
114 |
|
* Compare content of panes like C-x d in Midnight Commander. |
|
115 |
|
* Option suggestions. |
|
116 |
|
* g~<selector> and g?. |
|
117 |
|
* Command autocompletion. |
|
118 |
|
* Add trashes bang to list empty trashes or all of them. |
|
119 |
|
* 'wildmode' option. |
|
120 |
|
* Try to make it work in monochrome terminal. |
|
121 |
|
* Support of command line arguments like ~/some.ssh/server/path (for FUSE). |
|
122 |
|
* Treat `:filter pattern` as `:filter \<pattern\>`. |
|
123 |
|
* Add search history for less-like mode. |
|
124 |
|
* "Rename existing file" option on name conflicts. |
|
125 |
|
* Make use of new job information in :jobs menu. |
|
126 |
|
* Update visible symlinks in the other pane on updating current pane. |
|
127 |
|
* Try drawing progress bar in progress dialog. |
|
128 |
|
* Mouse support. (partially done) |
|
129 |
|
* Possibility to make colorful background per column. |
|
130 |
|
* Add a key to menu mode to repeat command and update menu. |
|
131 |
|
* Extract vim plugin part of install to vifm.vim README. |
|
132 |
|
* A macro to redirect command output into view pane. |
|
133 |
|
* File access history. |
|
134 |
|
* Make :alink, :copy, ... accept globs (e.g. :co *.c). |
|
135 |
|
* Highlight first line of command-editing buffer in different color. |
|
136 |
|
* Output numbers on :hi if it were numbers in color scheme. |
|
137 |
|
* Add timestamps to history items. |
105 |
138 |
|
|
106 |
|
Other (questionable) things. |
|
107 |
|
Use mimetypes in FILETYPE. |
|
108 |
|
%p/%I macro to prompt user for input. |
|
109 |
|
Maybe inotify support on Linux. |
|
110 |
|
Command like ' but that executes bookmark ? |
|
111 |
|
Maybe we should add a command to view screen ? |
|
112 |
|
Make directory stack menu interactive ? |
|
113 |
|
Maybe add + and - commands to undo by commands, not command groups. |
|
114 |
|
Remove items from :history command menu? |
|
115 |
|
:edit, etc. in the menus. |
|
116 |
|
:alias |
|
117 |
|
Like gv but to select just pasted files (gp?). |
|
118 |
|
Modify marks on rename operations. |
|
119 |
|
:toupper and :tolower |
|
120 |
|
Maybe accept regular expressions as second argument of :colo command. |
|
121 |
|
Make :alink, :copy, ... accept globs (e.g. :co *.c). |
|
122 |
|
Option to trigger completion on slash in command-line. |
|
123 |
|
Live preview of color schemes. |
|
124 |
|
"Blow directory" command to replace directory with its content. |
|
125 |
|
Add file selector based on file extensions. |
|
126 |
|
Add a key to menu mode to repeat command and update menu. |
|
127 |
|
:edit - select the file after exiting editor? |
|
128 |
|
Add a builtin function (or variable?) to get number of selected files |
|
129 |
|
in a view (at least in current). To be used in udf commands to |
|
130 |
|
make a choice between using %b and %f. Or maybe adding a macro |
|
131 |
|
for this is a better way to go? |
|
132 |
|
Use custom title for fuse mounts, e.g.: |
|
133 |
|
- fuse://... |
|
134 |
|
- /../fuse_file/... |
|
|
139 |
|
Questionable things: |
|
140 |
|
* Full client-server operation of vifm (separate core from TUI). |
|
141 |
|
* %p/%I macro to prompt user for input. |
|
142 |
|
* Maybe re-position cursor after :!ls%u. |
|
143 |
|
* Remove items from :history command menu? |
|
144 |
|
* Maybe use @path syntax to load custom views. |
|
145 |
|
* Add + and - commands to undo by commands, not command groups. |
|
146 |
|
* :edit, etc. in the menus. |
|
147 |
|
* Modify marks on rename operations. |
|
148 |
|
* Remove delay on file overwrite. |
|
149 |
|
* Make :undolist more interactive. |
|
150 |
|
* Add GUI interface one day. |
|
151 |
|
* Use custom title for fuse mounts |
|
152 |
|
* Option to trigger completion on slash in command-line. |
|
153 |
|
* Add file selector based on file extensions. |
|
154 |
|
* :edit - select the file after exiting editor? |
|
155 |
|
* Ability to enter a mount with multiple vifm instances without |
|
156 |
|
reunpacking/reconnecting. |
|
157 |
|
* Consider conflict resolution for :move and alike. |
|
158 |
|
* Builtin function (or variable?) to get number of selected files. |
|
159 |
|
* Make directory stack menu interactive? |
|
160 |
|
* Key like ' but that executes bookmark? |
|
161 |
|
* Tree-like view with support of foldings (for each directory). |
|
162 |
|
* Consider adding "da" to remove all elements in :bmarks menu. |
|
163 |
|
* Add a command to view screen. |
|
164 |
|
* Command like :run[ &]. |
|
165 |
|
* Add :set to menu mode command-line. |
|
166 |
|
* Add :mksession command and 'sessionoptions' option. |
|
167 |
|
* Add :keepsel prefix. |
|
168 |
|
* Termcap or terminfo support for keybindings |
|
169 |
|
* Use mimetypes for matching file types. |
|
170 |
|
* Add :increment and :decrement commands. |
|
171 |
|
* Consider changing "dd" to "d" in menus. |
|
172 |
|
* Consider caching directory sizes in vifminfo. |
|
173 |
|
* Shell alias execution (and completion) |
|
174 |
|
* Decide whether redefining command shortcuts like :fil should be allowed. |
|
175 |
|
* Ability to hide command line when not active. |
|
176 |
|
* Add tags to angle bracket maps in vimdoc. |
|
177 |
|
* :alias |
|
178 |
|
* Live preview of color schemes. |
|
179 |
|
* More customizable trash. |
|
180 |
|
* Add :toupper and :tolower functions. |
|
181 |
|
* More trash-like trash. |
|
182 |
|
* Accept regexps as second argument of :colo command. |
135 |
183 |
|
|
136 |
|
Code improvements. |
|
137 |
|
Write more tests. |
|
138 |
|
Improve logging (print back trace in some cases, increase verbosity). |
|
139 |
|
Add logging levels. |
|
140 |
|
Stay at the same file in some cases. |
|
141 |
|
Replace a lot of fields in cmd_add_t struct with a set of bit flags. |
|
142 |
|
Maybe move startup and initialization code out of config.c and vifm.c |
|
143 |
|
to a separate file. |
|
144 |
|
Get rid of repeatable `menu->win_rows - 3` in menu.c. |
|
145 |
|
Get rid of repeatable `(menu->win_rows - 3 + 1)/2 - 1` in menu.c. |
|
146 |
|
Think about window_rows and window_width members of FileView: why |
|
147 |
|
do they contain (rows - 1) and (width - 1) ? |
|
148 |
|
Reduce number of magic numbers. |
|
149 |
|
List of errors, which are accumulated and shown at appropriate time (try |
|
150 |
|
sourcing colorscheme with scripting errors to understand the issue). |
|
151 |
|
Fix code duplication related to composing of undo messages. |
|
152 |
|
Maybe show "An error occurred" message on fail to build menus like |
|
153 |
|
apropos or locate instead of "No files found" (check that list is |
|
154 |
|
empty AND an error occurred). |
|
155 |
|
Continue replacing calls like `snprintf(foo, sizeof(foo), "%s", line)` with |
|
156 |
|
copy_str(). |
|
157 |
|
Maybe allow specifying limit of input characters for command-line prompt |
|
158 |
|
submode. Would it make conflict resolution prompt easier to use? |
|
159 |
|
Maybe pass var by pointer to var_free and cleanup the structure. |
|
160 |
|
Write more tests for get_lines functions in string_array.c |
|
161 |
|
Add a function to count number of elements in a NULL terminated array of |
|
162 |
|
pointers. |
|
163 |
|
Separate filelist data from view data (extract into separate structure). |
|
164 |
|
Create separate utilities for engine/ part to make them self-consistent. |
|
165 |
|
Maybe extract history related code out of filelist.c to separate file. |
|
166 |
|
Move all histories from configuration to status (they are not configuration, |
|
167 |
|
right?). |
|
|
184 |
|
Code improvements: |
|
185 |
|
* Write more tests for get_lines functions in string_array.c |
|
186 |
|
* Write more tests. (partially done) |
|
187 |
|
* Replace calls like `snprintf(foo, sizeof(foo), "%s", line)` with |
|
188 |
|
copy_str(). (partially done) |
|
189 |
|
* Consider mentioning libncursesw5-dev in configuration error for |
|
190 |
|
Debian-based systems. |
|
191 |
|
* Extract history related code out of filelist.c to separate file. |
|
192 |
|
* Reduce number of magic numbers. (partially done) |
|
193 |
|
* Add function to count suze of NULL-terminated array. |
|
194 |
|
* Think about window_rows and window_width members of FileView. |
|
195 |
|
* Intermediate language for scripting. (partially done) |
|
196 |
|
* Replace a lot of fields in cmd_add_t struct with a set of bit flags. |
|
197 |
|
* Create separate utilities for engine/ part to make them self-contained. |
|
198 |
|
* Fix code duplication related to composing of undo messages. |
|
199 |
|
* Share common part of tests. |
|
200 |
|
* Allow limiting input length for command-line prompt submode. |
|
201 |
|
* Move all histories from config to status (they are not configs, right?). |
|
202 |
|
* Get rid of repeatable `menu->win_rows - 3` in menu.c. |
|
203 |
|
* Separate filelist data from view data (extract into separate structure). |
|
204 |
|
* Improve logging (print back trace in some cases, increase verbosity). |
|
205 |
|
* Try reimplementing cmd_core.c:line_pos by calling dispatch_line. |
|
206 |
|
* Sane asynchronous signals handling. |
|
207 |
|
* Move startup and init code out of config.c and vifm.c to separate file. |
|
208 |
|
* Show "An error occurred" message on fail to build menus. |
|
209 |
|
* Consider not using {} initializer. |
|
210 |
|
* Note skipped tests in the tests output. |
|
211 |
|
* Pass var by pointer to var_free and cleanup the structure. |
|
212 |
|
* Logging levels. |