Text editors

The features a good text editor should have:

  • Unicode support
    A good text editor should support Unicode. This is the de facto standard for cross-platform compatibility of text files. With Unicode support you can be sure that the text file you edited on your Unix machine can be worked with properly on, e.g., a Windows machine.
  • syntax highlighting
    In our case, the main objective of using a text editor is to write code. Choosing a text editor that supports syntax highlighting for the programming language we use helps us to comprehend the written code easier by applying different colors and/or weights to the text depending on whether the piece of text is, e.g., a string, a type declaration, or a keyword.
  • snippets
    Every programming language has certain structures for building blocks like, e.g., if-conditionals or for-loops. Typing them out each and every time is a waste of time. Good text editors allow the use of so-called snippets.
  • hackability
    Each programmer has a different taste with regards to how they want to accomplish certain actions in text editors. Different shortcuts might be required, or a custom layout of the editor. A good text editor allows you to customize it to your needs, not require you to adapt to its way (at least to a certain amount).
  • package manager
    To be truly hackable a good text editor supports third-party packages that extend or alter the functionality of the text editor.

To gain more insight about the performance of different text editors take a look at this editor performance comparison.

In the following a brief introduction to the text editors I recommend is given.

Atom

Atom is a text editor made by GitHub.

Advantages

  • support for different encodings
  • highly hackable
  • open-source
  • easy to learn

Disadvantages

  • slower than the other presented editors
  • less memory efficient than the other presented editors
  • may not be installed on all machines you have to work with

Sublime Text 3

Sublime Text is a text editor made by a small team of developers. Proper support for packages is supplied by Package Control.

Advantages

  • fast
  • relatively memory efficient
  • support for different encodings
  • highly hackable
  • easy to learn

Disadvantages

  • closed-source
  • may not be installed on all machines you have to work with
  • if used for free a pop-up every ten times you save a file
  • a license costs $70 at the time of writing

Visual Studio Code

Visual Studio Code is a text editor made by Microsoft.

Advantages

  • support for different encodings
  • highly hackable
  • open-source
  • easy to learn

Disadvantages

  • may not be installed on all machines you have to work with

Vim

Vim is a text editor made by the community lead by Bram Moolenaar. Support for packages is built-in as of vim 8, but due to backward compatibility the most popular package manager is vim-plug.

Advantages

  • open-source
  • fast
  • memory efficient
  • may very well be installed on all Unix machines you have to work with

Disadvantages

  • takes time to get used to
  • hard to master

Emacs

Emacs is a text editor made by the community lead by the Free Software Foundation.

Advantages

  • open-source
  • fast
  • memory efficient
  • may be installed on all Unix machines you have to work with

Disadvantages

  • takes time to get used to
  • hard to master