Just Say No to Nano
Here’s how. But seriously
nano is one of the worst things to happen to backend developer and system engineer education for reasons that are not immediately obvious. But here’s a start:
- encourages beginners to use
- fosters bad arrow spamming habits,
- makes beginners dependent on a non-standard editor,
- is throw away knowledge and wasted time once
- babies those that should learn better,
- assumes “casual” users should be allowed on the command line.
This is no holy-war post. It is factual and practical.
vi is the standard UNIX/Linux editor and has been since
ed. This fact is not up for debate. Vi is built in to virtually every such system since 1976. It is so ingrained that the shell history has a builtin
vi mode (which everyone should use btw.)
mutt also have a
vi mode. Perhaps only 10x technologists will appreciate this, but those who do the work to learn these tools are guaranteed to blow away the productivity of everyone else using
any graphic interface. These are not opinions, they are well-proven objective facts.
No other editor on the planet has tighter integration with the shell. You can actually write code in your document and run that code to generate content. This blows away any concept of extensions. Only seriously powerful programmers will even understand what that means. The point is, if you want to be such a programmer and technologist you must learn VI.
Nano is just a wasteful distraction from learning what you should be.
Morons say dumb things like “it’s your grandpas editor” without understanding the advantages. Meanwhile the 10xers are using it every day and blowing away the moron’s productivity on pretty much everything.
I am really sick of reading tutorials on Digital Ocean and elsewhere that use
nano in the instructions. One tutorial shows how to configure your
nginx server with
Some distributions have made
nanothe default editor. Really? I was almost excited when CodeAcademy released their CLI lesson but I about threw my laptop through the window when I got to the
nano section. [I get way to passionate about this stuff some times. Thankfully we built a system that helps students far better than anything in the cloud so they learn from the actual command-line.]
Command Line Users are No Longer “Casual”
The argument goes that
nano is there for the Linux beginner who just wants to edit a config file quickly but that logic falls on its face when you consider if the user is a "casual" Linux user they already have graphical editors they can use. If they are required to use the command line then they are no longer in the "casual" user category. It is irresponsible to encourage "casual" users to mess around at the command prompt without learning exactly what they are doing—including how to use the most ubiquitous and powerful editor of all time (no not
ed counts, but mean
vi without any arrow key dependency habits and other
vim bastardizations that make users trained on them non-functional noobs on any UNIX OS without them, and yes there are still millions of them in existence).
ctrl-x to Exit
Case in point:
nano encourages the use of the very troublesome
ctrl-x combination. These same users have probably been taught to
ctrl-c to get out of stuff on the command line, (which produces a nice help message in
vim, by the way instead of whatever it does in
nano). Casual users, being "casual", and being on the command line, will find themselves eventually stuck in something and unable to get out. So what will they naturally do? Yep,
ctrl-s, and now that "casual" user is ready to shut the terminal app down just to get out of it potentially leaving all kinds of zombie processes around. That's right. This is
nano's fault for teaching these beginners that horrible habit. I have seen this behavior in dozens of new Linux users. This is no fluke.
Emacs is Worse
By the way, this is same reason we will NEVER teach or use Emacs, which creates even worse habits
ctrl-x + ctrl-s will suspend most applications freezing the beginners keyboard. Emacs is a pox on the UNIX world as well serving no real purpose whatsoever. It is neither on all systems nor as easy to use at Atom for the non-
vim sort of developer.
Emacs is less of an issue because it is neither installed nor encouraged by any community but the Emacs cult. The
vi editor, is however, required for most Linux professional certifications.
Keep Calm and Use vi
If you are using the command line then use the editor built from the very beginning for the command line:
ex, which are actually still quite useful.)