Softpanorama Bulletin
Vol 24, No.10 (October, 2012)
Prev | Contents |
Next
OFM standard 1999 (basic OFM requirements) Version 3.11
Dr. Nikolai Bezroukov
Version 3.11 (revised November 2012)
Change Records
[Nov 08, 2012] New results for OFM1999 compatibility test produced.
[Nov 07, 2012] Compete revision of the standard version 3.0 produced
[Oct 18, 2012] MC 4.8.1 has problem with new implementation of Ctrl-O when on return active panel is not change even
is current directory was changed in shell.
I modified Ctrl-O description to account for this possible implementation bug.
Reverse engineering and generalizing basic functionality of OFM managers is a difficult, non-rewarding, but necessary
work. I did it because I am afraid about possible disappearance of a set of valuable ideas invented by various talented
implementers. Many of them like the Norton Commander creator John Socha and FAR creator Eugene Roshal participated in the
OFM design only for a short time (1994-1989 for John Socha, 1997-2001 for Eugene Roshal) and then completely abandoned the
field. Actually, I have a feeling that John Socha was very surprised when he read one of the versions of my
The Orthodox File Manager(OFM) Paradigm eBook :-).
Some of historically important OFM managers are now belong to abandonware (all Norton line of products, Volkov Commander,
DN to name just a few). Some are now long gone and difficult to find. And not all of them were open source. I am afraid
that without reflection in the literature in a way reusable by subsequent generation of programmers those ideas and unique
feature invented by previous generation of OFM developers will be gone and need to be reinvented again, may be in crippled
form.
I have a huge advantage to observe the field almost from the very beginning and working with several different OFM during
my more then 20 years experience with this type of file managers. At the same them the amount of time and effort I was able
to spend on this work is limited (actually the recent revision happened only due to a week long isolation produced by tropical
storm Sandy as NJ was hit really hard;-) So the result in some parts are raw. But I think that they can provide a solid
foundation to additional work and hope my efforts to create those standards will be useful for new OFM implementers including
those who are attracted to existing open source projects like FAR and Midnight Commander. Useful because to understand the
key ideas is much easier it you put all your knowledge into some framework. This standard and two subsequent standards (OFM2004
and OF2012) are imperfect, but useable framework of analyzing functionality and enhancing exiting OFM projects as well as
can save time for those who try to implement a new OFM, especially in scripting languages such as Python, Perl or Ruby.
I try to update the Orthodox File Managers Standards once in five year with the last update made in Oct-Nov.
2012. to reflect progress in OFM implementations and changes in the field. This one (OFM1999)
was the first and is now in its third revision (version 3.0). It was followed by the OFM2004
(advanced OFM implementations) and OFM2012 (Cutting Edge Features of Orthodox File
Managers). Actually the last revision of OFM1999 was done after seven years
after the second, not five due to various circumstances and the workload of the author.
Important notes:
- The Orthodox File Managers Standard does not require key assignments to be exactly the same as in Norton Commander
as long as there is a possibility to change them. All specified key binding 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. All Alt keys can be replaced with
Ctrl-Alt keys in Windows GUI implementations. Switching Alt to Shift for functional keys
is permitted for UNIX implementations that does not support keymapping.
- The structure of main menu is not defined in the standard, but the standard presuppose there is one.
- The capability to connect with a different computer via serial line is not included in the standard.
For inclusion into this section of the standard the feature needs to be present either in MC (as a leading Unix-based
implementation), FAR or NC 5.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.
If the weight is not stated it should be assumed to be 3)
- Interface look & feel
- Symmetrical panels (but controlled separately) with user definable fields in each (left and right separately)
and ability to switch to one of several predefined templates. In the picture ten templates are defined: Brief, Medium,
Full, Wide, Detailed and so on...
- Information line (infoline) should be present at the bottom of each panel, by default displaying
the current file (or overflow of the current file name, in the name column is too narrow for full name and if space
allows additional attributes not displayed in the panel view (such as ownership and permissions).
- Top and bottom menus. Top menu can be by default hidden (activated with F9 or click my mouse on the top
border) and provide with access to configuration and commands without shortcuts
- Bottom menu should be "mouse clickable" and should change the displayed key shortcuts, if you press
and hold Ctrl, Alt, Shift for "F-operations" such as F1-F9. If due to keyboard driver limitations there is
no possibility to provide change by "Press and hold" rolodex style rotate buttons should be provided.
- Ability to position panels both horizontally and vertically should be present. Unequal split between left and
right or upper and lower panels should be possible.
- Command window should be present by default in minimized form, as a single line with shell prompt. Should allow
entering multiple command in shell.
- Ability to hide left or right or both panels exposing terminal shell screen should be present
- Ability to shrink both panels 50% exposing shell terminal screen should be present
- Separate menu of settings for left and right panel
- Navigational and basic hot keys compatibility:
- Enter compatibility. If command line is not empty, then pressing Enter should execute
the current file if it has executable attribute. If not extension menu should be used for determining operation
to be performed (typically view). If command line contain one of more commands, pressing Enter should result
in their execution. They should be processed by first performing macrosubstitution of OFM variables and then executed
one by one. Results of execution should be available via scrollable command window visible via Ctrl-O
-
The Tab key should change active panel to passive and passive to active;
-
Ctrl-\ key should go to the root of logical drive (Windows), or show the list of directory favorites
(Unix)
-
Ctrl-PgDn and Ctrl-PgUp move to the upper (current subdirectory) and lower level (parent
i.e. CD ..) directories; in Unix Ctrl-ArrowLeft and Ctrl-ArrowRight can be used instead.
The importance of this feature is that it permit exit from several level of directories without changing the command
line that might contain partially typed command. This way you can assemble command line while traversing directory
for its components, for example file names. If mouse clicks on directory can be used instead for the same purpose
this feature can be judged as compatible.
- Ctrl-R / Ctrl-U compatibility. Ctrl-R -- should reread
the directory; that should work for virtual filesystems for example FTP VFS as well. Ctrl-U -- should
swap panels;
- Quick search via Alt-letter should activate instant search on the
panel: you start typing letters with alt-letter prefix and instant search using already typed prefix is performed.
- Alt-letter (or Ctrl-Alt-letter for GUI-based versions) quick search option should be
available for both regular and tree views of the panel. It should work as instant search for the typed prefix.
- Ctrl-Enter during quick search should move to the next item with given prefix
-
Alt-F1 and Alt-F2 (Ctrl_Alt-F1/F2 In Windows
should produce the list of logical drives and allow selection of any of them. In Unix should produce the list of
mount points (df -k) and allow to selection any of them.
-
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 (by default file dirinfo in
Windows implementations) is available it should be displayed as well (Default for dirinfo descriptions
in UNIX-based implementations should be README file). If multiple files match user-defined regular expression
specified in dirinfo, the first should be displayed. The file that serve as dirinfo file should be
user-definable with the possibility to define it with regular expression (this way multiple files can be defined,
if desirable).
-
Ctrl-Q should switch to quick view in which movement of cursor on the active panel changes the
view of the file in the passive panel.
- Shell window compatibility
- OFM should behave like tile windows manager and be able to expand command line (which is a minimized
to a single line third, borderless shell terminal window) -- to full screen, to half screen vertically, to half
screen horizontally and to quarter of the screen (half with one panel hidden):
- Command line should allow to execute multiple command from it with macrosubstitution of macrovariables
and shortcuts to the current file to the command line (Ctrl-Enter) as well as path to left and right
panels (Ctrl-[/Ctrl-]).
- Ctrl-O should maximize expand shell terminal windows to maximum size (hide both panels by default):
- In the resulting screen standard shell terminal 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.
- If current directory was changed during the work in command window, the active directory in the panel should
reflect the new directory on return to panel view by pressing Ctrl-O again.
- Terminal session look& feel compatibility. Expanded window should behave like terminal session (like in
GNU screen). For bash at least the following features should be present:
- Ability to change command prompt (Unix)
- "Arrow" access to history (Unix)
- Ctrl-R search in command history (Unix)
- Ability to scroll windows back
- Change of directory in shell terminal windows leads to change of active panel directory on return to panel view.
If commands in command window changed the content of the current directory then the active panel should instantly
reflect those changes.
- Ctrl-F1/Ctrl-F2 should provide a view of the shell screen with overlaid one panel (hide one panel exposing
underling shell terminal window and results of execution of previous command, if any).
- Ability to shrink panels 50% or gradual shirking/expansion of panels (vertical shrinking compatibility
- With one panel hidden (left or right) in both half window mode and full terminal windows mode.
- Ability to expand active panel to full screen
- Compatibility of F1..F12 and other F-keys 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. HTML based format is preferable. Context help should
be implemented: if some dialog is opened the help should be about this particular dialog, not the general help tree.
-
F2 -- availability of 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 variables is not defined in this standard but following Midnight
Commander conventions is recommended.
- Invocation of viewer and editor.
-
F3 -- should invoke built-in viewer
- F4 -- should invoke built-in editor (optional)
-
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). 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.
- Copy Operation
-
F5 -- should copy/move subtrees if applied to directories; Should work with selected files and 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 symbolic link from the file in the current directory to the directory
in passive panel.
- Copy "overwrite" dialog windows should contain information about the size and date of creation of
files. If target is newer then source the info should be in red
- Move operation
- F6 should be able to move subtrees. Movement of directories within the same logical drive does
not result in copy operation;
- Shift-F6 should permit renaming of the file or directory with the capability of editing the old
name (not reentering it).
- Alt-F6 should create hardlink
- Copy "overwrite" dialog windows should contain information about the size and date of creation of files.
If target is newer then source the info should be in red
- F7 should create directories. Shift-F7 or similar combination should create soft link to the
current directory on active panel in the directory in passive panel
- F8 should delete files or directory subtree 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. F8 operation should
perform deletion of subtrees is it is applied to the directory with non-empty subdirectories.
- F9 and F10 -- Main menu activation and exit (For GUI versions F10 can activate menu too, instead
of exit -- this is Windows standard)
- (optional) F11/F12 compatibility. F11 -- chmod/chown, F12 -- macrorecoder
- Tree View Panel compatibility: This is a mode similar to Microsoft
File Explorer mode with some notable differences.
- Ability to copy files to the tree target (if you change passive panel to active with Tab key
or mouse and try to copy file the target will be the directory on the tree that was current).
- Movement of the cursor on the panel with tree representation should not lead to change of the directory on the
passive panel (Microsoft File Explorer mode). + and - or ArrowLeft/ArrowRight should expand collapse directories.
Enter or double mouse click should change directory of the passive panel to the current on tree
panel.
- Quick search in tree mode (Alt-letter, Ctrl-S)
with jump to directories with the same prefix down the tree. 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). Note: search should be activated; in normal mode it should paste the current directory into the command
line.
- F5/F6 compatibility from tree view to passive panel.
- Same level of nesting of directories navigation. Gray+ (or spacebar), Gray- (or backspace)
should move up and down the tree to the next branch on the same level.
Alternative keys
- PgUp/PgDown can also be used for same level navigation on tree , especially in GUI based
OFM as they are pretty much useless for anything else.
- ArrowLeft, ArrowRight also can be used, especially in Unix OFMs.
- Quick view tree navigation: Invocation of Ctrl-Q on tree panel should lead to quick mode of
navigating the tree -- changing tree in one panel should make the current (highlighted) directory current on the
second (passive) panel. There should be two navigation option:
- Tree browsing. In this mode changing the directory on the active panel should lead to display of the content
of this directory on the passive panel.
- Dirinfo mode. If dirinfo file is present in the directory it is displayed. If not some statistics about
directory is displayed.
- Enter should change passive panel directory to current on tree view. Ctrl-Enter should
copy file to the command line
- F4 in treeview mode should invoke attribute changing dialog box that should allow to edit directory
attributes
- Navigation keys such as Home/End and PgUp/PgDown should work.
- Directory Search Panel compatibility (aka NCD panel, aka FindFolder):
The directory search panel (find folder). 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. Here for example is how FAR NCD tree looks like:
- Initial Focus of the tree. Alt-F10 or other hot key used for NCD tree should produce tree view
of the current panel starting with the current directory (not root!) and provide the ability to select new current
directory on this representation with Enter.
- Refocusing the tree( F5). You can put any directory "in focus" (position it in
the middle of the panel) by pressing F5 and simultaneously maximize panel to full screen. Pressing
F5 again will restore the window to the previous size.
- Rescanning behavior (using F2). Pressing F2 rescan the disk. Pressing Alt-F10 should not
produce rescanning of the disk without reason, but rescanning should be available as an option (usually via
Ctrl-R or F2)
- Quick search input line should be enabled automatically at the bottom of this panel - any input other
than control symbols is considered as a search prefix
- Ctrl-Enter should jump down the tree to the next directory with the same prefix.
- Copy(F5), move(F6) and FindFile (Alt-F7) operation should provide the possibility
to select the target from the quick tree search panel (preferably via F10).
- File/Directories selection/deselection compatibility:
- Ins should select a single file (cursor may move one line down if such option is set); If Ins
is pressed on already selected file it should be deselected (toggle).
- Gray+ and Gray- should select and deselect file using a regular expressions (as a minimum,
shell basic regular expressions). For example, with basic regular expressions the expression *a*.* should
select files like my_bak.tmp and my_bat.txt, not all files) (MC, FAR, Total Commander, NCW).
- Gray+/Gray- operations should be persistent (second selection operation adds to existing
selection);
- Gray * inverts the current selection
- Named (savable/restorable) selections -- projects (Total Commander)
- Select by file type, date range or custom script (FindFile-style selection) (Total Commander)
- Selections history should be available (Ctrl-Up) and browsable with the same keys as file command history
and mouse-clickable [^] icon.
- Ability to separate individual regex with ";" or "|"
- Option for extended or Perl-style regular expressions support.
- Optional:
- Shift-Grey+ / ShiftGrey- select all and deselect everything regardless of the current
selection (This can be done using asterisk in regular selection)
- Restore Selection operation (no standard key exist, Ctrl-M (FAR) can be used ). It should
restore highlighting of files selected for last copying operation.
- Quick view compatibility:
- Panelized Build-in viewer should be invoked for all files. Depending of type files are displayed
either in text view or hex view. Moves of the cursor up and down in the current panel in quick view mode should
change the content of the current file in the passive panel with the viewer ( Infopanel)
- For archive basic stats and content of the dirinfo file should be shown (list of information files should
be customizable with a regular expressions (or a set of regular expressions), but default should include
File_id.diz, README, read.me, readme.1st). In case no description is available
the top part of the toc of the archive should be shown.
- For directories basic stats and dirinfo file should be displayed. Behavior should mirror the behavior for
archives. Stats should include number of subfolders, files and total subtree size in bytes. Here is an
example from FAR:
- For executables the header should be shown. In windows typical ownership info should be displayed, if it is
present. There should be capability to invoke a script on exec files.
- If there are selected files exit from the internal viewer in info panel via F3 should display the next highlighted
file, not the next file
- In tree view Windows File Explorer mode should be implemented: ability to view files in a new current directories
on each movement of the cursor tot he directory as in Windows File Explorer
- Macro recorder compatibility
- Keyboard macros should be available in panel view and editor.
- Ability to edit macros
- Availability of internal macrolanguage with conditional constructs and loops
- Macro can overwrite standard key assignments
- FindFile compatibility (Alt-F7)
- 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.
- Unix find search expressions or equivalent should be supported. Here is example of FindFile dialog from FAR:
- The ability to search by content (regular expression like in Grep)
- Search history
- 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. All file
operations should work with the panel.
- Quick selection of the start directory using tree search panel (F10)
- Command line execution compatibility:
- The ability to view the results of shell command execution by hiding both panels using special hotkey
(usually Ctrl-O) It should also work the same way from built-in viewer and editor.
Note: NC it was also possible to shrink panels to 50% providing visibility of shell execution as well
as subset of files in panels. This feature was never implemented in most OFMs and as of October 2012 removed from
the minimal standard.
- Cursor movement keys should work like in OS shell when panels are hidden
- Change of the current directory via command or script execution changes the directory on the active panel;
- 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 with Ctrl-Enter (if one or several files are selected
they should be inserted into the command line instead of the current). Same with full path Ctrl-Shift-Enter
- Inserting the list of selected file on the current panel
- Optional
- Inserting the current file from the passive panel (Ctrl-F)
- Inserting the current file with abs path from the passive panel
- 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").
- Directories first option should be provided.
- 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 (aka sorting mapping function) should be available, for example, directories, or
(htm|html|shtml) as one group.
- Ctrl-I should proved the ability to define named file panel filters.
Here named means that those filters that you have given a name will be saved on exit and restored
on reentry (FAR) so that they can be reused in other sessions:
- Ability to name filters and save restore named filter should be provided (FAR)
- 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
- Hierarchy of user menu files (local/user/global)
- Multiple commands can be written without need to create a separate batch file
- Include files should be permitted in the user menu (hierarchical menu)
- The ability to use macros for elements from both passive and active panels in user menu commands (the current
file, the selected files, the current path are minimum, MC schemes are recommended, while NC-style is deprecated:
- The MC-style naming system for macro substitution symbols for active panel (see below 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).
- Note: Instead of Case change method for macrovariables in active and passive panels (as in
%f and %F) there can be a special prefix 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
- 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 timestamps editing
- File ownership
- Rename tool
- Diff tool
- File case conversion command should permit changing of the case of the file or group of files (not applicable
to DOS implementations)
- Association (extension menu) management compatibility:
- Multiple associations. The ability to specify one or several associations for the same extension using regular
expressions
- Internal editable file that take precedence over system associations
- Hierarchy of association files (global/user)
- Ability to specify actions for View, Edit and Enter operations in the same file
- Usage of regular expression in determining the association
- Ability to use file type instead of file name (as returned by Unix file command)
- The ability to use the same macrovariables in associations in the file association table as in the user menu.
- Compare directories:
- Simple attributes comparison
- Comparison rules/filters should be provided (only size, only date, etc) generally equivalent in capabilities
to search. Can be provided as a different command (synchronize command like in Total Commander)
- Strong comparison (comparison by equivalence of file content, possibly using MD5) should be provided.
- Option to ignore date of creation and other data stamps (important for FTP VFS)
- Synchronize option or command
- Built-in viewer:
Note: Should be able to work in full screen mode and in
panel mode (at least in quick view).
Optional: User should be able to invoke the viewer in the panel mode not only in quick view, but also via some hotkey
(for example Alt-F3). This is very useful if 132 screen mode is used.
- End should go to the end of the file; Home to the beginning of the file;
- Wrap/unwrap feature (F2);The ability to view file in hex should be provided (via F4)
- Ctrl-O shows command line screen
- The ability to search for regular expression (F7); to repeat search (Shift-F7).
- "/" and "?" keys should serve as additional hotkeys for regular expressions
search forwards/backwards as in many Unix tools.
- The ability to search in reverse direction (Alt-F7 or Ctrl-Alt-F7);
- Pressing F3 should exit the viewer -- very convenient key assignment for quick exit from the viewer (MC,FAR);
- + should go to the next file, - to prev
- Bottom menu changes when Ctrl and/or Alt is pressed.
- Bookmarks for file positions should be available
- Ability to go to specific line number and specify offset in percents
- Optional: mouse click on the current line number should open panel to specify line number to go.
- Built-in Editor
- Look and feel
- The bottom menu changes when Ctrl or Alt keys are pressed;
- The ability to view hex representation of the current symbol in the upper menu;
- Top menu provided with F9 and replaces information line
- Syntax highlighting
- DOS/Unix compatibility
- Autodetection of Unix/Dos style text files and preservation of the style in save.
- Ability to change style on save.
- Windows style way of selecting blocks of text. Shift-Arrow should select line block;
- Special hot key to go to a line number (Ctrl-G). Optional: mouse click on the current line number
should open panel to specify the line number to go.
- Hotkey for finding matching bracket should be provided.
- Open/Close/Save compatibility
- The ability to create new file (Shift-F4) instead of editing current;
- 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.
- Search compatibility. The ability to search for text string and regular expression in search option (F7)
and repeat search option (Shift-F7); Optional: Search for same text in reverse direction;
- Basic keys compatibility
- Backspace - Delete character left of the cursor; Ctrl-Backspace - delete word left of
the cursor
- Del - delete character under the cursor; Ctrl-Del - delete word right of the
cursor;
- Home -- Go to start of line; End - Go to end of line;
- PgUp/PgDn - Move up/down one page;
- Ctrl-Home - Go to top of file; Ctrl-End - Go to bottom of file; Ctrl-PgUp/PgDn
might be synonyms or to top/end or go to top line/bottom line of the screen;
- Ctrl-Q -- Quote character (insertion of special characters)
- Ctrl-Y -- delete current line; Ctrl-T -- delete current word;
- Ins - Toggle Insert/Overstrike mode; Optional: hot key for Auto-indent mode;
- Ctrl-O shows command line window with the ability to execute commands.
- User menu should be provided with at least one additional macrovariable %b to allow to pipe block to the
script and insert the result of the script to the position after the cursor
- User menu. User menu should be provides with at lease one additional macrovariable (%b) allowing to insert
the test after the cursor or block and pipe the block into script.
Optional: 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 terminal width 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)
- Archive virtual file system (optional if plug-ins are supported
and corresponding plug-in provided)
- Viewing Archive VFS like regular directory. Operations view(F3), Edit(F4), copy(F5), move/rename (F6), delete(F8)
should be supported like with directories. Files can be selected, deselected as in regular folder;
- Compress/extract directories and file into/from archive. Extract command should permit creation of a folder
with the name of archive without extension 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.
- Ability to view self-extracting archives via Ctrl-PgDn (like diving in the directory)
- Support of at least ZIP, GZIP, TAR, ISO and RAR formats.
- History and favorites compatibility.
- Command history (in panel view) should be available both via hotkey (Alt-F8)
- C-shell-style browsing mode should be available. 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 (Alt-E, Alt-X
like in NC5).
- The possibility of exporting command history to a flat file and retrieving command history form
the file.
- Browsable history of commands in command like in all dialogs via on [^] or Ctrl-Up
- History invocation on mouse click on [^] or Ctrl-Up
- In additions in all dialogs (For example Mark/Unmark dialogs, visited directories, viewed edited files,
etc) it should be scrollable with mouse wheel (FAR)
- Visited directories history (folder history Alt-F11 in FAR)
- Viewed and edited files history
- Directory favorites list should be available (Ctrl-\ in Unix)
- Ability to panelize history of visited/edited files (hotlist)
- Command completion: 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
- Infopanel and infoline compatibility
-
Ctrl-L should switch to the information panel. Information panel should provide at
least information about one special file defined in Options/Infopanel Settings submenu of the top menu. The default
is dirinfo in Windows implementations and README for Unix implementation, or both.
If one of defined dirinfo files is available in the directory it should be displayed in the opposite panel. There
should be the possibility to define it with regular expression (this was multiple files can be defined, if desirable).
Several file can be defined, separated with semicolons. If multiple files are present only the first is displayed.
Information panel consists of two parts upper (that is optional) and lower.
- Upper part should provide one or two lines basic statistics (total bytes in the directory, total number of files
and free bytes on the harddrive) about the current directory and current drive (see FAR as reference implementation).
- Lower half should display so called "directory description" (dirinfo) file. the latter a special file
user-definable with a regular expression. If such file is present it should be displayed in the bottom half. If
multiple files match regular expression the first match should be displayed with the capability to move to the next
match via F10. For example this was the capability
to view README file can be provided. (new in OFM2004 revision
1.3, Oct 2012).
- If infopanel is made active with Tab, all F-keys should be applicable and process the dirinfo file as a source.
F3 in this panel should switch to view of dirinfo file and F4 to its editing. On the picture below
File_id.diz serves as dirinfo file (in FAR the set of dirinfo files is fixed).
- If there is no file corresponding to regular expressions in infopanel definition additional information about
the system should be displayed. Here is an example from FAR
- For directories you should be able to view dirinfo file in full screen by pressing F3 key
- Infoline at the bottom of the panel should display file name (or "overflow" for long names) and additional (custom)
attributes.
- Extension menu definable infoline attributes similar to custom template of columns for panel
(the data are current as of November 7, 2012)
Summary
OFM1999 score (average of all 21 tests) |
|
NC |
VC |
DN |
FAR |
Total
CMD |
NCW |
MC |
FC |
Scores |
|
68 |
71 |
73 |
89 |
70 |
68 |
66 |
75 |
Detailed Results
[an error occurred while processing this directive]
Society
Groupthink :
Two Party System
as Polyarchy :
Corruption of Regulators :
Bureaucracies :
Understanding Micromanagers
and Control Freaks : Toxic Managers :
Harvard Mafia :
Diplomatic Communication
: Surviving a Bad Performance
Review : Insufficient Retirement Funds as
Immanent Problem of Neoliberal Regime : PseudoScience :
Who Rules America :
Neoliberalism
: The Iron
Law of Oligarchy :
Libertarian Philosophy
Quotes
War and Peace
: Skeptical
Finance : John
Kenneth Galbraith :Talleyrand :
Oscar Wilde :
Otto Von Bismarck :
Keynes :
George Carlin :
Skeptics :
Propaganda : SE
quotes : Language Design and Programming Quotes :
Random IT-related quotes :
Somerset Maugham :
Marcus Aurelius :
Kurt Vonnegut :
Eric Hoffer :
Winston Churchill :
Napoleon Bonaparte :
Ambrose Bierce :
Bernard Shaw :
Mark Twain Quotes
Bulletin:
Vol 25, No.12 (December, 2013) Rational Fools vs. Efficient Crooks The efficient
markets hypothesis :
Political Skeptic Bulletin, 2013 :
Unemployment Bulletin, 2010 :
Vol 23, No.10
(October, 2011) An observation about corporate security departments :
Slightly Skeptical Euromaydan Chronicles, June 2014 :
Greenspan legacy bulletin, 2008 :
Vol 25, No.10 (October, 2013) Cryptolocker Trojan
(Win32/Crilock.A) :
Vol 25, No.08 (August, 2013) Cloud providers
as intelligence collection hubs :
Financial Humor Bulletin, 2010 :
Inequality Bulletin, 2009 :
Financial Humor Bulletin, 2008 :
Copyleft Problems
Bulletin, 2004 :
Financial Humor Bulletin, 2011 :
Energy Bulletin, 2010 :
Malware Protection Bulletin, 2010 : Vol 26,
No.1 (January, 2013) Object-Oriented Cult :
Political Skeptic Bulletin, 2011 :
Vol 23, No.11 (November, 2011) Softpanorama classification
of sysadmin horror stories : Vol 25, No.05
(May, 2013) Corporate bullshit as a communication method :
Vol 25, No.06 (June, 2013) A Note on the Relationship of Brooks Law and Conway Law
History:
Fifty glorious years (1950-2000):
the triumph of the US computer engineering :
Donald Knuth : TAoCP
and its Influence of Computer Science : Richard Stallman
: Linus Torvalds :
Larry Wall :
John K. Ousterhout :
CTSS : Multix OS Unix
History : Unix shell history :
VI editor :
History of pipes concept :
Solaris : MS DOS
: Programming Languages History :
PL/1 : Simula 67 :
C :
History of GCC development :
Scripting Languages :
Perl history :
OS History : Mail :
DNS : SSH
: CPU Instruction Sets :
SPARC systems 1987-2006 :
Norton Commander :
Norton Utilities :
Norton Ghost :
Frontpage history :
Malware Defense History :
GNU Screen :
OSS early history
Classic books:
The Peter
Principle : Parkinson
Law : 1984 :
The Mythical Man-Month :
How to Solve It by George Polya :
The Art of Computer Programming :
The Elements of Programming Style :
The Unix Hater’s Handbook :
The Jargon file :
The True Believer :
Programming Pearls :
The Good Soldier Svejk :
The Power Elite
Most popular humor pages:
Manifest of the Softpanorama IT Slacker Society :
Ten Commandments
of the IT Slackers Society : Computer Humor Collection
: BSD Logo Story :
The Cuckoo's Egg :
IT Slang : C++ Humor
: ARE YOU A BBS ADDICT? :
The Perl Purity Test :
Object oriented programmers of all nations
: Financial Humor :
Financial Humor Bulletin,
2008 : Financial
Humor Bulletin, 2010 : The Most Comprehensive Collection of Editor-related
Humor : Programming Language Humor :
Goldman Sachs related humor :
Greenspan humor : C Humor :
Scripting Humor :
Real Programmers Humor :
Web Humor : GPL-related Humor
: OFM Humor :
Politically Incorrect Humor :
IDS Humor :
"Linux Sucks" Humor : Russian
Musical Humor : Best Russian Programmer
Humor : Microsoft plans to buy Catholic Church
: Richard Stallman Related Humor :
Admin Humor : Perl-related
Humor : Linus Torvalds Related
humor : PseudoScience Related Humor :
Networking Humor :
Shell Humor :
Financial Humor Bulletin,
2011 : Financial
Humor Bulletin, 2012 :
Financial Humor Bulletin,
2013 : Java Humor : Software
Engineering Humor : Sun Solaris Related Humor :
Education Humor : IBM
Humor : Assembler-related Humor :
VIM Humor : Computer
Viruses Humor : Bright tomorrow is rescheduled
to a day after tomorrow : Classic Computer
Humor
The Last but not Least Technology is dominated by
two types of people: those who understand what they do not manage and those who manage what they do not understand ~Archibald Putt.
Ph.D
Copyright © 1996-2021 by Softpanorama Society. www.softpanorama.org
was initially created as a service to the (now defunct) UN Sustainable Development Networking Programme (SDNP)
without any remuneration. This document is an industrial compilation designed and created exclusively
for educational use and is distributed under the Softpanorama Content License.
Original materials copyright belong
to respective owners. Quotes are made for educational purposes only
in compliance with the fair use doctrine.
FAIR USE NOTICE This site contains
copyrighted material the use of which has not always been specifically
authorized by the copyright owner. We are making such material available
to advance understanding of computer science, IT technology, economic, scientific, and social
issues. We believe this constitutes a 'fair use' of any such
copyrighted material as provided by section 107 of the US Copyright Law according to which
such material can be distributed without profit exclusively for research and educational purposes.
This is a Spartan WHYFF (We Help You For Free)
site written by people for whom English is not a native language. Grammar and spelling errors should
be expected. The site contain some broken links as it develops like a living tree...
Disclaimer:
The statements, views and opinions presented on this web page are those of the author (or
referenced source) and are
not endorsed by, nor do they necessarily reflect, the opinions of the Softpanorama society. We do not warrant the correctness
of the information provided or its fitness for any purpose. The site uses AdSense so you need to be aware of Google privacy policy. You you do not want to be
tracked by Google please disable Javascript for this site. This site is perfectly usable without
Javascript.
Last modified: March, 12, 2019