Softpanorama Bulletin
Vol 12, No.03 (July, 2000)
Prev | Contents |
Next
OFM standard 1999 (basic OFM requirements)
Dr. Nikolai Bezroukov
Version 3.11
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