Orthodox File Managers Standard 2004 (OFM2004) -- advanced OFM requirements
The Orthodox File Managers Standard is undated periodically (usually once in
five years) to reflect progress in OFM implementations.
The Orthodox File Managers Standard 2004 specified 4 areas of compliance: basic,
command line (including user and extension menu), viewer/editor, and VFS.
The compliance in OFM2004 is measured a way similar to TCP/IP addresses i.e.
100.45.0.0 means that particular OFM has a score 100% on part 1 (basic compatibility),
score 60% out on the part 2 and zeroes on the part three and four of
the standard (see below). In this case the average score would be 40% and
it does not tell the whole truth as this implementation perfectly implement all
basic features.
The score is determined separately for each section of the standard. Each section
consists of subsections that specified measurable requirements that
need to be met. Each subsection has a Weight that determine its weight in
the total score.
Important notes:
- The Orthodox File Managers Standard is undated periodically (usually
once a year) to reflect progress in OFM implementations
- 50% or better compliance with the parts 1-4of the standard are required
for the implementation to be considered an implementation conformant with
the OFM2004.
- The Orthodox File Managers Standard 2004 does not require key assignments
to be exactly the sane as in the standard as long as there is a possibility
to change them. The specified in the standard key bindings are recommended.
If semantically the feature implemented in accordance with OFM doctrine, but
there is no key remapping feature and the OFM use different hot-key, then the
compliance score for the feature is multiplied by 0.66.
- If feature can be implemented using existing commands (for example unpacking
the archive into the directory with the same name as the name of the archive
can be implemented via user menu) than it is assigned the low Weight (usually
1).
- The structure of main menu is not defined in the test.
- The capability to connect with a different computer via serial line is considered
obsolete and not included in the test.
- All Alt keys can be replaced with Ctrl-Alt keys in Windows
GOFM implementations.
The OFM2004 standard consists of 3 parts
Part 1: Basic Compatibility
Part 2: Shell Execution compatibility
( Command Line, user menu and extension menu)
Part 3: Built-in Editor and Viewer
(Built-in Editor is optional for GUI based implementations)
Part 4: Virtual file systems support compatibility
Generally for the inclusion into one of the sections of the standard the feature
needs to be present either in MC (as a leading Unix-based implementation), FAR or
NCW 2.0 or be consistently implemented in at least two other major OFM implementations
(for example XTree virtual file system is consistently implemented in Total Commander
and Northern Captain with the hotkey binding Ctrl-B) and have stable semantics.
Hotkey assignments listed below can be different from recommended, if key remapping
capability is implemented in a particular OFM, otherwise 0.66 coefficient is used
if semantically operation in implemented correctly. For simplicity all numbered
requirements have an equal weight.
All features are assigned weight on the scale 1-3. It is used in calculation
of compliance with the standard.
- Weight 3 is assigned to features that are considered indispensable;
they proved their usefulness and are frequently used by power users in existing
implementations; for part one such features constitute the cornerstone of the
"look and feel" of OFMs; developers should think twice before omitting them.
- Weight 2 is assigned to features that are essential and field
proven but the absence of which will not noticeably slow down advanced users
either because there are alternative ways to achieve similar effects
or the features are used not that often
- Weight 1 is assigned to those features that, although essential,
can be fully implemented using existing commands (for example
unpacking the archive into the directory with the same name as the name of the
archive can be implemented via user menu).
If the weight is not stated it should be assumed to be 3
- Panel navigation and basic hot keys compatibility:
- The Tab key should change active panel to passive and passive
to active
- Ctrl-\ key should move to the root of the drive ( mandatory only
for DOS/Windows implementations; in Unix is can be home of the current user
(Cd ~) or the mount point of the current file system)
- Ctrl-PgDn and Ctrl-PgUp move to the upper (current
subdirectory) and lower level (parent i.e. CD ..) directories; in Unix left
and right arrows can be used instead (Lynx style navigation in MC), but
they are more error prone. The importance of this feature is that
it permit exit from several level of directories (traversing tree up) without
using tree view (Weight 3)
- Alt-PgDn should open the directory under the cursor (or
archive under the cursor) directory on the passive panel, Alt-PgUp
should show the parent directory on the passive panel
(new in OFM2004)
- Ctrl-R -- should reread the directory;
- Ctrl-U -- should swap panels;
- Alt-F1 and Alt-F2 (Ctrl_Alt-F1/F2 is recommended
for Windows) should produce the list of logical disks for left and right
panels (not applicable for UNIX implementations. For Unix-based implementation
the list of directory favorites or mount points can be produced.);
- Ctrl-Q should switch to quick view; (only for classic implementations;
n/a for GOFM)
- Ctrl-L should switch to the information panel. Information
panel should provide at least statistics about the current directory and
current drive. If directory description (file dirinfo) is available it should
be displayed as well (Compatibility with dirinfo descriptions is optional
for UNIX-based implementations.)
- Compatibility of F1..F8 operations:
- F1 -- should not only invoke hypertext help, it should invoke
help on any item of the toolbar and any item of tool bar menus. The help
should be context sensitive: if some dialog is opened the help should be
about this particular dialog, not the general help tree.
- F2 -- user menu or equivalent (start menu). Should provide the
possibility to run user shell scripts with substitution of macro variables
from the panels. Each item of the menu should be activated by its own letter
(hotkey). Format of the macro variable is not defined in this standard but
following Midnight Commander conventions is recommended. See part
2.2 for specification of the user menu semantic.
- Invocation of viewer and editor.
- F3 -- should invoke built-in viewer or (in GOFM only) default
viewer
- F4 -- should invoke built-in editor or (in GOFM only) default
editor ;
- Alt-F3 and Alt-F4 should select alternative viewer
and editor. There should be a configurable option is Command menu to
specify this external viewer and editor
- Optional: Additional option in Options menu to specify invocation
of built-in viewer and editor in the panel mode instead of full screen
mode. At this mode all command line insertion capabilities should be
redirected to editor (Ctrl-[ Ctrl], Ctrl-F, etc).
- There should be a capability to switch primary and alternative viewer,
so that alternative viewer/editor can be selected via F3/F4 and
primary (built-in) via Alt-F3 and Alt-F4. (Weight 1)
- F5 -- should copy/move subtrees if applied to directories
- Should work with selected files and directories
- In case the file (files) exist on the target panel there should
be an "overwrite" dialog box that contains both file size and creation/modification
dates.
- In case the user input the name of the directory in the target field,
the copy should be made to this directory
- File completion (Tab or Alt-Tab) should work. In addition
the ability to complete directory only is recommended but optional
(as an option in move command panel and/or Options/System
Settings menu).
- Should permit specifying "quick target" via F10.
- Shift-F5 should either copy file within the same directory
and should gives possibility to specify the path and name.
- Alt-F5 should create a "soft link" if they are available
in a particular OS
- Should be able to copy to a current directory in tree view on the
opposite panel and vise versa.
- Options "Only newer files" and "with the access rights" are recommended.
- F5-F5 should synchronize panels
(current directory should be displayed on the passive panel).
- F6 should be able to move subtrees. Movement of directories within
the same logical drive should not result in
a copy operation, just a directory modification;
- Should work with selected files and directories
- In case the file (files) exist on the target panel there should
be an "overwrite" dialog box that contains both file size and creation/modification
dates.
- If the passive panel is hidden should work in rename mode. Also
rename mode can be invoked by F6-F6 sequence.
- In case the user input the name of the directory in the target field
the move operation should be made to this directory.
- File completion (Tab or Alt-Tab) should work. In addition
the ability to complete directory only is recommended but optional
(as an option in move command panel and/or Options/System
Settings menu).
- Should permit specifying "quick target" via F10.
- Shift-F6 should permit renaming of the target file
or directory with the capability of editing the old name "in place"
(without reentering it)
- Alt-F6 should create a "hard link" if they are available
in a particular OS
- Should be able to move to a current directory in tree view on the
opposite panel and vise versa.
- Options "Only newer files" and "with the access rights" are recommended.
- F7 should create directories.
- Option "process multiple names" should be provided and if activated
should permit specified several directory names separated with ";" (semicolon),
for example
bin; etc; local
should create three subdirectories in the current directory, not
one.
- Shift-F7 or similar combination should create a recursive
copy of all directories of the active panel in the directory at the
opposite panel (just directories, no files)
- F8 should delete current or selected files or directory subtree.
It should work if applied to the directory with non-empty subdirectories.
In case the group is selected the operation is performed on each member
of the group. Shift-F8 (unlink) or similar combination should work
only there are still multiple link hard link to a particular file/directory.
- Panel Tree View and Directory Search panel compatibility:
- Panel resizing
- Panel should be able to shrink in vertical direction. In this case
"shell area" should enlarge accordingly
- User should be able to extend of shrink size of left column (possibly
by moving the column divider)
- Directory tree semantic. In OFMs there should be
two distinct tree panels:
- A regular tree panel. Activated by Ctrl-T.
In this case tree replaces the passive panel Tree panel
should work in three modes:
- The default mode: The cursor can be moved independently
and does not affect the opposite panel. Pressing Enter opens the
directory under the cursor in the opposite panel. Copy and Move
operations from the opposite panel are targeted to the current directory
on the tree. Quick view mode ("dive into the directory mode")
should be available via hotkey Ctrl-Q. Quick search mode should
be available via Alt - key combination.
- Quick view mode ("dive into the directory mode") Switchable
with Ctrl-Q. This mode is similar to the behavior of Windows Explorer
movement of the cursor opens the directory under the cursor in the
opposite window. Mostly used for quick traversing of the directory
tree in a mode similar to quick view with directories opening as
we move the cursor (quick diving into subdirectories). Quick search
should be available.
- Information mode (Ctrl-L). Similar to quick view mode.
But in this case the movement of the cursor on the tree panel opens
not a listing of files in the directory but the information window
should be shown that calculated statistics for the directory (number
of the files, total size, number of subfolders, attributes, owners,
etc).
- The directory search panel. Activated by
Alt-F10. Also should be present as an option in the top menu as
Command/Find folder in Far, Command/Directory tree in mc, ). This panel
should instantly provide a quick search window. It should be also accessible
from copy/move dialogs (via F10) as it is often used not only
for the "directory completion" and traversing of the tree, but also
for the quick selection of the target directory for copy/move operations
- Both panels should support expansion/collapse branches (Standard
hotkeys are currently undefined; Ctrl-+/Ctrl- hotkeys are recommended)
- Tree Panel Hotkeys Compatibility
- Tree View panel
- In tree panel usual keys can be using for moving the directories
to the opposite panel.
- Regular copy/move keys should also work from the regular panel if
tree panel is the target. In this case the target directory is the current
directory on the tree panel.
- Delete operation should work on tree panel.
- Movement of the cursor on the panel with tree representation should
not lead to change of the directory on the current panel unless Ctrl-Q
was additionally pressed (quick mode activated).
- Ctrl-enter should paste the current directory in the command
line
- Quick search in Tree View panel:
- Ctrl-Q on tree panel should switch the panel into "quick
search mode" like normal panel. In this mode changing the directory
on the active panel should lead to display of the content of this directory
on the passive panel. In quick search mode Ctrl-Enter should
jump to the next directory with the same prefix (If no prefix is specified
it find the next directory with the same name, if any) In normal
mode it should paste the current directory into the command line.
- Ctrl-Enter should jump to the next directory with the same
prefix. If there is no text in the quick search window quick search
mode should find the next directory with the same name, if any.
- Rescanning of the directory tree should be available via Ctrl-R
and/or F2. Pressing Alt-F10 should not produce rescanning of
the disk without reason.
- Both panels
- Backspace should move to the previous level of the directory tree.
- Gray+ (or spacebar), Gray- (backspace) should move
up and down the tree to the next branch on the same level (left
arrow and right arrow can be used in Unix).
- Quick search should be activated for Directory Search panel on invocation
.
- Ctrl-PgUp/Ctrl-PgDn should work as usual on both Tree panel
and Directory search panel.
- Selection/deselection compatibility:
- Ins should select a single file (cursor may move one line down
if such option is set);
- Gray+ and Gray- should select and deselect file using
a regular expression or mask;
- Gray * should invert the selection;
- Special keys (Ctrl-Gray+ and Ctrl-Gray- are recommended)
for selecting deselecting all files regardless of current selection;
- Selection and deselection operations should be persistent (second selection
operation should add to existing selection, deselection should remove some
or all files).
- Restore Selection operation (no standard key exist). It should restore
highlighting of files selected for last copying operation.
- UNIX-style regular expressions should be supported in selections
(expression *a*.* should select files like my_bak.tmp and my_bat.txt, not
all files)
- Ability to select all file with the extension equal to the extension
of the current file or the last part of the filename in UNIX (Ctrl-Enter
for the extension).
- Selections history should be available with the ability to open history
with Ctrl-ArrowDn, or browse it in the input line ( C-shell
style) with ArrowUp and ArrowDn keys.
- Option "Process multiple names" should be provided and if activated
should permit specified several regular expressions (or DOS masks) separated
with ";" (semicolon), for example
*.html; *.htm
- Quick view compatibility:
- The viewer should be invokes according to the extension menu (file association
list) information.
- For archive content of the information files should be shown (list of
information files should be customizable, but default should include
File_id.diz, read.me, readme.1st). In case no description is available the
content of the archive should be should.
- Pressing F3 or Alt-F3 in quick view should lead to switching to regular
(wide screen ) view.
- Pressing F4 should invoke the editor in the panel (no full screen)
- Quick search compatibility:
- Alt-letter (or Ctrl-Alt for GUI-based versions) quick search
option should be available for both regular and tree views of the panel.
- Ctrl-Enter during quick search should move to the next item with given
initial letters.
- FindFile(Ctrl-F7) compatibility
- Reversible implementation of at least View ( F3 and edit (F4)
-- after exiting user return to the search panel without researching; irreversible
implementation of Jump (Enter).
Please note that search can be used as a poor man command completion in
the current directory: it's very convenient for files with long names and
for search operation and essentially bridges search operation and wide (double-width)
panel representation.
- The ability to search by content (regular expression like in Grep)
(Weight 3)
- The ability to search by timestamp range and age of the file (Weight
3)
- The ability to search by size (interval) (Weight 3)
- The ability to search by attributes (Weight 2)
- Search history (Weight 3)
- Panelize option or availability of all other file operations directly
from the search panel (optional if Script-based VFS is implemented as in
MC); Refresh (Ctrl-R) should work for panelized view.
- Search from the root and search from the current directory options
- The possibility of a quick selection of the start directory using tree
search panel (F10)
- Search in archives
- Sorting directories compatibility:
- The ability to view files (and optionally directories, but directories
should generally precede files) sorted by name, time, size, and unsorted
order (minimum is "NETSU" (sorting by Name, Extension, modification
Time, Size, and Unsorted). The ability to sort by creation
time, access time and descriptions is optional. For Unix, the
ability to sort by permissions, owner and group is recommended ("NETSUPOG").
- The hotkey assignment for sorting is optional. If the hotkey is
defined its action should correspond to the F9-(LR)-S sequence for
the current panel and display the same menu so that the proper order can
be selected with the second key from the menu ( Ctrl-F12 (FAR) is
recommended). In addition, "old-style" hotkeys Ctrl-F3,
Ctrl-F4, Ctrl-F5, Ctrl-F6 and Ctrl-F7 can be provided
for sorting by name, extension, modification time, size and unsorted, correspondingly
("NETSU" order).
- The ability to reverse the sorting order by using the same hotkey again
should be provided.
- If mouse is supported, then mouse click on any header (name, size, time,
etc) in the panel view should change the sorting order for this attribute.
Second mouse click on the same button reverses the sorting order (Windows
Commander 3.03; NCW 1.0);
- Sorting Groups should be available, for example (htm|html|shtml) as
one group.
- User menu script invocation compatibility (GUI implementations can provide
alternative methods to run custom scripts with parameters taken from the panel):
- The ability to specify the hotkey and the label for each script
- Multiple commands can be written without need to create a separate batch
file
- Include files are permitted in the user menu
- The ability to use symbols from both passive and active panels in user
menu commands
- Additional file commands compatibility:
- File attribute command (no hot key specified, should be available via
menu) should permit changing of attributes and file stamps of a single
file or group of files, or subtree (if applied to the directory) as well
as ownership (in Unix);
- File case conversion command should permit changing of the case of the
file or group of files (not applicable to DOS 6 and lower)
- Association management compatibility:
- The ability to specify one or several associations for the same extension
- The ability to use macrosymbols in the association table
- Dialog box extensions:
- Support of regular expressions everywhere were applicable (MC, FAR).
Unix RegEx notation should be used.
- Ctrl-Enter, Ctrl-[ and Ctrl-] keystrokes
pressed in input lines of dialog boxes make the same actions as in the command
line (VC)
- Mouse click on current file in the panel information line (bottom line
of the panel) should input file extension to the opened dialog box, for
example the selection list or copy dialog box (VC).
- Support of clipboard and standard set of editing operation in dialog
boxes. Ctrl-X/C/V or equivalents (Shift-Del, Ctrl-Del and Ctrl-Ins)
should be available in dialog boxes for copy/paste operations.
Shift-left/right key operations should give a possibility to select
arbitrary part of the current line.
- For each dialog box toolbar should provide list of functional keys applicable
(for example F10 is applicable for most file operations)
- Working with attributes
- Compare directories
- Erase preexisting highlighting
- Comparison rules/filters (size only, date only, etc)
- Option to block highlighting newer files with equal size (important
for FTP VFS comparison)
- Synchronize option or command
- Compare files operation
- Binary
- Text
- Ignore case
- Ignore whitespace
- Favorite directories list. Basic functionality should be close to
provided by Netscape:
- The ability to add the current directory to the current favorites list
using hotkey (and/or button in GUI implementations like add to favorites
button in Netscape;
- Browsing with standard viewer keys navigation compatibility;
- Command line history
- Keyboard macro support (DN, FAR, JC).
- It should be possible to assign a sequence of keystrokes to a key and
delete assigned sequence.
- Macro recoding should be extended to built-in viewer and editor (JC);
- Macro recorder should provide the possibility to send keystrokes to
the launched applications and redefine keystrokes in launched applications
like famous KM by E.Yutsis (see
Softpanorama archives).
- Shell windows compatibility
- The command line at the bottom of the screen actually is a minimized
to one line shell windows and there should be at least two capabilities
to expand them
- Ctrl-O should maximize shell screen to the whole terminal window
(hide panels). In the resulting screen standard shell functionality should
be present as if this is a telnet session to localhost. For example, if
the shell for a particular OS provides browsing of shell history with arrow
keys this should work. (for COFMs only, GOFMs can extend active panel
to the full screen, if they do not support OS shell screen view);
- Ctrl-F1/Ctrl-F2 should provide a view of the shell screen with overlaid
one panel. If this panel contains minimized editor it should remain functional.
- There should be either the ability to expand/shrink shell screen one
line at a time (like in Far) or provide one step expansion to half screen
(like in classic NC implementation since NC 2.0) with a hotkey.
Command line (minimized shell window) compatibility:
- Cursor movement keys should work like in OS shell when panels are hidden
- Command history availability:
- Should be available both via hotkey (Alt-F8)
and C-shell-style browsing mode.
- In C-shell style browsing mode the retrieval of a command
from the history into the command line should be possible with the hotkeys,
for example (for example, Alt-E, Alt-X like in NC5).
- The possibility of sorting command history in history window
and eliminating duplicates.
- Command completion feature: Alt-Tab or Ctrl-End at the
end of the command line complete the command starting with these symbols
from the command history. In case several variant of completion are possible
they should either displayed or it should be possible to press Ctrl-End
several times to find the next command in the history that has the same
prefix;
- Change of the current directory via command or script execution changes
the directory on the active panel;
- The ability to execute arbitrary command or script for selected files
(DN, VC, FAR, WinCmd) ;
The "special paste" operation compatibility. The following operation
should be supported for command line (minimized shell window) mode:
- Inserting current path from left and right panels (Ctrl-[ and
Ctrl-])
- Inserting the current file Ctrl-Enter (if one or
several files are selected they should be inserted into the command line
instead of the current)
- Inserting the current file with the full path Ctrl-Shift-Enter
- Optional
- Inserting the current file from the passive panel
- Inserting the current file with abs path from the passive
panel
User menu (usually bound to F2). Also called Start menu. Should provide
the possibility to run user shell scripts with substitution of macro variables
that represent information extracted prom active or passive panel. The
menu may contain submenus. Each item of the menu should be activated by its
own letter (hotkey).
- You can create three types of user menu: global (or main), user-based
and directory based.
- The main user menu is called if no local menu for the current folder
is available.
- User is called if user defined its own menu in his home directory
- The local menu may be placed in any folder.
- You may switch between the main menu and the user menu by pressing Shift-F2
instead of F2.
- If local (directory-based) menu is present then it overrides both
user menu and main menu
- Format of the macro variable is not defined in this standard but following
Midnight Commander conventions is recommended.
- To execute a user menu command, select it with cursor keys and press
Enter.
You may also press the hot key assigned to the required menu item. It is
possible to use digits, letters and function keys (F1..F12) as hot keys
in user menu. If F1 or F4 is used, its original function in user menu is
overridden. However, you still may use Shift-F4 to edit the menu.
- User should be able to edit user menu using regular built-in editor.
- Two styles of macro substitution symbols are acceptable (MC-style or
NC-style). MC style is recommended and NC style is deprecated.
- The MC-style naming system for macro substitution symbols for
active panel (see nelow the set for passive panel)
- "%f" The current file name.
- "%F" The current file in the unselected panel.
- "%d" The current directory name.
- "%D" The directory name of the unselected panel.
- "%t" The currently tagged files.
- "%T" The tagged files in the unselected panel.
- "%u" and "%U" Similar to the %t and %T macros, but after the
operation all selected files are untagged. That means that this
macro can be used only once per menu entry (or extension entry),
because on the second and subsequent invocations there will be no
tagged files.
- "%s" and "%S" The tagged files if there are any. Otherwise
the current file.
- "%cd" This is a special macro that is used to change the current
directory to the directory specified in front of it. This is used
primarily as an interface to the VFS.
- "%view" the invocation of the internal viewer. An argument
to force the viewer in a particular mode can be passed: ASCII
to force the viewer into ASCII mode; hex to force
the viewer into hex mode;
- "%%" The % character
- "%{some text}" Popup an input box and prompts for the substitution.
The user should be able to cancel input ( ESC or F10 recommended).
- There should also be a special prefix of suffix that turns macro
symbols for active panel to macro symbols to passive panel, if applicable,
for example %f is the current file name on active panel but %-f is the
current name on the passive panel.
- NC-style naming system for macro substitution symbols
in OFMs (not recommended for Unix implementations, they should use
mc-style symbols, see above). At least the following macro symbols should
be defined:
! The current
file name without extension
!.! The current file name
with extension
^! The current filename
of the passive panel without extension
^!.! The current filename of the
passive panel
!& List of names of selected files
!: The current drive
!\ or !/ The current path
Some prefix or suffix (for example ^) can be used to define the same
macros for the passive panel to refer to the passive panel.
NC style is deprecated and should be avoided in new implementations
of OFMs
- Optional: MC-style system of hiding menu elements using "visibility
predicates".
Extension menu (file association list)
- should allow regular expressions in defining associations (like in mc)
Should allow the following commands to be associated with a particular
file type, defined by regular expression or DOS-style wildcard mask
or shell script:
- Execute command: Performed if Enter is
pressed
- Alternative execute Performed when GreyEnter
or Ctrl-PgDn is pressed
- View command:
Performed if F3 is pressed
- Alternative view
Performed when Alt-F3 is pressed
- Edit command:
Performed if F4 is pressed
- Alternative Edit:
Performed when Alt-F4 is pressed
- In case multiple association are trigged by the file a menu should be
displayed and the user should be able to select the best association manually.
- The user should be able to add new associations with the Edit associations
command in the Commands menu.
- There should be a possibility to block switching the panels off
during the execution of the command (implementation dependent, for example
using special prefix)
- Built-in viewer:
- Should be able to work in full screen mode and in the panel mode both
in quick view and in regular mode (via some hotkey (for example Alt-F3).
This mode should be configurable in Options menu as an alternative for external
viewer invocation. This is very useful if 132 symbol mode is used.
- The ability to expand shell windows described in Part 2 should be preserved.
For example Ctrl-O should maximize shell windows to the whole screen.
- Special hot key to go to a line number (Ctrl-G or Ctrl-F8). The ability
to go to the absolute or relative (+5, -5) line number as well as the percentage
of the file (FAR). A mouse click on the current line number should open
panel to specify line number to go.
- End should go to the end of the file; Home to the
beginning of the file;
- Wrap/unwrap long lines feature should be available via F2;
- The ability to view file in hex should be provided (via F4)
Optional: The ability to jump to hex offset and/or line
number;
- Search compatibility
- The ability to search for both text strings (case sensitive or not)
and regular expression (F7). Default for F7 search is text string or
configurable. Default hotkey for RegEx search is "/" or "?".
- The hotkey for repeat search (F17, Shift-F7)
- The ability to search in reverse direction (Alt-F7 or Ctrl-Alt-F7);
- "/" and "?" keys should serve as additional hotkeys for regular
expressions search forwards/backwards as in many unix tools (FC).
- F3 exit the viewer -- very convenient key assignment for quick exit
from the viewer (MC,FAR);
- Autodetection of UNIX-style text files (in Windows) and DOS-style in
Unix;
- Bottom menu changes when Ctrl and/or Alt is pressed.
- Optional: Bookmarks mechanism should be provided
- Built-in Editor
- Autodetection of Unix/Dos style text files and preservation of the style
in save.
- A user should be able to invoke the editor in the panel mode via some
hotkey (for example Alt-F4). This is very useful if 132 symbol mode
is used. In panel mode all command line insertion hotkeys should be redirected
to the current position of the cursor in editor (Ctrl-[, Ctrl-], etc)
- Special hot key to go to a line number (Ctrl-G or Ctrl-F8). The ability
to go to the absolute or relative (+5, -5) line number as well as the percentage
of the file (FAR). A mouse click on the current line number should open
panel to specify line number to go.
- Hotkey for finding matching bracket should be provided.
- Cursor movement. Please note that Ctrl-Home/Ctrl-End go
to top line/bottom line of the file;
Left
Character left
Right
Character right
Up
Line up
Down
Line down
Ctrl-Left
Word left
Ctrl-Right
Word right
Ctrl-Up
Scroll screen up (Weight 1)
Ctrl-Down
Scroll screen down (Weight 1)
PgUp
Page up
PgDn
Page down
Home
Start of line
End
End of line
Ctrl-Home
Start of file
Ctrl-End
End of file
Ctrl-N
Start of screen (Weight 1)
Ctrl-E
End of screen (Weight 1)
- Delete operations. It's mandatory to support standard block selection
operations Shift-left/right/up/down and Ctrl-C, Ctrl-X and Ctrl-V
as copy cut and paste. Please note that Ctrl-Delete (and/or Ctrl-T)
- delete word right of the cursor and Ctrl-Backspace to the left
of the cursor
Del
Delete char (also may delete block,
depending upon Editor settings
BS
Delete char left
Ctrl-Y
Delete line
Ctrl-K
Delete to end of line
Ctrl-BS
Delete word left
Ctrl-T, Ctrl-Del Delete word
right
- Block operations:
Shift-Cursor keys Select block
Ctrl-Shift-Cursor keys Select block
Alt-gray cursor keys Select vertical block
Alt-Shift-Cursor keys Select vertical block
Ctrl-Alt-gray keys Select vertical block
Ctrl-A
Select all text
Ctrl-U
Deselect block
Shift-Ins, Ctrl-V Paste block from
clipboard
Shift-Del, Ctrl-X Cut block
Ctrl-Ins, Ctrl-C Copy block
to clipboard
Ctrl-
Append block to clipboard
Ctrl-D
Delete block
Ctrl-P
Copy block to current cursor position
(in persistent blocks mode only)
Ctrl-M
Move block to current cursor position
(in persistent blocks mode only)
Alt-U
Shift block left
Alt-I
Shift block right
- Search (regex support should be implemented)
F7
Search
Ctrl-F7
Replace
Shift-F7
Continue search
Optional: Alt-F7 - Search for same text in reverse direction;
- The ability to view hex representation of the current symbol in the
upper menu;
- For Windows only: Bottom menu should change when Ctrl
or Alt keys are pressed;
- Shift-F4 creates a new file (prompts for the name) instead
of editing current;
- Ctrl-Q -- Quote character (insertion of special characters)
- Ctrl-Y -- delete current line; Ctrl-T (or Ctrl-backspace)
-- delete current word; Ctrl-Z or Alt-Backspace undo (at least the current
line).
- Insert - Toggle Insert/Overstrike mode;
Optional: hot key for Auto-indent mode;
- F2 - Save changes without exiting; Shift-F2 save with
new name (SaveAs);
- ESC,F10 - Exit (should produce save prompt if changes were
made); Shift-F10 - save and exit.
- Ctrl-[ Ctrl-] and Ctrl-Enter (or Shift-Enter) should paste left panel
path, right panel path and the current file name at the cursor location.
- F6 -- if in viewer, switch from the viewing the file to editing it and
vise versa, if in editing mode switch to viewing mode.
- FTP virtual file system:
- Panel navigation and representation:
- Uppercase file names should not be converted to lowercase on the
FTP VFS panel
- Quick search (alt-<letter>) should work on archive VFS
panel.
- Minimum set of operations on files, selected files and directories:
- view
- edit
- copy (with option of changing of case of the files);
- move (with the same option);
- delete;
- MKDIR;
- change case command;
- rename command;
- compare directories command.
- Network "client server" mode: via TCP/IP (like in MC) and/or parallel
cable (Total Commander).
- Archive virtual file system:
- Compress and extract commands that permit compress subtree into archive
with optional deletion of subtree. Extract command should permit creation
of a folder for extraction ( FAR, DN):
- Navigation compatibility:
- pressing of the Enter key on the archive file should produce the
listing of archive content in the panel;
- Any operation for leaving the folder should work as closing the
archive view.
- Quick search (alt-<letter>) should work on archive VFS
panel.
- Reasonable subset of file operations implemented:
- View, quick view and edit should be supported;
- Files can be selected, deselected as in regular folder;
- File or groups can copied (copying to regular folder result in extraction;
copying to archived folder results in compression; copied, moved, viewed
and so on;
- Files can be deleted and renamed;
- Support of View (including "Quick View" and Edit operations)
- Support of directory based operations with archive as a target (compressing
directory with all subdirectories to the archive)
- Support of compare directories operation between archive and regular
folder and between two archives.
- Add to archive operation on the directory should create archive
of that directory and optionally delete the directory and all files
in it.
- Complete archive extraction to the directory operation on the archive
should create directory with the name of the archive by default and
un-archive all files into this directory.
- Support of at least ZIP, GZIP, TAR, ARJ, RAR and LHA;
- If both panels are viewing archives, file operation like copy and move
should be possible.
- Ability to view self-extracting archives via Ctrl-PgDn;
- Support of additional commands (integrity check, repair, etc.) via special
menu item (for example Shift-F3);
- Search VFS (optional if Script VFS is implemented)
- Panelize command in the search mode creates a virtual panel with the
files that satisfies the search criteria.
- Ability to hide full path in order to see duplicates and other anomalies.
- The ability to perform operations with a single file on Search VFS as
a target
- Ability to use panel filters with the virtual search panel.
- Xtree VFS (also called "flat" VFS, recommended key assignment Ctrl-B)
The ability to view all files in the subtree (current directory and all its
subdirectories) as a double-width panel (like in Xtree) with all file operations
available. This is a very important feature for system administration.
Filters on subtree should be available (Total Commander, Northern Capitan)
- Script VFS -- the ability run an arbitrary script that produce a list
of names of files and view the result in the panel (MC panelize command).
- All reasonable operations that use this panel as a source should be
allowed.
- Only a single file can be used as a target.
- Refresh operation should lead to another invocation of the script
- Briefcase VFS (panelizing history of visited directories and browsed
files)
- History of browsed files
- Automatic addition of links to all recently changed files
to the briefcase virtual directory;
- Automatic deletion of the files from the briefcase that are more
than N days old;
- Ability manually add files to the briefcase folder;
- Ability to use a briefcase as a virtual source panel for all relevant
file and selection based operations;
- Ability to discard the content of a briefcase.
- Only single file in the briefcase can be used as a target
- History of visited directories VFS (it can be a very limited
VFS -- essentially FAR functionality is enough)
- The ability to view the history of visited directories it in
a virtual panel and be able to perform reasonable subset of operations
on this list;
- Hotkeys and/or buttons to navigate history (like back
and forward buttons in Netscape);
- Ability to add directories from the favorite list to history
- Ability to search history;