Softpanorama
(slightly skeptical) Open Source Software Educational Society

May the source be with you, but remember the KISS principle ;-)

Google   


Softpanorama University Library

The Orthodox File Manager (OFM) Paradigm

by Dr Nikolai Bezroukov


 

 Prev Contents  Next

FAR -- the first OFM
that successfully implemented a plug-in concept

The initial versions of FAR were written by Eugene Roshal in 1997 and from the very beginning it was clear that we have a new leader in classic OFMs for Windows. Despite huge success of Windows 95 at the time FAR is one of the few Win32 API-based implementations of classic OFMs for Windows.

Most of FAR features were already available in version 1.5 that was released in late 1997, but in version 1.70 they are much better integrated, debugged and polished. This is a shareware implementation and IMHO it's definitely worth $25 registration fee to support this excellent implementation. 

It was actively developed approximately until 2001 (v. 1.65), but at this point the author probably decided that this distracts him from the RAR -- his main project and moved development to the selected group of contributors.  

Like in case of many other OFMs, it's difficult to survive when the principal developer left, but FAR managed to make it. Understandably the development pace slowed down: the development of version 1.70 is already in its third year  (there were five beta versions), The production version remains 1.65, the last developed by  Eugene Roshal.  But actually the quality of V. 1.70 beta 5 is very high and it can be used as a production version. For all the time of my exposure to the version I did not notice any bugs. 

Far was definitely influenced by VC, DN and MC. At the same time is it a very clean and  well thought implementation with its own "face" and an excellent compatibility with OFM doctrine. It has an excellent  implementation of FTP VFS and, especially, archive VFS ( Eugene Roshal is also the author of RAR -- one of the best compression programs on the market).

Some new useful keys were added to the standard OFM keymap. For example the key to insert  file name with a full path (Ctrl-F). There is macro support for both file manager and built-in editor and a plug-in that provides interface for macro construction and  editing.

Panelize command and temp VFS support (Like in NC5 temp VFS is most useful as a target of the panel command from search) are implemented and can be used (via macro) to provide an XTree VFS implementation (just search *.* everything in the subtree). But it might be better to implement XTree VFS directly binding it to Ctrl-D (may be somebody will write such a plug-in soon).   There is a (non-obvious) way to hide full path in temporary panel in order to use it for finding  duplicate and other purposes where full path is a disadvantage: when you browse Temporary panel, you can change its panel modes as usual: Alt-1, Alt-2 etc., and the first three modes display file names without path.

There is a way to make panels asymmetrical in width (Ctrl-Left or Ctrl-Right).

FAR has one of the best history implementation including history of searches, selections, visited folders and viewed/edited files. This was done cleanly and uniformly which is in general a trademark of FAR programming style. Again not only because of feature set, but also the quality of the implementation makes FAR a leader among the Win32 API based classic OFM implementations.

Despite being the leader in classic OFM implementations FAR is a relative newcomer and is one of  the youngest implementations discussed in this book. 

The greatest idea implemented in FAR is a concept of  a plug-in -- the concept similar to Netscape.  In this respect1 FAR is a unique OFM and for some time had no competitors. Several dozens plug-ins for FAR already exist (see links below)  Now other OFMs use this concept too (Total Commander, etc) 

The greatest idea implemented in FAR is a concept of  a plug-in -- the concept similar to Netscape.  In this respect FAR is a unique OFM and until recently has no competitors (since  2001 or v. 4.5) Total Commander supports plug-ins too and there is a possibility of using Total Commander plug-ins with FAR).

Several hundred plug-ins for FAR already exist (557 the last time I checked)  See an official list  of plug-ins for more information. This is a revolutionary feature that makes FAR a class of its own. As an example of how a simple plug-in can extend the functionality of FAR see, for example, External Filter for Editor Registry Browser by Michael Yutsis. ,  Colorer by Cail Lomecb and Search And Replace by Ivan Sintyurin. They are all  nice examples of complex plug-ins that substantially enhance the functionality of FAR. Here is an interesting list of recommended plug-ins from My FAR Plugins TOP 10

Name Author Description
Colorer Igor Russkih (aka Cail Lomecb) The Colorer makes the FAR's editor what it is.
Without the highlight syntax from the Colorer I would never use FAR as my only editor. See also Colorer-take5 library
Word Completion Igor Lyubimov Word completion works just the way I like it. It reduces the number of typos and increases productivity.
Far Navigator Vasily V. Moshninov Thanks to Vasily the best FTP client for Open VMS.
WinSCP Martin Přikryl SFTP and SCP client.
Search And Replace Ivan Sintyurin From my point of view the best implementation of regexp search and replace.
Macro View Konstantin Melnikov The FAR's macros would be nearly unusable without this plugin.
Block Processor Ondrej Brablc Yes, I rate my plugin so high. Thanks to it I removed the plugins jungle and replaced 10 other plugins.
Registry Browser Michael Yutsis Better then Regedit. What to say more?
PlugRinG viewer Vasily V. Moshninov Plugin for downloading plugins. Great idea.
Calculator Igor Russkih (aka Cail Lomecb) Handy calculator with many units conversions.

