<root>
/
TODO
(045b371ff09474d957d83a5380e702fbfc61e959) (7,906B) (mode 100644)
[raw]
Basic things:
* Middle ellipsis breaks search highlighting.
* 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.
* 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.
* Maybe add %p macro 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)
* Merged directory history for both panes.
* 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).
* 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)
* 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).
* 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.
Questionable things:
* Full client-server operation of vifm (separate core from TUI).
* 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.
* 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.
* 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)
* Create separate utilities for engine/ part to make them self-contained.
* Fix code duplication related to composing of undo messages.
* 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.
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"
Clone this repository using HTTP(S):
git clone https://code.reversed.top/user/xaizek/vifm
Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@code.reversed.top/user/xaizek/vifm
You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a
pull request:
... clone the repository ...
... make some changes and some commits ...
git push origin master