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;
Copyright © 1996-2009 by Dr. Nikolai Bezroukov.
www.softpanorama.org was
created as a service to the UN Sustainable Development Networking Programme (SDNP)
in the author free time.
Submit
comments This document is an industrial compilation designed and created
exclusively for educational use and is placed under the copyright of the
Open Content License(OPL).
Site uses AdSense so you need to be aware of Google privacy policy. Original materials copyright belong to respective owners. Quotes are made
for educational purposes only in compliance with the fair use doctrine.
Disclaimer:
- The statements, views and opinions presented on
this web page are those of the author and are not endorsed by, nor do they necessarily
reflect, the opinions of the author present and former employers, SDNP or any other
organization the author may be associated with.
- We do not warrant the correctness of the information provided or its
fitness for any purpose
- In no way this site is associated with or endorse cybersquatters
using
the term "softpanorama" with other main or country domains (e.g. softpanorama.com) with
bad faith intent to profit from the goodwill belonging to
someone else.
Created Jan 2, 1999; Last modified:
August 15, 2009