As a new sys-admin, what text editor should I use?

August 8, 2019 979 views
Linux Commands Linux Basics Getting Started System Tools

Hello!

I’m a new sys-admin working mostly with Ubuntu - I’ve heard many text editors mentioned, such as Vim, Vi, Emacs & Nano but I don’t know which I should use.

I’ve been told Vi is too archaic and cliched, but that’s what they taught us in college! Vim seems like a second choice with Emacs clearly being the frontrunner. Never got a chance to use Nano ¯\_(ツ)_/¯

2 comments
3 Answers

Hi janbridges,

For a junior SysAdmin I would recommend nano as it’s the easiest.

I’ve seen a lot of senior System Administrators use nano. I’m talking about people with more than 15 years of experience in the field. When I asked them why don’t they use VIM (which I was trying to learn at the time), I got a pretty straightforward answer, VIM is too smart for it’s own good, nano is the way to go.

Now, VIM has more useful packages and function. For example highlighting variables, loops etc. depending on the extension of the file which is really cool. Having said that, I feel for a junior System Administrator nano is better as a starting point.

PS.
If you actually configure nano, it can also have highlight.

Kind regards,
Kalin D.

  • People have told me that Nano is for newbies and that people should be “growing up” and moving to something better like Vim or Emacs?

    I don’t see the point in using Nano if that’s the case, instead I should use Vim/Emacs?

    • It’s true, Nano is indeed used at the beginning by everyone. Having said that, there is a reason a why that is. It’s the quickest and it’s actually pretty straightforward.

      If you are editing configuration files then there is no need to use something more complex like Vim or Emacs.It’s just not justified. Everyone that says nano is no good are just wrong.

      Don’t get me wrong Vim/Emacs are pretty handy as well, I even use Vim in my day to day work( as well as Nano).

      What I was trying to point out is that you should try and see what suits you best, not form your opinion on a couple of answers. People tend to say one editor is no good compared to another but actually every text editor has it perks.You just have to find what suits you best.

If you primarily are connecting to machines to fix configs and the like, then definitely get to know vim.

That said, as you scale out things, you hopefully won’t be doing as much ssh'ing to machines to edit files and instead will be editing some configuration management system like chef, ansible, etc. In this case it is good to spend time with a programmers editor, which could be vim as well! Emacs is another great choice as it has tons of helpful features for working with many different languages, taking notes, and interacting with other systems (ie TRAMP).

I’ll admit I jumped on the Emacs train long ago and happily recommend it to folks, but vim is great too. In vim, I think you typically end up using other tools like tmux, fzf, etc. increase productivity where as in Emacs, you end up using different plugins. Choose what makes sense to you!

  • I’m mostly working with these configuration files as well as some generic JSON/YAML files, would you still say Vim is the best?

    • It is a great place to start as it is good to know how to use it. Vim is almost always available on any machine. That said, you can always try out Emacs and see if it fits your workflow better. I’d say give them both a try!

      As an aside, Emacs has some great Vim-like modes if you end up liking vim’s command model and modes, but want support for Emacs features like org-mode, tramp, magit, etc.

      Good luck!

If you are not going to spend a lot of time in the terminal you could just use nano because it is quite easy to get used to.

But if you are planning to become a real Linux SysAdmin, then it is definitely worth learning vim even though it is a much steeper learning curve than nano.

Have another answer? Share your knowledge.