Emacs Editor Features Review
Emacs is a lightweight Integrated Development Environment. Emacs is free, open source and cross-platform (Mac, Windows and Linux).
This review is based on features I require of an advanced text editor. A list of required features was created after using different editors. Some features require extensions or plug-ins.
Emacs is a free text editor from http://www.gnu.org/software/emacs. There are downloadable packages for Linux, Mac and Windows systems. Emacs can easily be extended by plug-ins to ease application development in different programming languages.
Test Tools
- Test system:
- CPU: Intel(R) i7 2600 @ 3.40GHz.
- Memory: 8GB DDR3.
- Operating System: Debian Jessie Testing 64bit.
- Desktop: Xfce Desktop Environment 4.10.
- Test suite:
- Large file: 1GB human-readable text.
- Regex file: text with word “Emacs” repeated.
- Syntax file: PHP file containing HTML, CSS & JavaScript.
- Media file: Smiley face JPEG file.
- Emacs: Version 23.4.1 64bit
- Test Score:
- Each feature has two parts
- Score of zero indicates missing feature
- A part of a feature is worth a score of 0.5
Three bias elimination steps were utilized. The editor was used for at least three years on different platforms. Attempts were made to get stable plug-ins for missing features. The same editor was compared between the one in the repository, the developers website, and the compiled version if applicable.
Selecting Editor Version
Emacs was installed from the Debian repository. Emacs and its plug-ins do require GTK2 runtime dependencies. Emacs needs re-installation every time I change my distribution unless built from source.
Emacs was installed in the system folder and was never available for other installed Linux distributions. All plug-ins also require re-installation.
Features
The theme can be native for the editor in terms of the background. Emacs dark and light themes can be created or downloaded. The score for the theme was a perfect 1.0.
Dragging and dropping a text file into the editor opens a new tab or buffer. It is possible to specify the tab location during the drag and drop operation using the tabbar-mode plugin. The score for drag and drop into editor was a perfect 1.0.
Opening a very large text file did not crash Emacs. Emacs was able to edit the large file. The score for opening a large file was a perfect 1.0.
Multiple documents can opened in multiple tabs or buffers. Tear-off tabs can be mimicked by having Emacs open the current buffer in a new window as a new instance which is handy for multiple monitors. The score for multiple documents was a perfect 1.0.
Multiple editors can be opened as new tabs with drag options. Each tab window view can be split either vertically or horizontally as a multiple editor view. The score for multiple editor view was a perfect 1.0.
Creating non-project files is possible. Non-project files can be opened by the drag and drop operation. The score for creating non-project files was a perfect 1.0.
Soft word wrap can be enabled on all documents as line wrapping. Automatic soft wrap for documents is available from the Emacs settings. The score for word wrap was a perfect 1.0.
Spell check works as words are typed. Spelling errors are not shown in opened documents automatically, but spell check can work if an entire document is selected. The score for spell check was a perfect 1.0.
Word count is available for Emacs. Selection word count is available as part of word count plugin or using a shell pipe. The score for word count was a perfect 1.0.
Go to line can jump to a specified line. It is possible to jump to either the first or last line. The score for go to line is a perfect 1.0.
Indentation can default to user-defined tab stops. Children are automatically indented. The score for indentation was a perfect 1.0.
Fonts can be dynamically scaled. The system font can be bypassed and a new editor font and size can be set. The score for fonts was a perfect 1.0.
Find and replace using regular expressions can not be utilized for all open documents in the current session. Find and replace will work for the current document or a selection in the current document. The score for find and replacing using regular expressions was 0.5.
Multiple language syntax highlighting in one file is enabled if the language plug-ins are installed. Each language has code-sensitive syntax colours which can be modified. The score for multiple language syntax highlighting was a perfect 1.0.
Code folding does not work for markup languages such as HTML. Code folding also does not work for programming languages such as PHP and Java. The score for code folding was 0.0.
Selecting rectangular block per column works. Rectangular block selection works with word wrap enabled. The score for selecting rectangular block was a perfect 1.0.
Multiple selection is available for Emacs using the multiple cursors plugin by Magnar Sveen. Search multiple selection is not available. The score for multiple selection was 0.5.
Distraction-free mode to hide panes works. Line numbers can be toggled to improve distraction-free mode. The score for distraction-free was a perfect 1.0.
The file manager is available in Emacs. Media files can be dragged and dropped into the file manager pane. The score for file manager was 1.0.
Terminal does not require a plugin. The terminal can follow folder. Terminal can execute system commands. The score for terminal was a perfect 1.0.
Results
Emacs is a very powerful text editor. By default, the Emacs editor is missing required features which can be installed by using extensions. For my required features, the Emacs editor scored 90.0% or 9.00 out of 10.
Conclusion
Emacs is a very powerful text editor. Basic editor features are missing in Emacs. Important editor features require Emacs plug-ins. Overall Emacs only scored 9.00 out of 10 for essential text editor features.
Emacs is able to use the system native theme and fonts. Emacs has one of the multiple select features available for any editor. The file manager can incorporate native GUI features in Emacs.
- Recommendations:
- Look for required plug-ins before deciding to try Emacs.
- Download desired Emacs editor themes.
- Install Emacs from your distribution repository if applicable.