Knowing how to fast and effectively edit files via command line is vital for every Linux system administrator. File edits are performed on a daily basis, whether it’s a configuration file, user file, text document or whatever file you need to edit.
This is why it is good idea to pick a favourite command line text editor and master it. It’s good to know how to work with other text editors, but you should master at least one so you can perform more complex tasks when needed.
In this tutorial, we are going to show you the most common command line text editors in Linux and show you their pros and cons.
Note however that we will not cover a complete guide how to work with each one of them as this can be a complete other article with explanation.
1. Vi/Vim Editor
First in our list is the infamous Vi/Vim (Vim comes from Vi improved). This is a very flexible text editor that can perform many different operations on text.
For example you can use regular expressions to replace text snippets in a file using vim. This of course is not the only benefit. Vi(m) provides an easy way to navigate between lines, words paragraphs. It also includes text highlighting.
Vim may not be the most user friendly text editor, but it is often preferred by developers and Linux power users. If you want to install this command line text editor on your system, you can use the command associated with your OS:
Install Vi/Vim Editor in Linux
$ sudo apt-get install vim [On Debian and its derivatives] # yum install vim [On RedHat based systems] OR # dnf install vim [On newer Fedora 22+ versions]
If you want to see our complete coverage of vi(m), please follow the links below:
- Learn and Use Vi/Vim as a Full Text Editor in Linux
- Learn ‘Vi/Vim’ Editor Tips and Tricks to Enhance Your Skills
- 8 Interesting ‘Vi/Vim’ Editor Tips and Tricks
2. Nano Editor
Nano is probably one of the most used command line text editors. The reason for this is it’s simplicity and the fact that it’s preinstalled in most of the Linux distributions.
Nano doesn’t have vim’s flexibility, but it will definitely do the work if you need to edit a large file. Actually pico and nano are quite similar. Both have their command options displayed at the bottom so you can choose which one to run. Commands are completed with key combinations of Ctrl and a letter displayed at the bottom.
Nano has the following features that you can use out of the box:
- Get Help
- Write out
- Read File
- Where is (search)
- Previous page
- Next page
- Cut Text
- Uncut Text
- Cur Pos (Current position)
- Spell check
Install Nano Editor in Linux
$ sudo apt-get install nano [On Debian and its derivatives] # yum install nano [On RedHat based systems] OR # dnf install nano [On newer Fedora 22+ versions]
You can check our complete guide for editing files with Nano editor on this link:
3. Emacs Editor
This is probably the most complex text editor in our list. It’s the oldest command line editor available for both Linux and UNIX based systems. Emacs can help you be more productive by providing an integrated environment for different kinds of tasks.
At first the user interface may look somehow confusing. The good thing is that emacs has a very detailed manual that will help you with file navigation, edits, customization, setting up commands. Emacs is the ultimate tool used by advanced *Nix users.
Here are some of the features that make it the preferred choice over the previous editors we mentioned:
- Emacs server platform enables multiple hosts to connect to the same Emacs server and share the buffer list.
- Powerful and extensible file manager.
- Customization beyond a regular editor – as some say it’s an OS within the OS.
- Commands customization.
- Can change to Vi(m) like mode.
Emacs is a multi-platform editor and can be easily installed with the commands shown below:
Install Emacs Editor in Linux
$ sudo apt-get install emacs [On Debian and its derivatives] # yum install emacs [On RedHat based systems] OR # dnf install emacs [On newer Fedora 22+ versions]
Note: In Linux Mint 17 I had to run the following command to complete the installation:
$ sudo apt-get install emacs23-nox
There are other command line editors, but they barely even reach the functionality that the above 3 provide. Whether you are a Linux newbie or a Linux guru, you will most definitely need to learn at least one of the above mentioned editors. If we’ve missed any command-line editor in this article, please don’t forget to inform us via comments.
19 thoughts on “My Favorite Command Line Editors for Linux – What’s Your Editor?”
While I use vim regularly, I’m also fond of NotepadQQ which is awesome as a text editor, and comes with all manner of extensions and add-ons! Great and informative article!!
Never heard about NotepadQQ text editor, thanks for notifying. I will include NotepadQQ to the article.
Always use mcedit.
But MCEdit only available to Windows and Mac, no Linux version..
My all time favourite – Midnight Commander (MC) is a text-based program for Linux.
Just a tiny addition. EMACS is up to 25, so you need to update the command for Mint 17. I’d strongly recommend 25 since there’s a bug in 24 that has caused problems.
Nowadays neovim is solid choice. New contenders like kakoune also offer nice alternatives based on modal editing.
I also use pico, very usefull ;-)