May the source be with you,
but remember the KISS principle ;-)
Key Softpanorama Topics
|About||Contents||Top Updates||Top Visited|
|Bulletin||Selected Papers||Softpanorama Bookshelf||History|
Content : Foreword : Ch01 : Ch02 : Ch03 : Ch04 : Ch05 : Ch06 : Ch07 : OFM1999 : OFM2004 : OFM2012
The initial versions of FAR were written by a very talented programmer Eugene Roshal in 1997. He stands among Vsevolod Volkov and creators of DN as troika, who defined modern OFMs. Far was definitely influenced by VC, DN, FC and MC. At the same time is it a very clean and well thought implementation with its own "face" and the best compatibility with OFM1999 standard. 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). Most of the code existed in earlier versions of RAR archiver. 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 was the one of the few OFM based on Win32 API (Norton Commander for Windows and Total Commander which was called Windows commander at the time were other well known implementations based on Win32 API). The current review is based on version 3.0 of FAR. This version utilizes LUA as a macro language that puts FAR above the competition among all OFM managers. Essentially FAR team crossed the finish line of integrating LUA before MC team, despite the fact that MC team has chances to integrate S-lang probably for decade or more.
Most of FAR features were already available in version 1.5 that was released in late 1997. Please note that at this time Norton Commander still existed as a commercial product: version 5.0 was released in 1993 and version 5.5 in 1998, one year after FAR. Norton Commander for Windows, the GUI version of Norton Commander already existed (it was released in 1996 and that's the version the FAR left in the dust.)
There are three main versions of FAR that actually co-exist in FAR user community:
- LUA is used as macrolanguage. Several plugins that utilize LUA already exist.
- Significant changes to the API, to maximize plugins capabilities.
- All settings are now stored in the SQLite database, so Far 3 became fully portable. Settings can be imported and exported via the xml-files.
- Significantly rewritten built-in viewer: full support for UTF8, new dump mode, and a lot of small changes.
- External rendering, providing additional features (TrueColor, and bold / italic / underline fonts) when working with ConEmu.
- In each of the "Citations to the folder" can now be done on a few links (Commands -> Links to folders).
- In the list of plug-ins, you can view information about the selected plugin (F11, F3).
- A lot of changes in the macro language.
- Backlight files with more than one hard link (hardlink).
- Improved inforpanel (Ctrl-L).
- Improved Quick view (Ctrl-Q).
- The settings are not lost when close the window Far with "x" in the upper right corner (closing window by mouse).
- A large number of bug fixes.
Due to important of version 3.0 I created several additional pages devoted to this version. Among them:
Unfortunatly, version 3.0 was released when the current revision of ebook was close to completion and I did not have time to analyse as thorously as I wished, so impressions are preliminary. First and formost it uses It also uses LUA as macro language. This is the second groundbreaking achivement of FAR -- integration of standard scripting language engine into OFM.
It also fixed very annoying FAR idiosyncrasy (or blunder, if you wish) of writing most settings including user menu and extension menu to the registry (which means that if you PC became unbootable, you lose those setting with the OS, unless you separately back them up from the registry).
Generally the build that I used (2942) looks pretty stable to me. But in search files dialog, the bug related to selecting files that were modified within specified data range is not still fixed. Folder shortcuts (F9-C-O) are generalized to 10 lists bound to RightCtrl-[0-9] as starting points, not just 10 shortcuts like in older versions.
From version 1.65 that I test FAQR added several useful keys shorcuts were added to the standard OFM keymap. For example the key to insert file name with a full path (Ctrl-F). This is in addition to Ctrl-Enter introduced by Volkov Commander. From early version macro support was included (with the hotkey Ctrl . switches macro recording on, pressing it again switches it all and invoke the dialog to name the created macro) for both file manager and built-in editor. Far was the first to introduce a plug-in API in OFMs, which for example from early version provided such function as for macro construction and editing, temp panel, ftp and several other functions. Gradually users had wrote a huge library of plug-ins. Most of them for version 1.x, but there are already a dozen plug-ins written specifically for FAR 3.0 which take advantage of the new functionality.
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 a uner-defined 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) as well as expose large part of shell terminal window (Ctrl-Up, Ctrl-Down). This is a unique and important for advanced users flexibility that few other OFMs have (for example Total Commander does not).
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 plug-ins -- a concept similar to Netscape. In this respect1 FAR was pioneer implementer of this feature. For a long time FAR had no competitors and was the only OFM with a rich set of plug-in. Several dozens plug-ins for FAR were available almost instantly. Now several other OFMs use this concept too (Total Commander in one example)|
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. Only since 2001 or v. 4.5 Total Commander started to support plug-ins too in a fairly compatible way.
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
|Colorer||Igor Russkih (aka Cail Lomecb)||The Colorer makes the FAR's editor what
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. (this is a plug-in version of WinSCP|
|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?|
|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 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. But FAR is showing its age as it was not greatly changed since version 1.65 -- the last Eugene Roshal has releases before passing the codebase tot he team of maintainers. One major drawback is outdated system of macrovariables. Another significant drawback is that the user menu is not dynamic like in MC (althouth with LUA integration in version 3.0 this is trivial to implement). Also built-in editor does not have user menu implemented. With open sourced codebase there is a possibility to significantly enhance built-in editor using compatible with FAR licensed codebase.
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 FAR.
FAR has the best result in version 3.1 of the OFM1999 compatibility test:
|OFM1999 score (average of all 21 tests)||NC||VC||DN||FAR||
- 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 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
- 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
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.
Search on the directory tree for the target (for example F5-F10
combination) is buggy. If many files with the same name are present sometimes
Far is unable to find the necessary one. Also traversing the tree for the same
file names is non-standard.
Gray+ and Gray- does not provide quick navigation
on the same level for tree view. Tree navigation panel is also buggy and quick
search often does not produce a hit if many names exists on different levels
of the tree. It just go to some inner level and is deadlocked there. Quick search
should not take into account nesting of directories.
Far merged extension menu which specifies operations for execute (Enter), view(F3) and Edit(F4) into one and stores them in the Registry. It 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 -- it probably would be better if Window association would have equal standing with user defined one) is questionable -- 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 sub tables into both extension menu and the user menu is lost. Using Windows registry for storing information is a mixed blessing. For me personally it looks very inconvenient and confusing. Crash of Windows registry is a bad enough and frequent enough event not to overload it with trivial stuff. It also means that automatic generation, formatting, merging, etc. of extension list, launched file list, etc became impossible. I consider it a very bad design decision.
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.
WEB browser style enhancements for directories (up one level and
down one level using Left and Right ) are not supported
Among advanced features that FAR support are:
|Name||Total votes||Total||Average mark|
|2. Search And Replace||1481||13317||8.99|
|3. Far Navigator (Proxy...||881||7300||8.28|
|8. Unicode Wizard||184||1506||8.18|
|9. Extended File Copy||138||1222||8.85|
|10. Registry browser||135||1154||8.54|
|11. FARMail (POP3)||141||1133||8.03|
|12. WEB Editor||82||647||7.89|
??-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.
Edited from what's new file:
"Smart" associations: If several associations are specified for a single extension, and if some associations have the "IF EXIST" condition, the action selection menu shows only the items for which the condition is true.
The link creation function (Alt-F6). It works only under Windows NT/2000. FAR shows an error message if the user tries to use it under Windows 95/98/Me.
Ctrl-C/Ctrl-Ins - copies the current line from a history menu (Alt-F8, Alt-F11, Alt-F12) to the clipboard, so it can be edited.
Shift-Enter key can be used in edit controls to insert a file name under cursor from the active panel. Very useful extension, but it probably should be added to edit control menu -- too many keys to remember.
Pressing the '/','\' in Quick Search will go to directory. Attention: those who used Alt-\ as a macro to pop a Quick Search window up now can use a Alt-< key.
Functional key bar is extended. It now reacts to three new key combinations - CtrlShift, AltShift, CtrlAlt. That applies to plugins too.
Ctrl-U removes block in the dialog input lines.
There is a possibility to specify a color for command line prompt, that allows to distinguish prompt from the entered command. Default color is the same as command line one.
Ctrl-F copies the full file name as it is shown on the panel.
Pressing Shift-F1 in the plug-in configuration menu shows the help topic "Config" for the current plug-in. If there is no such topic, the standard topic "Contents" is shown instead.
Now the task list (Ctrl-W) is more user-friendly - attempts to move the cursor up from the first item or down from the last item cause the cursor to move to the last or the first item, respectively.
"Screen grabber" function (Alt-Ins)
The "Show selected first" mode (Shift-F12)
It is possible to set the filler character for the "Wipe file" operation (Alt-Del) (see TechInfo #29).
Alt-Shift-Left, Alt-Shift-Right, Alt-Shift-Home and Alt-Shift-End select the block in the command line also when the panels are on.
Directories can be deleted when F8 or Shift-F8 is pressed in the tree panel.
Support for the mouse wheel in Windows 2000
The information panel (Ctrl-L) under Windows shows correct information for symbolic links (directory junctions and volume mount points) when entering such a directory.
The internal viewer now is used for viewing descriptions. It allows to:
- use word wrap in the description file;
- scroll the description file;
- switch code pages;
- search in the description file (F7).
Display of information about copying speed and time (see TechInfo#26)
Pressing Ctrl-D on the command line deleted the block instead of moving the cursor one character to the right.
Alt-Shift-F9 invokes the editor settings dialog.
If no block is selected, Alt-U and Alt-I indent the current line.
Alt-Shift-F9 invokes the viewer settings dialog.
When the "[x] Save file position" is turned on, the file viewing mode (normal or hex) is stored separately for each file.
Clicking the mouse on the status line:
- on the code page indicator - shows the code page selection menu
- on the position indicator - shows the "Go to position" dialog
QuickView: Under Windows, when viewing symbolic links, the path to the source directory is shown.
KeyBar in the help system.
New section "Operating system commands".
One dialog for any actions.
If multiple file system objects are selected, or if the attributes of
a directory are changed with "Process subfolders" enabled, the check
boxes will have three states:
"[x]" - the attribute is set (or set the attribute)
"[ ]" - the attribute is not set (or clear the attribute)
"[?]" - the attribute is undefined (or do not touch the attribute)
[+] For selected objects:
"[x]" - the attribute is set for all objects
"[ ]" - the attribute is not set for all objects
"[?]" - the attribute is set for some of the objects
If there are no folders among the selected objects, the option "Process subfolders" will be disabled.
For symbolic links, the attribute setting dialog shows additional information about the source directory (NTFS/Win2K).
In the panel mode 5 (Ctrl-5), if a directory is a symbolic link (Reparse point) (NTFS/Win2K), the letter 'L' will be shown additionally.
[It is possible to configure distinct colors for symbolic links (NTFS/Win2K) in the "Files highlighting" dialog.
...If you do not want to change the file time, leave the respective field empty. You can push the "Blank" button to clear all the date and time fields and then change an individual component of the date or time, for example, only month or only minutes. All the other date and time components will remain unchanged..."
The look of the key assignment dialog has been changed.
An overwrite warning is shown if a macro already exists, and a warning is shown when trying to delete a macro.
Three new macro areas: "Info", "QView", "Tree",.
4 new modes for panel macro commands:
"NoFilePanels" - cannot be executed in file panels.
"NoPluginPanels" - cannot be executed in plug-in panels.
"NoFolders" - cannot be executed if the current element is a folder.
"NoFile" - cannot be executed if the current element is a file.
By default all the modes are set to off. (The modes are also shown in the macro parameters dialog -Ctrl-Shift-.) See TechInfo#22 for details.
As an experiment, 7 new macro commands have been added: "$Day", "$Month", "$Year", "$Hour", "$Min", "$Sec" For example "$Year . $Day . $Month . t x t" macro will generate a
string "2000.21.12.txt" for 21 december 2000. "$MMode" - change macro mode See TechInfo#22 for details.
If, while editing command in the user menu, the label is not entered
and the "OK" button is pressed, then the dialog is not closed, because it is
possible to lose the commands that may have been entered. To exit the menu
one can use the "Esc" key or the "Cancel" button.
Select files with the same extension as the current file extension Alt-Grey+
Deselect files with the same extension as the current file extension Alt-Grey-
Select files with the same extension as the current file name Ctrl-Grey+
Deselect files with the same extension as the current file
Shift-Enter key can be used in edit controls to insert a file name under cursor from the active panel. Very useful extension, but it probably should be added to edit control menu -- too many keys to remember.
RightCtrl-0 -- RightCtrl-9 store current position in viewed file, Ctrl-0 - Ctrl-9 restore it;
Alt-BS and Ctrl-Z undo position change;
Alt-F8 changes current position.
For example, you may use column type "DMBM" to show file modification time in brief format with text month names.
Ctrl-Shift-F3 and Ctrl-Shift-F4 always call internal viewer and internal editor ignoring file associations.
Built-in FTP VFS is showing age and behaves very strangely with some FTP servers. Probably an alternative FTP plugin should be used.
History of visited directories was implemented incorrectly (should be two of them: one for each panel as usually each panel is used for the specific area of the filesystem or ftp VFS). Also the current implementation is too primitive and does not allow moving of selected directories into "permanent" favorites list, sorting by name, etc
There are several suggestions that might help to make version 1.70 even more user friendly:
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 : C++ Humor : ARE YOU A BBS ADDICT? : Object oriented programmers of all nations : C Humor : Financial Humor : Financial Humor Bulletin, 2008 : Financial Humor Bulletin, 2010 : 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 : The Most Comprehensive Collection of Editor-related Humor : Microsoft plans to buy Catholic Church : Education Humor : IBM Humor : Assembler-related Humor : VIM Humor Computer Viruses Humor : Bright tomorrow is rescheduled to a day after tomorrow : Classic Computer Humor : Best Russian Programmer Humor : Russian Musical Humor : The Perl Purity Test : Politically Incorrect Humor : GPL-related Humor : OFM Humor : IDS Humor : Real Programmers Humor : Scripting Humor : Web Humor : Programming Language Humor : Goldman Sachs related humor : Greenspan humor :
The Last but not Least
|You can use PayPal to make a contribution, supporting hosting of this site with different providers to distribute and speed up access. Currently there are two functional mirrors: softpanorama.info (the fastest) and softpanorama.net.|
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.
Last modified: July 07, 2013