OFM Bulletin 1998
|
Softpanorama
(slightly skeptical)
Open Source Software Educational Society |
May the
source be with you,
but remember the KISS principle ;-)
|
Comments updated January 19, 1998. This is the second commented
version. The original uncommented version of this document is available
here.
The comments are maintained by Janne Kukonlehto. See also the following
messages on the Midnight Commander developers mailing list:
|
Version. 1.06, Jan 15, 1998
The Orthodox File Manager(OFM) Paradigm
By Dr.Nikolai Bezroukov
This paper has a very strong Dos/Windows bias. The only non-Dos/Windows
OFM mentioned by name is Midnight Commander (probably because Midnight
Commander has a Windows port).
Contrary to what this paper might make you think there are many
OFMs for unix. A good place to start looking is the
file manager directory at Sunsite. Some examples of Unix OFMs
are
GNU Interactive Tools,
Pash and
Unix Cockpit.
|
The paper discusses Orthodox File Managers (OFMs), often called
NC-style file managers. The importance of this type of file managers is
connected with a very high productivity of advanced users and the
portability (OFM is the only portable file manager known to the author).
OFMs can be found on a large variety of operating system including
various flavors of UNIX, OS/2, all existing versions of DOS, Windows
3.1, Windows 95, and Windows NT . They are an essential tool for system
administrators, especially NetWare and UNIX system administrators.
The current stage of development is explored, several classical (NC5, VC,
DN,FAR) and GUI-based (Windows Commander, Norton Commander for Windows 95)
implementations are reviewed and recommendations for future development
are proposed. The author believes that OFMs should become an important tool
for WEB masters. Another important role of OFMs is to simplify file management
in Linux and FreeBSD and to help to attract new users to this very interesting
and currently underutilized Oses (Midnight Commander is now shipping with
both variants or UNIX mentioned).
The "Orthodoxness test" that measures the level of compliance
of a particular file manager with the orthodox doctrine is proposed. It
contains four parts: "Basic compatibility", "Virtual file systems support",
"Modern extensions" and "Recommended extensions/Wish list".
The Orthodox File Managers (often called NC-style file managers), are
probably the most influential type of file managers of DOS heritage.
The OFMs are more than a popular type of file manager. It is a cultural
phenomenon that we ( lacking more precise definition) will call the OFM
paradigm or even OFM religion (the word orthodox is more applicable to religion
that paradigm;-). For a typical Windows user it looks somewhat strange that
people continue to use descendants of a character-based file manager
that was initially designed for XT. Also strange that a lot of talented
programmers devote considerable time solving intricate problems of designing
OFM-style manager. One of the motivations of this article is to provide
some kind of framework for both OFM users and authors and to put this kind
of file manager into a more general context. The test provided in
the supplement 1 also can be useful for the authors of the OFM implementations
I believe that the total number of the OFM implementations (including
discontinued) is close to a hundred. This figure alone says a lot about
the phenomenon. No other type of file managers ever managed to get
such a strong following. OFMs are also parts of the hacker culture,
especially European hacker culture.
Although originated in the USA, the OFMs became mostly a
European phenomenon with a very strong following in former USSR(xUSSR) countries.
The first attempt to create to generalize Norton Commander functionality
(PIE Commander by Valentin Chernyak that has had four independent panels
instead of two) was done in this region as early as 1989. Three major OFM
implementations (VC,
FAR and
DN)
are from Ukraine, Russia and Moldavia/Russia (Stefan
Tanurkov is from Kishinev, Moldavia and Dmitry Dotsenko is from
Moscow). In the xUSSR countries OFMs are often taught at introductory university
courses and books describing techniques of working with this type of file
manager has been published in several millions of copies. From the
late eighties till the early nineties for entry level users in the xUSSR
OFM interface was a synonym to the DOS interface. Many users never even
suspected that the OFM is not a part of DOS or that regular command-line
DOS interface exists. 7
In other European countries OFMs are very popular as well.
There are many implementations of OFMs in that region (probably at least
one for each European country :-) including:
The high quality Australian implementation - FC by
Brian Havard
is very popular in the OS/2 environment (Win95 version with support of long
file names and a virtual file systems for archives is also available). This
suggests that OFMs are well known in Australia too.
More that a dozen implementations of OFM exist for UNIX. The most popular
in the UNIX environment is
Midnight
Commander.
Sometimes OFM-style managers are incorrectly called NC clones - the latest
incarnation of OFMs represented by Dos Navigator(DN), FAR, Midnight Commander(MC),
Volkov Commander(VC), Wincmd (Windows Commander) and others are far from
being clones, since Symantec lost its leadership after NC 5.0; most of them
are quite original and often introduced new features.
We will distinguish between classic OFM implementations(COFM) that use
text interface and GUI-based OFM implementations (GOFM). As with any
religion along with mainstream (orthodox) implementations there are various
sects that deviate in some ways from the orthodoxy ;-). One
rather interesting sectant implementation (Jet Commander) is also discussed
in the paper.
This paper provides a short overview of features in five classic (DN,
FAR, NC and MC(the latter being mainly the UNIX beast, although Win95 version
is now available), two GUI-based(Windows Commander and Norton commander
for Windows 95) and one sectant implementations (Jet Commander).
Much like
Johann Sebastian Bach's music OFM belongs both to the previous century
and to the next century. The interface is more than 10 years old and is
somewhat archaic. Key assignments have no rational explanation from the
point of view of a typical Windows user (but that deficiency can be be easily
cured by providing a key-mapping mechanism, see below).
At the same time OFMs offer a unique blend of simplicity and power. They
provide a very efficient tool (and a way of thinking about performing these
operation - that's why the word paradigm appears in the title of this paper)
of working with large collections of file and complex file structures. People
that start using OFMs seldom switch to another file manager. There are a
lot of users (including the author) with more than a five years experience
in one or several OFM implementations.
I see the following major advantages of OFMs:
- Better paradigm. OFM idea of two
symmetrical interchangeable panels (similar to an editor with two text
windows is a more powerful model that asymmetrical model used in Windows-style
GUI-based managers (the tree in the left panel and the file list in
the right with the possibility of drag and drop from one panel to the
other). Also OFMs have richer variety and more flexible semantics
of file operations that often permit performing tasks with fewer keystrokes
and fewer mistakes. For example OFMs use concept of multiple associations
- any extension in OFM can be associated not with single executable,
but with multiple; selection of group of files is more flexible and
number of operations on groups is bigger than in in Windows-style managers.
OFM paradigm successfully integrate several concepts from other filemanagers
(Xtree and windows-style) as well as ideas originated in WEB-browsers
(directory favorites or bookmarks). BTW the concept of bookmarks was
present in rudimentary form in OFMs from the beginning (user menu),
but now it is refined and fit naturally.
- Productivity. The productivity of the
power user of OFM is really amazing. To the uninitiated it often looks
like a magic - especially the speed with which advanced user can perform
complex file operations. It looks much like playing piano. Availability
of virtual file system(VFS) make some complex operations much simpler.
Generally it seems that complex file operations the OFM paradigm of
symmetrical interchangeable panels with emphases on keyboard is more
productive then Windows-style GUI interface with asymmetrical windows
and strong emphases on mouse based operations (drag and drop).
- Unique suitability to system administration tasks.
OFMs are a very powerful tool for system administrators, and using them
can considerably cut time needed to perform usual system administration
tasks. They are very useful for troubleshooting as many implementation
of OFM (Volkov Commander is a famous example) are small programs that
can be used from the floppy. I believe that an OFM should be a part
of the toolbox of any decent system administrator. Sysops of FIDO
BBS were probably the most active OFM adopters and some features in
OFMs are generalizations of BBS maintenance experience (4DOS file description
support is one such feature). Most OFMs (FAR, NC5, Norton Commander
for Windows, Windows commander, etc.) provide additional system administration
tools for NetWare (drive mapping, etc.). MC provides additional
UNIX management tools.
- Portability. With its simple character-based
interface OFM is the only portable file manager. OFMs managed
to migrate to almost any other OS (including palmtops Oses, all flavors
of UNIX, OS/2, Amiga and even IBM mainframe VM/CMS operation system).
It can be implemented on black and and white screen with limited number
of shades of Gray or no shades at all. OFM is probably one of two types
of file managers (the second is Xtree and its derivatives) with implementations
on all four (or more, it depends on how your count them ;-) major Microsoft
operating systems (DOS 2.0-6.22, Windows 3.xx, Windows 95.xx and Windows
NT).
- "Small is beautiful". OFMs are rather
small programs that efficiently utilize system resources and can be
developed by a single author. Now famous Volkov Commander 4.01
is an extreme case - it's a 64K program that is blazingly fast even
on the most primitive and underpowered PC. At the same time the functionality
of this 64K program beats the functionality of many Windows file managers
that have a size of more than one megabyte.
- Dynamic development. OFM field is not
static with well known players, it is a rapidly developing culture with
a lot of innovation from newcomers. For example FAR - current leader
among classical implementations - is a recent introduction to the OFM
family with v.1.0 released in 1996. Competition in the field of OFMs
is really strong with several dozen talented programmers working on
their products. The functionality of the latest generation of OFMs ("made
in 1997" OFMs) is vastly superior to their predecessors made in 1993
or 1990. For example DN 1.5 introduced three new and very important
VFS - flat subtree, briefcase and findfile/list VFS.
Professionally OFMs are mostly used by system administrators (especially
Novell administrators and now Linux and FreeBSD administrators), BBS sysops
and professionals who perform a lot of file manipulations. Using OFM is
also part of the hacker culture, especially in Europe.
But now the most important type of users of OFMs are WEB masters.
Essentially all BBSs are moving toward WEB server technology and BBS sysops
were always a stronghold of OFMs. WEB masters need to perform a lot of file
manipulations, and often work in the cross-platform environment. The
first important move of OFMs in this direction is the support of the FTP
virtual file system(VFS). Second important feature is the ability to convert
the case of filenames.
I believe that HTML-related tasks will drive the evolution of OFMs for
the next decade. Several possibilities exist and some features are very
easy to incorporate into the general OFM framework. Among them:
- The panel view enhancements
- The navigational enhancements;
- The viewer enhancements;
- The tools integration.
The most simple panel view enhancement is to show the <title>
tag as a description for all HTML documents (by generating Descript.ion
file on the fly, if its time stamp is older than one of HTML documents,
or using other methods).
The simplest navigational enhancement is probably the ability to use
a selected document(index) as a filter to display all referenced documents
in the panel. Even now this can be achieved in DN by writing simple preprocessor
that converts HTML document into file list. In essence it is similar to
viewing an archive and can be called a virtual HTML file system. The second
useful enhancement would be to display a tree view of references from the
HTML document as a specialized tree-view and navigating this tree in a usual
OFM style.
As for built-in viewer enhancements, integration of HTML stripping into
viewer would be really beneficial. Also badly needed is the ability to jump
from the text view to the panel view for a particular directory (jump to
the directory selected in viewer or editor will probably be enough and is
quite simple to implement).
Here are some recommendations for tools that can be used with OFMs to
improve a WEB master productivity:
- Viewers (Lynx-like) or specialized (for example VIEWHTML v2.5 that
provides hypertext linking and colors. Also can convert
HTML documents to text files. Is able to copy text to Windows clipboard.
Links to web browser, see Softpanorama. vol. 9, No.3, issue B);
- Strippers - program that convert HTML to a raw text (for example
HTMSTRIP.EXE - that removes HTML tags from one or several files. It
is avalable from
www.shareware.com. The current version is 7.10, earlier versions
were published in the Softpanorama bulletin. vol.9, No.2, issue C.);
- Prettyprinters ( I do not know any standalone HTML prettyprinter
right now);
- Collection viewer (ability to display on the panel only documents
that belong to a particular HTML collection);
- Link checkers (for example CHECKWEB v1.1 - HTML links analyzer that
scans HTML pages, explore all the links and generate a log file with
all errors (http://www.alterego.fr/develop.htm.)).
- Table of content generators (htmltoc can be easily integrated)
The main window of the OFM is divided into three subwindows. Two of them
called panels are identical in structure and are situated side by side.
Panels contain directory listings of the current directory or a tree
representation of the current drive. One of the panels is the so-called
active panel in a sense that the user can perform operations on file listed
in this panel. The second one is passive and serves as a target for operations
performed on the files on the active panel.
The third window contains just a command line, and is situated at the
bottom of the screen. Often the toolbar with buttons for 10 functional keys
is situated under the command line. The panels can be shrunken or
completely hidden.
Both panels are further divided into three subwindows - a header, a list
part, and an information line.
The header line contains the titles of the columns present in the list
part. In some OFMs (for example Windows Commander) columns headers are clicklable
and click on any of them changes the sorting order of the list.
The list part contains the list of directories and files from the current
directory (usually including hidden and system directories and files) with
some or all attributes(size, timestamp, etc.) or tree representation of
the current drive. In all OFM user can choose one of several form
of the directory listing representation (the minimum is just two: a brief
list and a detailed list). In advanced OFMs the list is customizable.
Information line(or more correctly information windows) is in essence
a separate window that shows the information about current file and current
group of selected files, if any. If long file names are supported then the
long file name of the current file is displayed in the window in real
case(i.e. if file name in in upper case it should be displayed as such).
Additional operations on the current file (for example click by the mouse
on the information line can select all files with the given extension, etc.)
also can be supported in this window. In case one or more files on the panel
are selected the information line shows statistics on these files(the total
number of selected files and the total size of the group). In
modern OFMs, an information line became an information window and bottom
border line of the panel and upper delimiting line are used for displaying
the number of selected files and the total number of files in the current
directory.
In some OFM there are special colors for directories, executable files,
hidden and system files. Traditionally at the bottom of the screen a command
bar is displayed (see below).
All OFM share the following characteristics:
- Two symmetrical panels that provide the same functionality (one
panel is current and second is passive; switchable with the Tab key)
- Strong keyboard orientation. Unique (incompatible with usual windows
assignments) keystrokes assigned to each function (traditional F1 -help,
F2- user menu, F3 file view, F4 - file edit, F5 - file copy, F6 - file
move/tree move, F7 - make a directory, F8 - file delete).
Often these major keystrokes are depicted on the bottom line as buttons
clickable by the mouse. Although key combinations are traditionally
preserved in OFM implementations they are NOT a part of OFM paradigm.
If possibility of reassigning the keys is implemented (for example in
a way, similar to MultiEdit implementation (MultiEdit is a favorite
Editor for many OFM users) than any other combinations (including more
Windows like) can be used. Again only semantics of the operations is
fixed and should be implemented "as is".
- The ability to perform most functions without mouse (that feature
is especially useful on the laptops and now palmtops); mouse is supplementary,
not primary input device in OFMs;
- Command line window at the bottom of the screen with the ability
to execute DOS commands and select previous commands from the commands
history;
- Special customizable extension files and menu that permit context-dependent
invocation of scripts and programs of file click (execute), F3(view)
and in F4(edit).
Although the OFM paradigm is rooted in the character text interface and
classical OFM implementations are text-based, OFMs are not limited to it.
It is not a type of GUI per se, it's not keystrokes(if you can reassign
them), it's the semantics of operations that matter most. Now
a lot of of OFMs successfully use GUI interface.
GUI provide much more capabilities than restrictive character-based interface.
Nevertheless the character interface is really important and considered
classical from another point of view. Artists know well the saying "form
liberates". In the same way puritan character interface liberate a programmer
from spending too much time and effort on unimportant things and thus provide
possibility to spend most of the time implementing richer set of operations.
Paying too much attention/time/effort to the "face" is characteristic
to Windows developers and often negatively influence the functionality
of the product. Nevertheless several GU-based implementations exits and
some of them combine drag and drop features with classical OFM features.
I found almost a dozen of GUI-based implementations. Among them the following
deserve attention:
OFMs is more that 10 years old. Milestones in the development of OFM
are:
- NC 1.0 (1985???);
- NC 2.0( 1987???);
- NC 3.0 (1989???);
- NC.4.0 (1993);
- VC4.0 (1993);
- WinCmd 1.0 (1993);
- MC (1994);
- NC5.0 (1995);
- DN 1.50 (1997);
- WinCmd 3.03 (1997);
- VC 5.0 (alpha - 1997);
- FAR 1.50b (beta 1997).
Norton Commander for DOS is the original line of OFMs that exists in
four major version: 2.0 3.0, 4.0 and 5.0. Only versions 2.0 and 3.0 (I believe
only the version 2.0 was written by NC original author John Socha, before
he left the company) can be considered as a decent implementations of
the ideas of OFM (NC 2.0 was the cornerstone of OFM) and they provide
a basis of OFM paradigm. Versions 4.0 and 5.0 provide useful enhancements,
but implementations look much like betas and are quite fat.
The main enhancements introduced in NC5 are:
- The Virtual File System for archives (rather weak implementation
for ZIP files only, but a very important idea);
- File attributes command (very convenient. later was extended
in VC for date and time stamps);
- Synchronize directory command (Ctrl-F8);
- Label Disk command;
- Invert Selection and Restore Selection operations;
- Customizable file name filters in the panel (via Filter menu)
- Tools menu file (Tools.MNU) for customization of the Main menu.
The Virtual File System(VFS) was the only important addition to OFM paradigm
in NC 5.0. Actually NC 4.0 also can show archive contents in panel,
but unlike NC 5.0 it cannot view archived files. Initially VFS was implemented
by many OFM enthusiasts as add-ons to NC 3.0 (archive viewers of different
flavor with NC-like panel structure and operations were very popular addition
to NC 3.0, but the level of integration was limited). The VFS provides possibilities
of working with archives in a completely transparent way by viewing archives
as directories.
NC 5.0 for DOS was probably the last version which really contributed
to the OFM paradigm. Compatibility with NC 5 should be considered as a minimal
test for contemporary OFM implementations(see suppl.1).
Symantec essentially discontinued its line of OFMs in favor of Windows-style
file managers (Norton Navigator). BTW Symantec managed to kill another interesting
file manager -- Xtree. But probably due to pressure from users in Europe
a European-only Norton Commander for Windows was created (or reanimated
:-) in 1997. This product is much weaker than shareware alternatives and
the development team seems lack a talented leader that is needed to compete
with other OFM implementations. My impression was that nobody from the developers
has a deep understanding of the OFM paradigm.
Currently there are two commercially available OFM products from Symantec
- NC 5.0 for DOS (an old hat by today's standards) and NC for Windows 95
and NT (see overview below).
VC line of OFM - masterpiece of assembler
programming
Volkov Commander(VC) was the first OFM that beat NC-line to the punch.
VC 4.0 was a masterpiece of assembler programming, small (v. 4.xx is a COM
program and is less than 64K), but extremely powerful. In 1994 it took the
world by storm at it implemented a dozen of important enhancements that
later became part of the OFM paradigm (for example Ctrl-[ and Ctrl-]).
Even now with strong competition from FAR, VC is still probably the
most popular OFM. I have used VC from late 1992 (Volkov Commander was first
published in the Softpanorama
bulletin in the December 1992). In the 1993 the development of Volkov
Commander were partially supported by the grant from the Softpanorama bulletin
and Vsevolod Volkov make a couple of presentations on the Kiev Softpanorama
seminar.
We will discuss version 5. It's still in alpha(4.99.03), but the alpha
is amazingly bug free and pretty much usable. Despite absence of several
features(Find file, etc.) this alpha version is more powerful than 4.0.
It supports long file names and the archive VFS. And it still is the smallest
OFM among the leading OFM implementations (beta is 78K zip archive ! It's
refreshing to see that program under 100K can perform more that a just "Hello
world" with a couple of options ;-).
This version corrects VC 4.0 major deviation from the orthodox NC paradigm
that was connected with the way it treats "Alt-F10". VC 4.0 does not keep
the results of scanning on the disk (I believe only the last tree structure
is available and often pressing Alt-F10 initiate time consuming rescan of
the whole drive, that makes the feature almost unusable). This is
now fixed and a file TREEINFO.VCX is used as a cache for the drive directory
info.
| In Midnight Commander "ctrl-[" is "ctrl-x p" and "ctrl-]"
is "ctrl-x ctrl-p" and "ctrl-i" is "ctrl-x t". |
VC version 4.xx was a milestone in OFMs. It make a lot of important contributions
to the OFM paradigm, like "Ctrl-[", "Ctrl-]", generation of the selected
file list to the command line (Ctrl-I), enhanced attribute command that
can change timestamp of the file as well as attributes, etc. Most
of them are now firmly incorporated in the OFM doctrine (BTW Ctrl-I, Ctrl-[
and Ctrl-] functionality was recommended by the Softpanorama bulletin).
Also its tiny size makes it an excellent troubleshooting tool and the best
OFMs to carry with when servicing customer PCs. There are more that a dozen
of various add-ons for VC 4.01 (see for example
ftp://ftp.elf.stuba.sk/pub/pc/utilfile/
in the USA the best is to use its Walnut Cdrom mirror
ftp://ftp.cdrom.com/pub/sac/).
This attests the popularity and the value for the programming community
of this OFM implementation.
Version 5 preserve VC 4.xx unique advantages as it is still the smallest
and the fastest of the of leading OFM implementations. If provides
several contributions to the orthodox doctrine:
- Ability to specify shell options like /e:2048 for additional environment
space;
- Quick view tree navigation: navigating the tree in one panel will
make current(highlighted) directory current on the second(passive) panel.
- Uniform syntax for both user menu and the extension table with the
possibility to include files both to the user menu and extension table,
so that the same included files can be used in the user menu.
- Macro substitution symbols for the passive panel.
Quick view was not available in 4.0. It is still absent from the beta,
but is present in the panel menu, so it will be implemented in a final version.
Like in v.4.0 file operations using the passive panel tree view are impossible.
For example there is no possibility to copy file from one directory into
another directory using the tree representation of the disk on the second
panel.
Navigating the tree in one panel will make current(highlighted) directory
current on the second(passive) panel. This is an interesting kind of quick
view function for the tree representation and although useful in its own
way it does not substitute the functionality of selecting the target
directory on the tree representation.
Clicking on Name, Size, Date and Time options does not resort the directory
with this key.
DN line - breakthrough in VFS
The DOS
Navigator (DN) is an extremly interesting and influential implementation
of OFM. v.1.5 released in April 1997 opened a new generation of OFMs. It
should be considered as an ultimate DOS-based classic implementation of
OFM and currently it is difficult to compete with DN featurewise.
Like MC it is a team effort. Initial design was by Stefan Tanurkov and
Dmitry Dotsenko. Several programmers participated in the development on
a different stages. After v. 1.37 Slava Filimonov (he now author of
MRP Navigator - a file shell, designed for use for Win95/NT) and Ilya
Bagdasarov were in charge for DN coding. Then Stefan Tanurkov and Max Masytin
continued the development. The version 1.5 was authored by Stefan
Tanurkov and Max Masytin.
Although it is a text based, the latest version seems to be more
close to GUI-based OFM counterparts as it is using Borland Turbo Vision
for the interface implementation. The size of DN distribution is also more
close to GUI-based OFMs (1M). Although it seems to be a little bit overloaded
with additional utilities, the core OFM functionality is really impressive.
Disclaimer: The author has a very limited experience working with DN
and tested only the demo of v .150. The demo does not provide some
advanced features. In this case documentation was used.
DN 1.5 should be considered as a milestone in the OFMs virtual file system
implementations. It had made a very important contributions in this area.
The feature set and flexibility of DN in this area are really amazing. Among
a long list of DN innovations I would like to single out the following three
VFS:
In Midnight Commander the flat substree vfs and find file
based vfs are achieved via find file - panelize. The list based
vfs is achieved via external panelize.
Briefcase vfs is a standard unix feature (called symbolic links
in unix-speak). |
- Flat subtree VFS -- the ability to view a directory with all subdirectories
as a single virtual directory. Drive a directory can then be viewed
as a flat list of files. this idea was pioneered in Xtree file
manager and is a natural and very important extension of the OFM paradigm.
- Briefcase VFS that links to files and directories on existing drives
into single virtual directory(or drive). Semantically it is an implementation
of the link operation in UNIX, so a briefcase should be a standard feature
in all UNIX implementations of OFMs. It is possible to copy files from
different directories to the briefcase drive and then work with this
links as if they are were stored on this drive. All file operations
are supported. Of course implementation of briefcase on a regular
FAT file system is not as simple as in UNIX, but this is a Microsoft
fault ;-). For drives on some versions of MS DOS and all version
of PC DOS join operation was available (strange mix of link and mount
operations), so limited capability of creating briefcase was present
even in DOS.
- Findfile/list based VFS - the panel will show only files that are
results of the search or present in the text-file list. This is a very
important generalization of the find file function and panel filters.
Using Panel|Read file user can read a list of files from a text
file, for example, files.bbs and DN will search for each of them. The
panel will display the list of files found. Files can be in different
directories and different drives. Essentially filters present
in NC line of OFM should be considered as a very primitive implementation
of this concept: essentially each filter find and displays result of
search with a particular mask or group of masks.
This three new types of VFS are really a milestone in OFM development.
The flat subtree VFS is an important productivity enhancement tool. It was
first introduced in Xtree (as early as in 1987) and this capability probably
was the single most important reason of XTree popularity. This VFS
should be a standard in all modern OFMs, as it provide really superior functionality
to any known to me Windows-style file manager. With Xtree-line of file managers
discontinued (by the way by Symantec :-(), it can became a distinctive mark
of OFMs.
Three other innovations are also very important:
- The ability to have several sets of panels and switch between them
like in a real multi-windows editor.
- DN was probably the first OFM implementation that introduced keyboard
macrorecoder in OFMs. DN permits to record a
key sequence and replay it.
- History lists for directory visited, selection masks, etc.
Usefulness of the ability to have several sets of panels is proved by
attempts by other authors to add similar features to OFM (for example early
attempts to introduce 4 panels in the PIE Commander by Valentin Chernyak)
and experience with Windows-style file managers where multiple windows
are a standard feature.
As I already mentioned DN introduced many other innovations. Among them:
- The first (although not the best, see FAR below) correct implementation
of the information windows concept. Information windows in DN is a three
line entity with a current file as the first line, the number of selected
files is the second and number of files in the directory in the third
line
| Midnight Commander has the movable panel delimeter feature.
You can even select whether you want to divide screen area to panels
horizontally or vertically. |
- Movable panel delimiter can make the panels asymmetric so that one
can view descriptions and additional columns on the single panel.
- Custom video modes (30-line panel view implementation).
- Drag and drop implementation for groups of files and single files
(from information window) !
- Compare directories operation (permits comparing contents);
- Collapsible tree views (although I did not find the key to return
to regular tree view);
| The directory tree expand/collapse happens automatically
in the dynamic tree view of Midnight Commander. In the static tree
view you can use F2 (rescan) and F3 (forget). Note also that Midnight
Commander creates tree view on the fly so there is absolutely no
delays. |
- Directory tree has expand/collapse options:
- + : Expands/reads the tree starting at the current directory
for one subdirectory level
- - : Collapse the subdirectory tree below the current directory.
- * : Expands/reads all subdirectories starting at the current
directory.
- Advanced file search. It is possible to search files using a list
of selection masks (e.g. *.bak; *.$$$; *.tmp ), by text string, by date,
size and attributes. File Find in DN can work in background.
| In Midnight Commander you can express "*.txt; *.bat; *.inf;
*.doc" as "*.(doc|bat|inf|doc)". |
- Rudimental selection mask language (several masks can be entered
using semicolon as a delimiter, ">" serves as inversion symbol. Although
regular expressions are better way to go method of combining them used
in DN deserves attention. for example it is possible to specify
*.c; *.h directory in the selection menu. In PC world is is easier
than *.[c h]. More complex example is much difficult to convert to a
regular expression (*.txt; *.bat; *.inf; *.doc) and they are more natural
to construct.
- Operations with floppy images;
- Additional operations on selection lists and use of multiple selections
lists
- The ability to edit commands history;
- New keys for selection of all files irregarding current selection
mask, selecting all files with extension equal to the extension of the
file under cursor, etc.
Despite a lot of enhancements semantically DN is very compatible with
OFM doctrine. All operations that I tested were implemented semantically
correct although many of them used different (e.i. non-standard) hot keys.
Neither Alt-<letter> not Crtl-Alt <letter> quick search works and I have
an impression(may be wrong - I use only a demo version) that this important
part of OFM paradigm was not implemented at all.
Sometimes (like in case of switching from quick view windows to full
windows view) no key was available at all and the operation need to be performed
by the mouse. That is a deviation from the OFM doctrine that stress availability
of all (or most) operations via hot keys. For other operation hot keys were
different, so the major problem is that keyboard remapping is not supported.
The current version of DN supports archive VFS, but does not support
DOS 7 long file names and FTP VFS. No 32 bit version of DN exists
yet. I strongly recommend to make a GUI-based version as well.
MC line -- power to UNIX
| Almost all the unix OFMs have source available. Midnight
Commander is no way special in this respect. |
MC is the part of GNU project. It is the only OFM implementation known
to the author that have source available. It was originally developed
for Linux in Mexico by
Miguel de
Icaza. Interestingly enough the initial version (released
in late 1994) was called MouseLess Commander. Later name was changed
to Midnight Commander and people from other continents joined the original
developer. The current team includes Andrej Borsenkow, Radek Doulik, Ching
Hui, Jakub Jelinek, Janne Kukonlehto, Fred Leeflang, Mauricio Plaza, Dugan
Porter, Paul Sheer and Norbert Warmuth. Its major contribution was
FTP integration (this was really a milestone and now this feature has found
its way into FAR 1.50).
MC is not the first OFM-style manager for UNIX and not the only one.
At least a dozen of other implementations exist. But MC is definitely the
most popular one. The main contribution of MC is not to OFM doctrine as
such, but its role in the popularization of Linux and FreeBSD platforms
among PC users and understanding of important Unix concepts by the advanced
PC users community and developers. As it is included in all major Linux
and FreeBSD distributions it proved to be an important cross-fertilization
device for DOS-related skills to UNIX-related skills in file manipulation.
UNIX is a much better platform for some OFM-style VFS. For example briefcase
VFS can be implemented via links. But the most important is that MC makes
PC user instantly productive in Linux or FreeBSD and thus serves as an important
tool for the popularization of UNIX (the second, largely overlooked tool
is THE editor that provides for UNIX users with mainly PC background convenient
escape from Vi/Emacs mentality ;-).
MC also influenced several PC implementations of OFMs started in late
nineties including JC and FAR. MC implementation on Win95 platform currently
is not very impressive. MC main achievement is to bring OFMs to UNIX, not
vice-versa. But it does bring several UNIX ideas back to DOS/Windows. I
still have pretty rudimentary understanding of MC, but other that FTP VFM
I can mention the following innovations:
- Directory favorite lists. The idea is borrowed from WEB browsers
and fit naturally OFM paradigm. The user can add current directory to
the directory favorites.
- Regular expressions in selection masks.
- Command completion.
| In Midnight Commander a little of scripting language functionality
can be achieved via the MC_CONTROL_FILE feature. |
I beleave that TCL is in best position to integrate TCL into OFM implementation
and that would be yet another important contribution to the OFM paradigm.
Although still in beta
FAR 1.50b is a very impressive OFM 32 bit implementation. It was definitely
influenced by VC, DN and MC. At the same tile is it very clean implementation
with its own "face" and an excellent compatibility with OFM doctrine. Currently
it can be considered as a leader among the 32-bit classic OFM implementations.
FAR v. 1.50b currently has the best score on my "The Orthodoxness Test".
It also has probably the best archive virtual file system implementation,
as Eugene Roshal is the author of RAR - a leading achiver. FAR supports
the quick view feature (important part of OFM paradigm). FTP support
is very impressive and now becomes an standard by which the other OFM implementations
will be judged.
Far is compatible with requirements of considerable part of the Orthodoxness
test(parts 1,2 and 3). for example it is the second OFM (after DN) that
implements history of visited folders, viewed and edited files, etc.
Among advanced features that FAR support are:
- Panel, directory and selection histories.
- Ability to work with UNIX-style regular expressions in selections,
for example [c-f,t]*a.?xt.
- Supports of keyboard macros (several enhancements in FAR, for example
using Del key instead of F8 for deleting files, were implemented using
keyboard macros; see Add-ons\Macros directory for details).
- Ability to execute a command for selected files.
- Customizable file highlighting scheme;
- Ability to insert the list of selected files into the command line.
That operation that VC perform with a single keystroke (Ctrl-I) FAR
can do it using Windows clipboard and standard Windows key combinations:
Ctrl-Ins to copy selected files (or command line, if it is not empty)
to clipboard. Ctrl-Shift-Ins always copies selected files to clipboard,regardless
command line state. Shift-Ins to paste clipboard contents to command
line. Such behavior is probably more flexible, because allows to insert
selected file names to any other program, which can work with clipboard,
but VC Ctrl-I capture the most frequently use case. Jury is still out
about which implementation is better.
| Midnight Commander has had the case conversion feature since
1995. |
- Case conversion for files (this is a very nice feature; actually
it was first implemented in FC)
- Selection enhancements
- Shift-Gray+/Shift-Gray- for selecting deselecting all files
regardless of current selection (was first implemented in DN, but
is "forgotten" in v.150; FAR consistently has this feature since
v. 1.20)
- Option of changing case to the lowercase of all files in copy
and move operations
- Ctrl-Gray+/- can be used to select files with same extension
as current (the same story)
- Alt-Gray+/- can select all files with same name as current (the
same story)
Althouth the feature list in FAR 1.50b is less impressive that in DN
(flat subtree VFS, briefcase VFS and filefind/filelist VSF are not supported)
it is the best 32-bit OFM implementation with text-based(classic) interface.
The most important contributions of v. 150b to the OFM paradigm are:
- Strong support of archive Virtual File System. Shift-F1 and Shift-F2
operation were introduced by DN, but FAR provide more consistent semantics.
For example if second panel is not a file panel (or if the second panel
is hidden) them FAR propose to create directory with the same name as
archive and extract achieve into this directory. This is IMHO the only
correct semantics for archive extraction. Self extracting archives
can be entered via Ctrl-PgUp !
- Integration of windows clipboard with built-in editor with the ability
to select text in command line windows and paste it in GUI-window.
- The best implementation of the information windows concept. Information
windows in Far is a three line entity. regular line in the second. FAR
use the panel bottom border as the third line of the information windows
(for displaying the number of files in the current directory) and upper
delimiter of the information line as the first line (for showing the
number of selected files). current file name is displayed in real case.
if length of the file in more then a length of the column in the listing
part of the panel them full name is displayed (or in case the name is
too long just tail from the last symbol displayed in the information
panel).
- Ability to save command history;
- Useful treatment of Ctrl-0..Ctrl-9 key sequences as a selectors
of 10 predefined panel templates (panel templates are customizable).
DN-style capability of moving the panel border so that panels became
asymmetrical is missing, but selector can be generalized as for position
of the border between panels too.
FTP VFS is a really extremely important feature and although it is not
the first implementation (the first was in MC) it is a major achievement.
Another enhancement is the method of selecting of the sort order by clicking
on the special letter in upper left corner of each panel.
After using FAR for a week or so I now understand it would be nice if
you can click on current file in the panel information line (last line in
the panel) OFM should select all files with this extension and place extension
in the select history list. Also regretful that 30-line mode is not
supported.
FAR 1.50b deviates from OFM paradigm is several minor ways. It
merged 3 extension tables (execute (Enter), view(F3) and Edit(F4) into one
and does not provide a way to migrate other OFM association tables into
the new format.
The idea of merging the association tables, so that one can see all three
associations at once (as well as of using Windows association table as a
default association) deserve attention, although the loss of flexibility
of having separate tables in a simple text format probably outweigh all
benefits. For example the ability to include the same subtables into both
extension menu and the user menu is lost.
The main point is that in OFM there should be a possibility of dynamic
association when user is presented with several choices. The classic example
when one can benefit from that feature is the use of extension .DOC.
It is so overused (text, RTF, MS Word native format contents are common),
that the correct choice of viewer is often impossible without examining
the first bytes of the file.
Click on name, size and date does NOT change the sort order, etc. as
OFM paradigm requires although FAR provides a symbol in the upper left corner
of each panel clicking on which provide user with the menu, that contains
most of the options. But this solution is less elegant that using column
headers as buttons.
Midnight Commander has alpha/beta level support for three
different GUIs: tk, xview and gnome. The tk support might even work
on Windows 95 (giving Windows 95 GUI to Midnight Commander).
GUI editions of Midnight Commander support drag-n-drop and context
menus (right mouse button). |
GUI present a lot of difficulties for the implementing OFM as creation
of decent interface and implementation of drag and drop are very time consuming.
I know much less about GUI-based implementations that about text-based implementation,
so this part of the article is still very raw.
Windows Commander
by Christian Ghisler is probably the most well known example GOFM. Windows
Commander 1.0 was released in the autumn of 1993. I have tested the version
3.03 that was released in July 1997. I personally consider it to be the
best GUI-based OFM implementation and prefer it to the Norton
Commander for Windows (NCW). Currently is can be viewed as a reference
GOFM implementation and it is much better deal for long time OFM users than
NCW (see below).
The next version of WinCmd (v. 3.5, currently in beta, will be
released in the second quarter of 1998) will have three major enhancements
(ftp VFS; the directory hotlist similar to favorites in a WWW browser; history
list similar to a WWW browser; start menu with sub-menus and shortcut keys).
Other features in the v. 3.5 includes: The direct access to Network Neighborhood
without mapping a drive; ability to unpack Microsoft CAB files and CAB self
extracting archives; button bar will be configurable; the ability to put
Wincmd to the system tray.
The current version (3.03) fairy well conforms to the level 1 of
"The Orthodoxness Test"(suppl.1). It also well conforms to the part 1 of
the level 2 of the test (archive VFS implementation test).
- Archive VFS;
- Long file names support;
- Mouse click on name, size and time headers in the panel should change
the sorting order to this attribute. Second mouse click on the same
button reverses the sorting order;
- History for selection masks;
- Ctrl-Num- / Ctrl-Num+ for selecting and deselecting all files
irregarding the mask;
- There is a possibility to map a network drive;
- The possibility to create Windows associations.
- Drag and drop operations for directories and files (as in classical
Windows-style file managers);
- The drive button bar and the button bar for frequent operations
(also classical Windows-style managers feature);
- The possibility to create a favorite by dragging the directory to
the toolbar (very useful and important enhancement that was implemented
before Netscape and Explorer solutions to a similar problem in WEB-browsers
context);
- When viewing the archive with the second panel in quick view mode
WinCmd lists file README if it is available or binary representation
if not (probably the listing of archive content would be more useful;
also the name of the file, or better list of files, should be
made customizable);
- The possibility to hide the same files during the directory comparison
(a very useful extension);
- Shift-Enter is used to execute "command /c <command>", so that DOS
window will not be closed;
- Position of the windows on the screen can be saved;
- Creation of shortcuts for the selected files.
Ctrl-U does not switch panels is one panel contains the tree view.
Restore selection operation is absent. Directory favorites and folders in
the start menu will be implemented in the v.3.5. Multiple file associations
are supported in a limited way: Wincmd uses the Win95 mechanism
for associations. A right click or Shift-F10 opens the context menu, which
can be extended and in a limited way supports multiple extensions.
Information window does not show the current file. Minor modification
of this windows can increase the score and usability (I recommend to to
change the information window to three line format used in FAR: the first
line is info about group of selected files, if any, second is about the
current file (it's name in actual case) and the third one - information
about the current directory.
One minor, but important for long-time OFM users point: compare directories
in not considered a command. It is considered a marking operation. Semantically
this is correct, but classical key sequence F9-C-C for comparing the directories
does not work. A key remapping mechanism is badly needed.
As I already pointed out NCW was essentially reanimation of discontinued
product that was made by Symantec under pressers from European users (German
users were especially vocal in this respect). The first impression after
installing NCW was mixed. It is definitely the most expensive OFM implementation
on the market ($120) and it is not directly available in USA (one needs
to buy it from Great Britain) and it is not supported in By USA headquarters.
But the functionality provided is very modest and from that point of view
it seems to be overpriced. It looks like more or less diligent reproduction
of NC5 in GUI -- more like a student project that advancement of the state
of the art. It can be used as a OFM, but probably be recommended only for
low level users. For the power and long-time OFM users Windows Commander
3.5 is preferable (and much cheaper).
The main enhancement is a built-in scheduler. I like it very much
(BTW it can plays chime every hour). It proved to be a really useful
addition, that integrates well with OFM functionality. But file manipulation
capabilities and support of command line are underpowered.
Despite the price NCW does not supply its own viewers and bundles basic
Quick View Plus viewers. So to view HTML one need to get full version of
Quick View Plus. If you try to use Navigator as a HTML viewer NCW try to
display additional non existent empty file after loading the original one
(looks like extra keystroke is transmitted to NCW).
Oleg Volochtchuck is listed in the development team. But recent rumors
suggest that he moved to the USA and now works on other projects.
- NCW understand long file names and is NTFS compatible;
- Archive VFS support;
- Select file filter at last has history. No history or favorite list
exists for directories;
- NCW can mount/unmount network drive.
-
- Built-in scheduler. It's nice addition for Windows 95 or NT, but
cron probably can be used instead.
- Compare operation for text files. That's really convenient addition
to OFM set of file operations that was previously implemented via user
menu. Advantage of integration are minimal - decent external program
can do the job, but it's nice to have.
- In addition to file filters via "Gray +,-,*" it has operation filters
that permit more flexible copying/moving of files. Advantages are connected
with the ability to copy subtree using selection mask - a feature currently
available only in DN via virtual subtree file system
- Split panel option permit viewing two files simultaneously. The
value is uncertain
- Find option contains the possibility of finding files using size
and date filters
- Shift-F2 provide NC Network neighborhood panel.
Ctrl-E, Ctrl-R and Ctrl-O do not work at all. Generally command line
support leave much to be desired. Renaming of directories is clumsy.
JC Commander made its first official English-language release in early
1996 - the same year as FAR and IMHO was influenced by MC and DN. V2.0 released
in early 1996 supported long file names under WIN95. The current version
is 2.2 and exists for OS/2, Dos and Windows95. It can be considered
as advanced sectant implementation.
Among advanced features supported by JC:
- Macrorecoder (JC permits to record a key sequence and replay it
once or multiple times)
- Archive VFS ( ZIP, ARJ, ZOO, LHA and LZH are supported)
- The long file names support in Win95, OS/2 and network drives.
- Directory favorite list (in limited fashion - I see no ability to
add the current directory to favorites)
- Unix style regular expression in selections e.g. *.[c-h].
- Commands can be applied to the list of selected files
- Attrib command works with date and time
- Customizable file highlighting scheme
- Binary directory difference operation (line in DN)
- Rudimental selection mask language similar to DN but with support
of regular expressions and inversion symbol. For example it is possible
to specify *.c; *.h directory in the selection menu.
In PC world is is easier than *.[c h]. More complex example is much
difficult to convert to a regular expression (*.txt;*.bat; *.inf;*.doc)
and they are more natural to construct. Interestingly enough
this enhancements were probably dictated by deviations from the orthodoxy
in treating selections (see below).
- Multiple file edit is possible with the integrated file editor.
Functions to copy text from one file to another are implemented. The
integrated fileviewer has syntax highlighting option (but not for HTML).
- The macrofunctions of JetCommander can be used in editor too.
Although a strong product, the value of JC is greatly undermined
by serious deviations from the orthodox doctrine in more ways that other
implementations discussed above. It does not pass Part 1 of the orthodoxness
test and can be classified as a sectant implementation.
A lot of keystrokes that are engraved in motor skills of long time OFM
users behave differently. For example, such a basic for OFM users keystroke
as Alt-F1 does not provide list of drives for left panel. Alt-F10
does not show Tree search panel, but just changes the second panel to the
tree view, Alt-U does not exchange panels.
Selections are not persistent. That mean that selection of *.exe and
then *.com will not lead to selection of files with extensions EXE and .COM.
Even worse the deselection key (Gray "-") does not accept any regular expression
at all.
Although the level of implementation is pretty impressive, I do not recommend
JC to long time OFM users, unless the author implements key assignment scheme
in the Setup in future versions.
| |
NC |
VC |
DN |
FAR |
WinCmd |
NC for Win95 |
MC |
| OFM Type |
Classic |
Classic |
Classic |
Classic |
GUI |
GUI |
Classic/GUI |
| The current version |
5.0 |
5.0 alpha |
1.5 |
1.5 beta |
3.03 |
1.0 |
4.1.21 |
| OS supported |
DOS |
DOS, OS/2, Win 95 |
DOS |
OS/2, Win95, NT |
WIN3.1, OS/2, Win95, NT |
Win95/NT |
Unix, Win95/NT, OS/2 |
| Size of compressed distribution |
1.4M |
100K |
1M |
500K |
1M |
??? |
1M |
| Software type |
Commercial |
Shareware |
Shareware |
Shareware |
Shareware |
Commercial |
GNU General Public License |
| Price |
$90 |
$20 |
$20/$35 |
$20 |
$36 |
$120 |
Free |
|
The Orthodoxness Test
|
| Part 1 |
100% |
80% |
90%* |
100% |
90% |
70% |
63% |
| Part 2 |
40% |
25% |
75% |
50% |
50% |
25% |
85% |
| Part 3 |
0% |
|
|
|
|
|
32% |
| Part 4 |
0% |
|
|
|
|
|
12% |
* Feature set is 100%, but key compatibility is 90%
The author start working with NC 2.0 in late 1989 and used all major
orthodox implementations since including NC 3.0, 4.0, 5.0, VC 4.0,
FC, VC5.0beta, FAR 1.50b and several other OFMs. My main OFM for the last
4 years was VC, but now I use FAR more often. I also have some experience
with GUI-based OFMs including Windows Commander and Norton Commander
for Windows 95.
Author would appreciate comments of the technical issues raised in the
paper. Please sent you comments to
nnb@bellatlantic.net. The latest copy of the paper is available
from the www.softpanorama.org.
The author would like to thank Finn Ekberg Christiansen (the maintainer
of the
Unofficial Volkov Commander Page) for his feedback on the v.1.01 of
the article and to Eugene Roshal, who point out a lot of errors and inconsistencies
in the v.1.02 and 1.03 of the paper.
The Orthodoxness Test is a five stage test, results of which are depicted
in 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 NC compatibility), score 46% out
on the part 2 (Virtual File Systems) and zeroes on the part three and four
of the test (see below).
The score is determined separately for each section. For example if section
weight is 10% and a given OFM comply with 80% of subsections of this section,
then the total score for the section will be 10%*80%=8%. If weights
of subsections are not given then equal weight of each subsection is assumed
(i.e. the weight of each subsection is equal to 100/number_of_subsections).
Important notes:
- The Orthodoxness Test does not require key assignments correspond
to NC as long as there is a possibility to change them.
- The structure of main menu is not defined in the test.
| The following comments refer to whether a particular feature
is supported by Midnight Commander 4.1.21 or not. |
- Compatibility with NC 5.0 semantics in basic key movement (the key
assignments listed below can different, if remapping capability exists)
on the left to right panels including, but not limited to the following
(10% with equal weight of each subsection) :
- The Tab key should change active panel to passive and passive
to active;
| Not supported, "ctrl-\" invokes directory hotlist.
|
- "Ctrl-\" key should move to the root directory;
| Supported with different key assignment: turn on the lynx-like
motion feature and use left and right arrows. |
- Ctrl-PgDn and Ctrl-PgUp move to the upper(current) and
lower level(parent i.e. cd ..) directories;
- "Ctrl-R" - should reread the directory;
- "Ctrl-U" - should swap panels;
| Supported by Win95/NT and OS/2 ports with different key assignment
(F11 and F12). |
- Alt-F1 and Alt-F2 should produce list of disks for left and
right panels;
- Insert should select the file;
| Supported with different key assignment (+ and \), detecting
whether a key is the gray one or the white one is difficult on unix.
|
- Gray+ and Gray- should select and deselect file using a regular
expression or mask;
| Supported with different key assignment (ctrl-x q).
|
- Crtl-Q should switch to quick view;
- Ctrl-O should hide panels (for classical OFM only, n/a to GUI-based);
| Supported with different key assignment (ctrl-x i).
|
- Ctrl-L should switch to the information panel.
- Compatibility of F1..F8 operations with NC 3.0 semantics:
- F2 - user menu or equivalent (start menu)
- F3 - should envoke built-in viewer or default viewer (GOFM);
- F4 - should envoke built-in editor or default editor (GOFM);
| Partial support: whether internal or external viewer or editor
is used is configurable from the options dialog. |
- Alt-F3 and Alt-F4 should select alternative viewer and editor.
there should be a possibility to switch Alt-F3/F3 Alt-F4/F4 assignment
so that alternative viewer/editor would be selection of F3/f4;
- F8 operation should perform deletion of subtrees is it is applied
to the directory with non-empty subdirectories;
| Partial support, destination directory cannot be selected
from tree view. |
- F5/F6 should copy/move subtrees if applied to directories. Movement
of directories within the same logical drive does not result in
copy operation; Both copy and should provide the possibility to
select the target from tree view panel (F10).
| Partial support, the chmod and chown features can be used
to change attributes, timestamps cannot be change, operation cannot
be applied to a subtree. |
- File attribute command should permit change single file or group
of files attributed and or timestamps for file, selected group of
files or subtree (if applied to the directory);
- F8 should delete files of groups of files or directory subtree
if applied to the directory.
- Tree view compatibility:
| Not supported due to a bug, worked in the past. |
- Ability to copy files from a panel with regular representation
to arbitrary directory in the passive panel tree.
- Ability to use F10 key from the copy menu (F5) and move menu
(F6) to select target on the tree representation.
- Movement of the cursor on the panel with tree representation
should not lead to change of the directory on the current panel.
- Quick view tree navigation: navigating the tree in one panel
will make current(highlighted) directory current on the second(passive)
panel.
- Selection/deselection compatibility:
| Supported with different key assignment (+ and \), detecting
whether a key is the gray one or the white one is difficult on unix.
|
- Gray + and Gray - as a file selection keys;
- Selection and deselection operations are persistent (second
selection operation add to existing selection);
| Supported with a different key assignment (Meta-*).
|
- Gray "*" as Invert Selection operation;
- Restore Selection operation (no standard key exist). It should
restore highlighting of files selected for last copying
operation.
- Compare directories operation selects newer files on each panel.
- Tree search panel compatibility:
- Alt-F10 or other hot key should produce tree view of the current
panel with the ability to select new current directory on this representation.
| Supported, Midnight Commander never scans more than one directory
at a time. |
- Pressing Alt-F10 should NOT produce rescanning of the disk without
reason.
- Quick search option should be available in this panel.
| Supported with a different key assignment (ctrl-s).
|
- Ctrl-Enter should jump to the next directory with the
same name of prefix
- Quick view compatibility:
- For text file content should be should in text mode
- For archive content of the archive should be should
- For other file binary view should be shown
- Pressing F3 or alt-F3 in quick view should lead to regular viewer
selection
- Quick search compatibility:
| Supported with different syntax: press "ctrl-s" first, then
type the search string. Under some circumstances "ctrl-s" can be
omitted. |
- Alt-letter (or Ctrl-Alt for GUI-based versions) quick
search option should be available for both regular and tree representations
of the panel.
| Supported with a different key assignment (ctrl-s).
|
- Ctrl-Enter during quick search should move to the next item
with given initial letters.
- Shell execution compatibility (the ability to specify
the shell and its parameters required for GUI-based implementations)
- The ability to view results of shell command execution (hide
panels option)
- Cursor movement keys work like in DOS shell when panels are
hidden
| Supported with a different key assignment: history is Meta-H,
previous command is Meta-P, next command is Meta-N. |
- History of commands should be available (Alt-F8) and selection
of prev. and next command from the history should be possible with
hotkeys (Ctrl-E, Ctrl-X or Alt-Ctrl-E, Alt-Ctrl-X in GOFMs)
- Sorting directories compatibility:
- The ability to view files(but not directories) sorted by name,
time, size, and unsorted order.
- The ability to reverse the sorting order
- Ctrl-F3...Ctrl-F8 for "NETSU" (resorting by Name, Extension,
Time, Size, Unsorted).
- . 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 hotkey and label for each script
- Multiple commands can be written without need to create a separate
batch file
- . Association management compatibility:
- The ability to specify one or several associations for the same
extension
| Supported by the GUI editions. |
- In case several associations specified for a particular extension
there should be a possibility to select a suitable one from the
menu or run the first "no questions asked".
Support of two VFS - archive and FTP is now required for leading
OFMs. Currently only FAR and MC support both.
- Archive virtual file system(25%):
| Only extract supported, compress is not supported.
|
- 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. Shift-F1..Shift-F2
operations should probably be reserved for extraction and compression
correspondingly( 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.
| Partial support: edit, compress, delete and rename are not
supported. |
- 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.
| Partial support: subdirectories inside a ARJ archive are
not properly supported due to limitations in UNARJ. A fix for this
is available from Eric Lammerts. |
- Support of at least ZIP, ARJ, RAR and LHA;
- 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);
- FTP virtual file system (25%).
- 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.
- Operations on files, selected files and directories:
- copy (with option of changing of case of the files)
- move
- delete
- MKDIR
- Option of changing case to the lowercase of all files in
copy and move operations
- rename (including changing of the case of files
- compare directories
| Supported via Find File - Panelize. |
- Flat tree VFS -- the ability to view all files in
a given directory and its subdirectories as a plain list (like in Xtree)
. This is a very important feature for system administration
(20%).
- Ability to view the directory and all its subdirectory as a
single virtual directory
- Ability to perform basic operation that use this virtual directory
as a source
- Ability to use filters to view files only with given extensions
| Standard unix feature (symbolic links). |
- Briefcase VFS. All operations that use this panel as a
source and as a target should be allowed (15%).
- Ability to copy directories and files to the briefcase drive;
- Ability to use a briefcase drive as a source for all relevant
file and selection based operations;
- Ability to discard the briefcase drive.
| Supported via Find File - Panelize and External Panelize.
|
- FindFile/List VFS -- the ability to view file search
results as a regular panel with all file operations available as well
as the capability of multiple searches using a text-file list (as in
DN). All operations that use this panel as a source should be allowed
(15%)
To get to this section a feature need to be implemented in at least one
major OFM implementation and prove its usefulness. Features for which no
reference implementation exists are listed in section 4 of the text.
- Navigation enhancements (favorites and history for visited directories):
10%
- The history of visited directories, so that the user can switch
from one to the other like in Netscape or other WEB browser (currently
implemented in MC, DN and FAR);
- The ability to add the current directory to the favorites list;
- The ability to edit the favorite's list;
- The ability to create named groups of favorites;
- The ability to jump back to prev. visited directory with a single
hot-key.
- The ability to move favorites to the toolbar (WinCmd)
or unused part of main menu.
- Selection extensions:
- Special keys (for example "Ctrl-Gray+" and "Ctrl-Gray-") for
selecting deselecting all files regardless of current selection;
- Click on current file in the panel information line(bottom line
of the panel) should input file extension to the selection list
and select all files with that extension in the panel (mentioned
in VC documentation).
- Hotkey for selection of all files with extension equal to the
extension of the current file (can be also performed by clicking
on the file in the information window of the the current panel,
especially in GOFMs) .
- UNIX-style regular expressions support in selections (expression
*a*.* should select files like my_bak.tmp and my_bat.txt, not all
files) (MC, FAR).
| Partial support: something similar can be achieved by separating
the alternatives with the |-sign. |
- Ability to list several masks, separated by semicolon and use
negation symbol with mask (JC).
- Command line extensions:
| Supported: all the input widgets have persistent history.
|
- Persistent command history (possibly via an option to save command
history) (FAR 1.50b);
- Ability to edit the command history (DN);
| Not supported, Meta-Tab invokes a different kind of completion.
|
- Command completion feature: Ctrl-End at the end of the command
line complete the command starting with these symbols from the command
history. It should be possible to press Ctrl-enter several times
to find the nest command in the history that has the same prefix;
| Supported with a different key assignment (ctrl-s p and ctrl-x
ctrl-p). |
- The operation for inserting current path from left and right
panels (Ctrl-[ and Ctrl-]);
- Esc is to equivalent Ctrl-O and hide both panel, so that the
DOS screen is visible (VC);
| Supported (ctrl-x t and ctrl-x ctrl-t). |
- The operation for inserting selected files into command line(Ctrl-I)
or equivalent (like if FAR).
- Multiple commands with semicolon as a separator
- ability to invoke different command shell or command shell with
predefined parameters (for example COMMAND /E:2048)
- Commands enhancements:
| Supported: all the input widgets have persistent history.
|
- Support of persistent history for copy, move and create directory
operations (FAR 1.50b)
- Keyboard macros (FAR, JC). Several typical file operations in
OFM can be generalized as macros. The most typical example is "synchronize
directories" operation which is essentially a sequence of compare
directories and copy files operations. Another one is operation
of creating a subdirectory in the current directory and then copying
selected files to this directory. It's not possible to perform this
frequent operation with one keystroke in most OFMs known to the
author(NC5 does have a synchronize operation as a separate command).
One need to use key macro utility like KM by E.Yutsis to achieve
this. It would be nice to have that mechanism built-in.
| Not supported, not needed on unix. |
- Options menu should have an item that gives possibility to specify
option to command.com required to run a command (for example
/e:2048). Currently implemented in VC
- File attribute command should have an additional functionality
to change filestamps of one or selected files and work for the current
directory (in this case the whole tree should be affected like in
Attrib *.* /s ), file or selected files.
- Ability to execute arbitrary command or script for selected
files (FAR, DN)
- Find file (Alt-F7) operation should permit finding file using
date, time and size as selectors (NCW)
| Supported via F6 (RenMov). |
- Case conversion command for files via special menu (implemented
in FC, FAR, DN and VC)
- Option of changing case to the lowercase of all files in copy
and move operations (FAR)
- Panel view enhancements:
| Supported by the GUI editions. |
- Mouse click on name, size and time headers in the panel should
change the sorting order to this attribute. Second mouse click on
the same button reverses the sorting order (Windows Commander 3.03;
NCW 1.0);
- Additional video modes (at least support of 30-line screen
mode for COFMs line in DN) or ability to change font (GOFM only;
like in WinCmd)
| Supported with different implementation: the input box for
panel template has persistent history. |
- Uniform treatment Ctrl-0..Ctrl-9 key sequences as a selectors
of 10 predefined panel templates (with the ability to customize
panels via special extension file) (FAR 1.50b)
- Descript.ion file processing (4DOS compatibility feature)
(DN, FAR, VC);
| Not supported, use Alt-9 instead. |
- Alt key activated top menu (you need to press F9 in other OFMs,
but it is not convenient as one can press the Alt key without removing
hands from the keys) (VC);
| Not supported, a fix for this exists but hasn't been applied
to the main source yet. |
- Usage of the panel bottom border as the second line of the information
windows (for displaying the number of files in the current directory)
and upper delimiter of the information line for showing the number
of selected files (FAR 1.50b).
- Compact UNIX like timestamp column (time only for the recent
files) (currently implemented in Win95 version of MC)
- Multiple panel windows (DN). It is a very nice feature, but
does the benefits outweigh the costs is unclear. Directory favorite
list can provide 50% of the functionality with much less implementation
cost.
- Tree view panel enhancements:
| Supported: the directory tree expand/collapse happens automatically
in the dynamic tree view of Midnight Commander. In the static tree
view you can use F2 (rescan) and F3 (forget). |
- Directory tree should has expand/collapse options:
- + : Expands/reads the tree starting at the current directory
for one subdirectory level
- - : Collapse the subdirectory tree below the current
directory.
- * : Expands/reads all subdirectories starting at the
current directory.
- Presence of "Quick View" Tree operation when moving in the tree
representation of the left panel change current directory on the
right panel.
- Add to archive operation on the directory(Shift-F1) should create
archive of that directory and optionally delete the directory and
all files in it.
- Complete archive extraction to the directory operation(Shift-F2)
on the archive should create directory with the name of the archive
by default and unarchive all files into this directory.
- Ability to change attributes of directories.
| Supported in the dynamic tree view: left arrow moves to the
parent, right arrow moves to the child and up and down arrows move
between sibling directories. |
- Better navigation on the tree view.
- Ability to return to the immediate parent of the directory(for
example by Ctrl-. or backspace);
- Ability to jump from one directory to the directory with
the same name but on a different branch(Ctrl-Enter);
- Gray+ move to the next directory on the same level,
Gray- to the next directory on the prev. level (UFO).
- For tree view in the information windows directory level
should be visible (UFO, but not it displays the directory level
in the upper line instead of the panel information window);
- Built-in viewer enhancements:
| Not supported, would conflict with the existing hotkeys.
|
- Entering any letter or digit in viewer should activate search
for this letter (FAR) (25%)
- The ability to switch from the built-in viewer to the panels
view and back (DN, FAR, any Windows OFM); Ability to jump to the
selected directory from the viewer (25%)
- Ability to select string and search the selected string without
entering it (25%);
- Ability to switch to the panel view of the file path which is
highlighted in viewer (25%).
| Supported via Options - Display bits. |
- Symbol filter (ASCII only/Full set as in UFO)
- Built-in editor enhancements:
- Search for any selected string.
- The ability to switch from the built-in editor to the panels
view and back (DN, FAR, any GOFM).
- The ability to open several editor windows and switch between
them (DN, any GORM).
- An option "Open file under cursor" and "Go to the directory
under cursor" option in built-in editor.
- User menu and extension macro substitution symbol extensions:
- The include files capability in both user menu and extensions
associations (VC)
| Supported with different variable names (see table).
|
| Not supported, Learn Keys is a different kind of feature.
|
- A separate from the macrorecoder key assignment mechanism similar
to QEdit (via Setup) of MultiEdit (via run-time menu) editors. That
can lessen the problem of incompatible key assignment for the same
functions in different OFMs.
- Context dependent dynamic associations (it is easy to
distinguish the type of the file by reading the first sector or block
of the file. For example classic problem of guessing content of the
document with extension .DOC (is it in the ASCII, RTF of
MS Word format) can be solved this way.
- Additional capabilities of working with favorites (like
in Netscape)
- Deletion of duplicates and automatic sorting of visited
directories list by frequency (favorites lists).
| Supported with diffenrent variable name (%s and %S).
|
- Implementation of @ not as a separate macro variable,
but as a modifier to any existing macro variable (for example @!.! with
the following semantics: it should have a value of current file if no
files are selected and value of the list of selected files otherwise.
- Mkdir button should be dimmed if the active panel view
archive content.
| Not supported, on unix F11 is the same as Shift+F1.
|
- The bottom menu should show F1..F12, nor F1-F10 (IMHO
now to find an XT keyboard is rather difficult :-).
-
- . The title tag in HTML documents should be considered
as a description and viewed in the appropriate field on the panel.
- . Integration of HTML-related navigation (see discussion
above)
| Not supported, a little of scripting language functionality
can be achieved via the MC_CONTROL_FILE feature. |
- . Integration of TCL or REXX as a macro language
- . Integration of a simple HTML viewer with ability to
jump from hyperlink to the panel view of the appropriate directory.
Midnight Commander has a lot of features not listed above
and probably not present in any other OFM. These include:
- External file systems: an easy way to add a new VFS (read-only).
- External panelize: an extremely powerful way to select which
files are shown in a directory panel.
- Background copy and move.
- Two tree view mode: static (normal) and dynamic (automatic
expand/collapse)
- User menu/extension file macros work on the command line,
too. This makes it easy to execute same command for multiple
sets of files (this makes command lines shorter, too).
- Filtered view.
- All the input widgets have persistent history.
- Conditional user menu entries.
- Input line completion.
- Concurrent shell.
|
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, 1997. Last modified:
August 15, 2009