Difference between revisions of "Main Page"
Jump to navigation
Jump to search
m ("using" => "with") |
|||
(46 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
− | + | '''Vifm''' is a file manager with the [https://en.wikipedia.org/wiki/Curses_(programming_library) curses] interface, which provides a [https://en.wikipedia.org/wiki/Vim_(text_editor) Vim]-like environment for managing objects within file systems, extended with some useful ideas from [https://en.wikipedia.org/wiki/Mutt_(email_client) mutt]. | |
+ | If you're used to Vi[m], Vifm gives you complete keyboard control over your files without having to learn a new set of commands. | ||
− | + | == Main Sections of the Wiki == | |
− | == | + | * [[Contributing]]. Advice for those who would like to contribute bug reports or feature requests. |
− | * [// | + | **[[Contributing to This Wiki]]. A place to map out and plan the topics found in the wiki. |
− | * [// | + | * [[Development]]. Some information about Vifm's development process. |
− | * [https:// | + | * [[Comparison with other filemanagers | Comparison with other file managers]]. Vifm compared to some other file managers. |
− | * [// | + | * [[FAQ]]. Answers to frequently asked questions. |
+ | * [[Glossary]]. Explanation of abbreviations or ambiguous words. | ||
+ | * [[HOWTOs]]. Tutorials on various subjects. | ||
+ | * [[Manual]]. Main tutorial. | ||
+ | * [[Obtaining Vifm]]. Details about obtaining Vifm for different environments. | ||
+ | * [[Tips and Tricks]]. Description of some possibly unexpected/non-obvious uses of features. | ||
+ | * [[Utility scripts]]. Scripts that help utilize external applications. | ||
+ | * [[Vifm on the Web]]. List of pages related to Vifm. | ||
+ | |||
+ | == Quick Overview of Features == | ||
+ | |||
+ | To make it easier to understand Vifm's use cases and to connect features to their configuration and keyboard mapping, some details are provided in the spoiler sections. | ||
+ | |||
+ | * cross-platform (GNU/Linux, *BSD, Solaris, Windows, Mac OS) | ||
+ | * vi-like user mappings <spoiler text="..."> | ||
+ | Input model is very Vi[m]-like. | ||
+ | Each mode has set of commands for managing mappings (see [https://vifm.info/vimdoc.shtml#vifm-%3Amap :map], [https://vifm.info/vimdoc.shtml#vifm-%3Anoremap :noremap] and [https://vifm.info/vimdoc.shtml#vifm-%3Aunmap :unmap]) associated with it. | ||
+ | The one-argument or no-argument form of mapping commands can be used to list existing keys. | ||
+ | |||
+ | Ambiguity leads to timeouts (see [https://vifm.info/vimdoc.shtml#vifm-%27timeoutlen%27 'timeoutlen'] option) as with builtin commands. | ||
+ | |||
+ | Mappings can include [http://vifm.info/vimdoc.shtml#vifm-mappings angle bracket notation] to designate various special keys (e.g. <kbd>Ctrl+X</kbd>). | ||
+ | |||
+ | Note that mapped sequences can span across mode boundaries. | ||
+ | </spoiler> | ||
+ | * ranges for command-line commands <spoiler text="..."> | ||
+ | [https://vifm.info/vimdoc.shtml#vifm-ranges Ranges] provide a way to specify a range of files to be processed. | ||
+ | |||
+ | Some commands process the current selection by default (e.g., [https://vifm.info/vimdoc.shtml#vifm-%3Asubstitute :substitute]), others might operate on the current directory (like [https://vifm.info/vimdoc.shtml#vifm-%3Agrep :grep]). | ||
+ | Employing ranges can change that to renaming all files with <code>:%substitute/pat/subst</code> or grepping only file under the cursor with <code>:.grep pattern</code>. | ||
+ | |||
+ | Since ranges are not always handy to type manually, normal mode contains the <kbd>!</kbd> command, which generates a range. For example, hitting <kbd>!G</kbd> yields <kbd>:.,$</kbd>. | ||
+ | </spoiler> | ||
+ | * user-defined commands (support ranges) | ||
+ | * sessions | ||
+ | * registers <spoiler text="..."> | ||
+ | [https://vifm.info/vimdoc.shtml#vifm-registers Registers] serve as additional buffers, which allow sorting files into several groups for later processing. | ||
+ | |||
+ | Some registers are managed implicitly and provide additional convenience. Others need to be named explicitly when calling commands (e.g., <kbd>"xdd</kbd> deletes file(s) in the <code>x</code> register). Some registers are available by two names: lower-case and upper-case one; using the lower-case form reassigns the register's content, while the upper-case form appends files to it. | ||
+ | |||
+ | Registers are accepted by both shortcuts and command-line commands, the latter ones accept them as their arguments (for example, [https://vifm.info/vimdoc.shtml#vifm-%3Adelete :delete] and [https://vifm.info/vimdoc.shtml#vifm-%3Ayank :yank] commands). | ||
+ | |||
+ | The [https://vifm.info/vimdoc.shtml#vifm-%3Aregisters :registers] command shows a menu that displays files in the registers. | ||
+ | |||
+ | Content of registers can be saved across sessions. | ||
+ | </spoiler> | ||
+ | * directory tree comparison | ||
+ | * multilevel operation undoing/redoing <spoiler text="..."> | ||
+ | Foreground file operations can be reversed and replayed again if their nature allows it. For example, deletion (not moving to trash) or file overwrite can't be reversed, on the other hand any rename operations can be reversed unless the previous file names conflict with names of newly created files. Irreversible operations require explicit confirmation of some form. | ||
+ | |||
+ | Undo is <kbd>u</kbd>, redo is <kbd>Ctrl-R</kbd>. | ||
+ | |||
+ | The current history of operations is available via the [https://vifm.info/vimdoc.shtml#vifm-%3Aundolist :undolist] command. The maximum length of the undo list is configurable via the [https://vifm.info/vimdoc.shtml#vifm-%27undolevels%27 'undolevels'] option. | ||
+ | |||
+ | The undo list is not saved across sessions. | ||
+ | </spoiler> | ||
+ | * [https://en.wikipedia.org/wiki/Filesystem_in_Userspace FUSE] file systems support | ||
+ | * renaming multiple files (also known as "bulk renaming" or [https://en.wikipedia.org/wiki/Batch_renaming "batch renaming"]) | ||
+ | * color schemes, which can also be applied to specific subtrees <spoiler text="..."> | ||
+ | [https://vifm.info/vimdoc.shtml#vifm-color-schemes Schemes] can be viewed and set up via the [https://vifm.info/vimdoc.shtml#vifm-%3Acolorscheme :colorscheme] command. | ||
+ | They can be applied either at a global level or hierarchically for specific directories and all of their subdirectories. | ||
+ | |||
+ | Scheme files are just files with regular commands (mainly [https://vifm.info/vimdoc.shtml#vifm-%3Ahighlight :highlight] commands). See [https://vifm.info/colorschemes.shtml preview] or check out these [https://github.com/vifm/vifm-colors color schemes]. | ||
+ | |||
+ | {| | ||
+ | |- align="left" valign="bottom" | ||
+ | | [[File:Cs-almost-default.png|frame|Almost default look]] | ||
+ | | [[File:Cs-sane-default.png|frame|Custom scheme]] | ||
+ | | [[File:Cs-subtree.png|frame|Subtree specific color scheme]] | ||
+ | |} | ||
+ | </spoiler> | ||
+ | * colorization of files according to their type and/or name | ||
+ | * vi-like marks and named bookmarks (tags) | ||
+ | * operation backgrounding | ||
+ | * customizable file viewers | ||
+ | * handy [https://en.wikipedia.org/wiki/Less_(Unix) less]-like preview mode with color support | ||
+ | * (interactive) filtering out and searching using regular expressions, highlights partially matched files | ||
+ | * one or two pane view (vertical or horizontal) <spoiler text="..."> | ||
+ | Single pane view is enabled by <kbd>Ctrl-W+o</kbd> or [https://vifm.info/vimdoc.shtml#vifm-%3Aonly :only] commands. | ||
+ | |||
+ | Vertical split is activated by <kbd>Ctrl-W+v</kbd> or [https://vifm.info/vimdoc.shtml#vifm-%3Avsplit :vsplit] commands. | ||
+ | |||
+ | Horizontal split can be activated by <kbd>Ctrl-W+s</kbd> or [http://vifm.info/vimdoc.shtml#vifm-%3Asplit :split] commands. | ||
+ | |||
+ | Any of the above commands can be placed into the configuration file to set up the initial view layout after startup. | ||
+ | |||
+ | Some operations work with both panes at the same time, e.g., [http://vifm.info/vimdoc.shtml#vifm-%3Aview :view] or [http://vifm.info/vimdoc.shtml#vifm-%3Acopy :copy] commands. | ||
+ | |||
+ | {| | ||
+ | |- align="left" valign="bottom" | ||
+ | | [[File:Layout-only.png|frame|Only layout]] | ||
+ | | [[File:Layout-split.png|frame|Horizontal layout]] | ||
+ | | [[File:Layout-vsplit.png|frame|Vertical layout]] | ||
+ | |} | ||
+ | </spoiler> | ||
+ | * shell-like command-line editing | ||
+ | * table/[https://en.wikipedia.org/wiki/Ls ls]/tree-like/miller views | ||
+ | * customizable file name prefixes and suffixes | ||
+ | * built-in integration with [https://en.wikipedia.org/wiki/GNU_Screen GNU Screen] and [https://en.wikipedia.org/wiki/Tmux tmux] | ||
+ | * external editing of command line | ||
+ | * multi-block selection | ||
+ | * remembering position in previously visited directories | ||
+ | * remote command execution | ||
+ | * command-line abbreviations | ||
+ | * ability to script configuration for specific directories | ||
+ | * trash <spoiler text="..."> | ||
+ | Apart from being storage for files which are about to be erased, this is also a place for files that were "cut" (which corresponds to "delete" operation in Vi[m]), but not pasted yet. | ||
+ | |||
+ | Trash is enabled by default ([https://vifm.info/vimdoc.shtml#vifm-%27trash%27 'trash'] option) and it is better to leave it in this state. [https://vifm.info/vimdoc.shtml#vifm-%27trashdir%27 'trashdir'] can be used to customize the location of trash directories, which are media-specific by default and are named <code>.vifm-Trash/</code>. | ||
+ | |||
+ | A list of files in trashes is available using the [https://vifm.info/vimdoc.shtml#vifm-%3Alstrash :lstrash] command. [http://vifm.info/vimdoc.shtml#vifm-%3Atrashes :trashes] lists trash directories themselves, optionally along with their sizes. Inside a trash directory, the [http://vifm.info/vimdoc.shtml#vifm-%3Arestore :restore] command restores files to the place they used to be. It's also possible to just move files by other means, which will automatically demangle their names. | ||
+ | |||
+ | Use the [http://vifm.info/vimdoc.shtml#vifm-%3Aempty :empty] command to clean trashes in the background. | ||
+ | |||
+ | Registers are connected with trashes, which allows managing several groups of files at the same time. | ||
+ | </spoiler> | ||
+ | * [https://en.wikipedia.org/wiki/UTF-8 UTF-8]-aware |
Latest revision as of 20:11, 20 October 2020
Vifm is a file manager with the curses interface, which provides a Vim-like environment for managing objects within file systems, extended with some useful ideas from mutt. If you're used to Vi[m], Vifm gives you complete keyboard control over your files without having to learn a new set of commands.
Main Sections of the Wiki[edit]
- Contributing. Advice for those who would like to contribute bug reports or feature requests.
- Contributing to This Wiki. A place to map out and plan the topics found in the wiki.
- Development. Some information about Vifm's development process.
- Comparison with other file managers. Vifm compared to some other file managers.
- FAQ. Answers to frequently asked questions.
- Glossary. Explanation of abbreviations or ambiguous words.
- HOWTOs. Tutorials on various subjects.
- Manual. Main tutorial.
- Obtaining Vifm. Details about obtaining Vifm for different environments.
- Tips and Tricks. Description of some possibly unexpected/non-obvious uses of features.
- Utility scripts. Scripts that help utilize external applications.
- Vifm on the Web. List of pages related to Vifm.
Quick Overview of Features[edit]
To make it easier to understand Vifm's use cases and to connect features to their configuration and keyboard mapping, some details are provided in the spoiler sections.
- cross-platform (GNU/Linux, *BSD, Solaris, Windows, Mac OS)
- vi-like user mappings ...
- ranges for command-line commands ...
- user-defined commands (support ranges)
- sessions
- registers ...
- directory tree comparison
- multilevel operation undoing/redoing ...
- FUSE file systems support
- renaming multiple files (also known as "bulk renaming" or "batch renaming")
- color schemes, which can also be applied to specific subtrees ...
- colorization of files according to their type and/or name
- vi-like marks and named bookmarks (tags)
- operation backgrounding
- customizable file viewers
- handy less-like preview mode with color support
- (interactive) filtering out and searching using regular expressions, highlights partially matched files
- one or two pane view (vertical or horizontal) ...
- shell-like command-line editing
- table/ls/tree-like/miller views
- customizable file name prefixes and suffixes
- built-in integration with GNU Screen and tmux
- external editing of command line
- multi-block selection
- remembering position in previously visited directories
- remote command execution
- command-line abbreviations
- ability to script configuration for specific directories
- trash ...
- UTF-8-aware