GNU Nano
Tags: +tech, +TextEditor, @리뷰
2026-01-08

예전에 대표적인 텍스트 에디터인 Vim과 Emacs에 대해 쓴 적이 있다. 그만큼 텍스트 에디터가 중요한 도구이기 때문이다. 나는 대략 1~2년 전부터 GNU Nano를 주력으로 사용하고 있는데, 내가 그동안 거쳐온 과정을 정리해 보고 싶다.
Requirements
내가 추구하는 텍스트 에디터의 조건은 크게 3가지다:
Terminal
개인적으로 인터넷이나 동영상처럼 GUI가 반드시 필요한 경우가 아니라면, 거의 모든 업무를 터미널에서 처리하기 때문에, 텍스트 에디터도 당연히 터미널용이어야 한다.
Longevity
뛰어난 소프트웨어는 정말 많다. 그러나 장기간에 걸쳐 살아남는 소프트웨어는 드물다. 아무리 좋아 보여도 영속성이 담보되지 않는 소프트웨어는 사용하고 싶지 않다. 텍스트 에디터처럼 중요한 소프트웨어라면 더더욱 그렇다. 물론, 미래는 알 수 없으니 어느 텍스트 에디터가 오래 살아남을지 정확히 알 방법은 없다. 그러나 과거부터 현재까지 오랜 기간 이어져 왔다면 앞으로도 그럴 가능성이 높다. 즉, 전통 있는 소프트웨어일수록 미래에도 오래 살아남을 가능성이 높다. 최소한 나는 그렇게 생각한다.
Simplicity
"This is the Unix philosophy: Write programs that do one thing and do it well. Write programs to work together. Write programs to handle text streams, because that is a universal interface."
- Douglas McIlroy
개인적으로 단순함을 사랑한다. 내 기본적인 성향이 그렇다. 그래서 Unix 철학을 매우 좋아한다. 당연히 텍스트 에디터도 단순해야 한다.
Vim
앞서 언급한 3가지 조건에 가장 근접한 텍스트 에디터가 Vim이다. (Vim에 대한 설명은 생략하겠다) 그러나, 한 명의 개발자(Bram Moolenaar; 결국 2023년에 사망했다)가 모든것을 관리하는 구조가 마음에 들지 않았고, 파편화 문제도 싫었다. (Vim 자체가 Vi의 확장판이고, Neovim이라는 Vim의 Fork도 큰 인기를 얻고 있다) 그렇게까지 큰 문제는 아니었으나, 계속 신경쓰이는 뭔가가 남아있는 것이 불편했다. 결국 Emacs로 돌아서게 됐다.
Emacs
사실 Emacs는 3가지 조건 중 3번에 정면으로 배치되는 텍스트 에디터다. 그러나 Vim과 같은 문제가 전혀 없고, 다른 장점이 많아서 선택하게 됐다. (Emacs에 대한 설명도 생략하겠다) 나는 아직까지도 순수하게 기능적 완성도 측면에서만 보면 Emacs가 가장 뛰어난 텍스트 에디터라고 생각한다.
그러나 Emacs의 가장 큰 문제는 유연성과 확장성이 무한하다는 점이다. Emacs 안에서는 내가 원하는 모든 것이 가능하다. 이렇게 말하면 마치 장점처럼 들리겠지만 현실은 그렇지 않다. 인간에게 어떤 일을 할 수 있는 능력이 주어지면, 결국 그 일을 하게 된다. 그 능력을 사용해보고 싶은 유혹을 뿌리칠 수 없기 때문이다. Emacs도 비슷하다. 모든 것이 가능하다는 것을 알기 때문에, 그 모든 부분을 건드려보고 시험해보지 않을 수가 없다. 결국 설정 지옥에서 빠져나올 수 없게 되고, 실제 본연의 업무 보다 그 업무를 위해 사용하려고 했던 도구 설정에 더 많은 시간과 노력을 투입하는 주객전도 상황에 빠지게 된다. (나만 그런 것이 아니라 많은 Emacs 유저들이 겪는 문제다)
정확히 따져보진 않았지만 대략 5~6년 정도 Emacs에 빠져 살았다. 그러나 설정 파일이 1000줄을 넘어가는 시점이 되었을 때 이건 뭔가 잘못됐다는 생각을 하게 됐고, 결국 Nano를 선택하게 됐다.
Nano
Nano는 위 3가지 조건을 모두 충족한다. 그럼에도 불구하고 처음부터 고려하지 않았던 이유는 그 기능의 한계 때문이다. Vim과 Emacs가 매우 다양한 기능을 가진 것으로 유명한 반면, Nano는 단순한 업무에나 적합한 빈약한 기능만 갖춘 것으로 알려져 있었기 때문이다.
그래서 Nano를 처음 사용하기 시작할 당시에는 기능을 포기하고 단순함에 우선순위를 두겠다는 생각이었다. (그만큼 Emacs 설정 지옥의 영향이 컸다) 그런데 사용을 하다보니 생각 보다 많은 기능을 가지고 있어서 놀랐다. Nano의 기능이 빈약하다는 속설은 분명 잘못됐다.
아래 기능들은 흔히 Nano에 포함되지 않은 것으로 오해하는 경우가 많은데, 실제로는 모두 기본적으로 제공된다:
- Mouse support: 마우스 지원.
- Multiple tabs: 다중 탭 지원.
- Theming: 색상 변경 가능. (수작업 필요)
- Syntax highlighting: 다양한 언어 지원. (직접 추가 가능)
Conclusion
내가 Nano를 좋아하긴 하지만 거짓말을 하진 않겠다. 아주 복잡한 업무를 하는 전문 개발자나 작가들에게는 Nano의 기능이 부족할 수 있다. 그러나 Nano의 기능이 결코 빈약한 것은 아니며, 대부분의 사람이 대부분의 작업을 하기에 충분할 정도의 기능을 가지고 있다. (정말로 고급 기능이 필요하다면 외부의 터미널 도구나 Bash script 등을 통해 보완할 수 있다) 많은 분들이 Nano의 진짜 가치를 알게 되기를 바란다.