-
Notifications
You must be signed in to change notification settings - Fork 0
/
TODO
181 lines (175 loc) · 8.17 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
Basic things:
* Merged directory history for both panes.
* Improve ga and gA commands. (partially done)
* Queueing of file operations.
* Backgrounding of commands with job control (pause/resume/kill). (partially
done)
* Display parsing errors in dialog that indicate the error, don't rely on
status bar. (partially done)
* Remove trash option, since we have two commands for deletion.
* Filtering in menus.
* Process shell pause request for running in %s.
* Responsive TUI during blocking operations.
* Better failed operation messages (partially done)
* Make status bar able to display error and info messages at the same time.
* Command to create multiple copies of selected file
Documentation:
* State the need of *nix tools on Windows more explicitly.
* Document single and double quotes treating in the command-line mode.
* Divide docs into several files (as it's quite big now).
* Document name conflict resolution options.
* Add separate section on bookmarks.
Vi(m) specific features:
* Add support for directory completion for some of :set options.
* 'wildignore' ('wig') option
* Think about dot normal mode command.
* Completion based on global (when one enters pattern<tab>, e.g. *.c<tab>).
* Add support of n flag for :substitute command.
* :let mapleader and <leader> support.
* Ctrl-W F key.
* Add support of [count] for Ctrl-E/Ctrl-Y/H/M/L.
* nrformats option as in Vim.
* Better ranges (add support for search patterns).
* :map without arguments.
* Don't move cursor on search failure.
* Consider adding support for sequences like \<cr>.
* Completion of first argument for :map commands.
* Make gU2U and similar commands work as in Vim.
* Change file list filters to use fold levels.
* /, ?, n, N as selectors.
* Fix '' to go back to all jumps G gg links (in one directory?).
* Maybe make zf and zd more Vim-like.
* Kinda macros like in Vim (qa ... q).
* Add =~ and !~ operators to expressions.
* Add titleold option.
* Support hex and octal numbers in :set.
* Add %p and %P macros to rulerformat option.
Windows:
* Make properties dialog change file attributes recursively.
* Setup automatic Windows builds for master branch. (partially done)
* Make :chmod accept arguments.
* Add command to create .lnk files.
* Sort completion items ignoring their case on Windows.
* Handle numpad keys better, just like corresponding non-numpad keys.
* Make 'fastrun' understand file extensions on Windows (to ignore them).
* Make 'slowfs' option available on Windows
* Support more of pdcurses specific keys (e.g. <a-bs>, <s-bs>).
* Read first bytes of files and treat '#!' files as executable.
Possible things to add:
* Add macros for marks.
* Make package for Cygwin.
* Position macros for user defined commands (%1, %2, ..., %9).
* Improve sorting (iext; choosing multiple sorting keys in dialog).
(partially done)
* Wrapping of lines in the menus.
* Something like :g/.../com and :v/.../com in Vim.
* Don't reread config files on :restart for --no-configs session.
* Better renaming keys.
* Quad/multiple-views
* Add a general file preview script.
* A more convenient shortcut for the :filter command (at least :filt).
* Multiselect for items (menu and/or file list).
* inotify support on Linux. (partially done)
* :filter !filter-tool
* Use system wide mimetypes file. /etc/mailcap?
* Add "|" command to menu to process list with external tool.
* "Blow directory" command to replace directory with its content.
* Emacs like Dired or Helm incremental search and complete
* $_ env var and Alt-T combination as in bash shell.
* Templates for :touch.
* Reverse searching
* Add g/ and g? commands (search, but don't select files).
* Support true-colors for colorschemes.
* Parse escape sequences in menus as in preview.
* Virtual File System - currently vifm can use FUSE to mount most file
systems.
* Something to control behaviour of menu picks.
* Like gv but to select just pasted files (gp?).
* g~<selector> and g?.
* Add trashes bang to list empty trashes or all of them.
* 'wildmode' option.
* Try to make it work in monochrome terminal.
* Support of command line arguments like ~/some.ssh/server/path (for FUSE).
* Treat `:filter pattern` as `:filter \<pattern\>`.
* Add search history for less-like mode.
* "Rename existing file" option on name conflicts.
* Make use of new job information in :jobs menu.
* Update visible symlinks in the other pane on updating current pane.
* Mouse support. (partially done)
* Permanent tabs.
* Asynchronous quick preview?
* Possibility to make colorful background per column.
* Add a key to menu mode to repeat command and update menu.
* Consider preserving more on file copy (ACL, sparse files).
* Extract vim plugin part of install to vifm.vim README.
* File access history.
* Make :alink, :copy, ... accept globs (e.g. :co *.c).
* Highlight first line of command-editing buffer in different color.
* Output numbers on :hi if it were numbers in color scheme.
* Add timestamps to history items.
Questionable things:
* Full client-server operation of vifm (separate core from TUI).
* %p/%I macro to prompt user for input.
* Maybe re-position cursor after :!ls%u.
* Remove items from :history command menu?
* Maybe use @path syntax to load custom views.
* Add + and - commands to undo by commands, not command groups.
* Modify marks on rename operations.
* Remove delay on file overwrite.
* Make :undolist more interactive.
* Add GUI interface one day.
* Use custom title for fuse mounts
* Option to trigger completion on slash in command-line.
* :edit - select the file after exiting editor?
* Ability to enter a mount with multiple vifm instances without
reunpacking/reconnecting.
* Consider conflict resolution for :move and alike.
* Builtin function (or variable?) to get number of selected files.
* Make directory stack menu interactive?
* Tree-like view with support of foldings (for each directory). (partially
done)
* Consider adding "da" to remove all elements in :bmarks menu.
* Command like :run[ &].
* Add :set to menu mode command-line.
* Add :mksession command and 'sessionoptions' option.
* Add :keepsel prefix.
* Consider asking more often before performing file operations.
* Termcap or terminfo support for keybindings
* Shorten home path to ~ in item origins?
* Add :increment and :decrement commands.
* Consider changing "dd" to "d" in menus.
* Consider caching directory sizes in vifminfo.
* Shell alias execution (and completion) (partially done)
* Decide whether redefining command shortcuts like :fil should be allowed.
* Add a flag to 'grepprg' to enable parsing of `ag -H ...` output.
* Ability to hide command line when not active.
* Add tags to angle bracket maps in vimdoc.
* :alias
* Live preview of color schemes.
* A way to scroll suggestion results.
* More customizable trash.
* Add :toupper and :tolower functions.
* More trash-like trash.
* Accept regexps as second argument of :colo command.
Code improvements:
* Write more tests. (partially done)
* Consider mentioning libncursesw5-dev in configuration error for
Debian-based systems.
* Reduce number of magic numbers. (partially done)
* Intermediate language for scripting. (partially done)
* Create separate utilities for engine/ part to make them self-contained.
* Fix code duplication related to composing of undo messages.
* Share common part of tests.
* Allow limiting input length for command-line prompt submode.
* Get rid of repeatable `menu->win_rows - 3` in menu.c.
* Separate filelist data from view data (extract into separate structure).
* Improve logging (print back trace in some cases, increase verbosity).
* Try reimplementing cmd_core.c:line_pos by calling dispatch_line.
* Write syscalls implementation of chgrp, chmod and chown.
* Sane asynchronous signals handling.
* Move startup and init code out of config.c and vifm.c to separate file.
* Consider using curses panes, not just windows.
* Show "An error occurred" message on fail to build menus.
* Consider not using {} initializer.
* Use timeout command to set time limit for tests on CI.
* Logging levels.