Built-in editor can work with Windows Clipboard and also supports plug-ins. See, for example, a very elegant "External Filter for Editor"  by Michael Yutsis. Among other popular editor plug-ins I would like to mention Colorer,  a plug-in that provides syntax coloring and another plug-in that provides regular expression based search and replace. Although FAR's internal editor is  somewhat weaker then in Midnight Commander, it is compensated by a wide range of plug-ins available.

One of useful features of FAR plug-in API is that a plug-in can have a command-line prefix and its own command line after it. It allows many things; for example, XML plug-in allows to go directly into a specified element in the specified URL, and you can do it from a user menu.

If you are a programmer, you can feel how good Eugene is by just exploring the reaction of Far on unusual combinations of keys: you will discover that FAR behave very intelligently even in very complex situations.

I am especially grateful for the improved implementation of plugins and creation of the community of contributors that write them. That's probably the main achievement of the developers of FAR 1.70. The fact that there are so many plug-ins for FAR is an achievement in itself. I hope that the current team will make it even better. But, of course they need time.  I just wish them luck !!!

Advanced features implemented

Among advanced features that FAR support are:

Suggestions

There are several suggestions that might help to make version 1.70 even more user friendly:

Level of compatibility

The current version of FAR has the best score in OFM1999 standard compatibility test.  It also has probably the best archive virtual file system implementation, as Eugene Roshal is the author of RAR - a leading archiver.  FAR has the best supports the quick view feature (important part of OFM paradigm) and Directory search panel. Generally  FTP support of advanced elements of the Orthodox standard was and is unmatched. From the very beginning till today it was and remains the leader among command-line OFM implementations for Windows.

History

??-Oct-2003 -- FAR 1.70 beta 5 release
17-Dec-2000 -- FAR 1.70 beta 2 release
26-Jun-2000 -- FAR 1.65 maintenance release
17-May-2000 -- FAR 1.64 maintenance release
24-May-2000 -- FAR 1.64 beta release
19-Oct-1999 -- FAR 1.63 maintenance release
19-Aug-1999 -- FAR 1.63 beta release
24-May-1999 -- FAR 1.62 maintenance release
27-Feb-1999 -- FAR 1.61 maintenance release
19-Oct-1998 -- FAR 1.60 maintenance release
01-Jul-1998 -- FAR 1.52 maintenance release
30-Mar-1998 -- FAR 1.51 maintenance release
15-Feb-1998 -- FAR 1.50 shareware released.
08-Oct-1997 -- FAR 1.50 beta released.

New in Far 1.70

Edited from what's new file:

New in Far 1.63

New in FAR 1.62 (from Whatsnew.txt, slightly edited)

  1. "Search in archives" option is implemented in "Find file" dialog.
  2. Directory names like "dir1\dir2\dir3" are allowed in "Create directory" command. FAR will try to create all directories of the path.  
  3. Internal viewer now can store position in the file:
  4. Press F4 in "Plugin commands" menu to assign hot key to menu item. Hot key can be a letter or a digit. This feature is designed to simplify access to items of this menu from keyboard macro commands
  5. Plugins can be called from the internal editor. Several such plugins ("Case conversion", "Draw lines", "Auto wrap", "Brackets matching" and "Align block") are added to the distribution;
  6. In FTP client "Use firewall" option can be specified separately for each site.
  7. "B" and "M" modifiers for "DM", "DC", "DA" column types:

    For example, you may use column type "DMBM" to show file modification time in brief format with text month names.

  8. If "Save file position" viewer or editor option is on and user manually set character table, this table will be restored when open viewed or edited file next time.
  9. Ctrl-Shift-F3 and Ctrl-Shift-F4 always call internal viewer and internal editor ignoring file associations.
  10. "!#" modifier specified before file association symbols forces them to refer to the passive panel. For example, !#!.! denotes a current file name on the passive panel.
  11. "Set "Hidden" attribute to new description lists" option in "File description" dialog.
  12. In archive support plugin 'P' (path only) modifier can be used also with %%A and %%a variables.
  13. Several enhancements of in the Plugins API

Problem areas

 Prev Contents  Next

Copyright © 1996-2008 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). Original materials copyright belong to respective owners. Quotes are made for educational purposes only in compliance with the fair use doctrine.

Standard disclaimer:

 

Last modified: April 24, 2008