Many Linux distributions bundle Vim as their default text editor. This appeals to many longtime Linux users, and those who don’t like it can change it promptly after install anyway. Vim is a funny editor, though, as it’s one of the few that opens to a mode that doesn’t permit text entry. That’s a puzzling choice for any user, and it’s confusing for a new one.
Thanks to GNU nano, there’s a common alternative to Vim for a lightweight terminal-based text editor, and it’s so easy to use—it has its most important commands listed at the bottom of its window.
On Linux and macOS, you probably already have GNU nano installed. You can verify with the
$ which nano /bin/nano
If you don’t have it installed, you can install it from your software repository, or you can download its source code and compile it yourself.
On Windows, you can install GNU nano using Chocolatey.
Launch nano from the terminal, either alone:
Or you can also open a specific file by following your command with a path to a file. If the file you name doesn’t already exist, it’s created:
$ nano example.txt
Nano is, with just a little reading, pretty self-explanatory. When you launch it, nano opens to either an empty buffer or the file you opened. At the bottom of the screen, there’s a list of functions and their corresponding keyboard shortcuts. More functions are available by pressing Ctrl+G for Get Help.
Here are the most important application commands:
- Ctrl+S saves your work
- Ctrl+W save as
- Ctrl+R loads a file ("Read")
- Ctrl+X quits, or exits
- Ctrl+G get help
Here are the most common editing commands:
- Alt+A select ("mark") a region
- Ctrl+K cut marked text
- Ctrl+U paste ("uncut")
- Alt+F undo
- Alt+E redo
Nano isn’t as extensible as Emacs or Vim, but you can make some significant customizations in a file called
~/.nanorc. In this file, you can set global preferences, including word wrap settings, color schemes, line numbering, and more. You can also create your own key bindings, so if you want to use Ctrl+V to paste instead of nano’s default Ctrl+U, you can change the binding assigned to the paste function:
bind ^V paste all
You can get a list of all available functions in the GNU nano documentation.
Simple and effective
GNU nano is a no-nonsense, straightforward text editor. It’s easy to use and provides all the functionality you expect from a text editor. Try it out, and enjoy the simplicity of intuitive editing.