エディタの選び方 - vim / nano / emacs / VS Code の使い分け

エディタの選び方 - vim / nano / emacs / VS Code の使い分け

この記事でできるようになること

  • vim / nano / emacs / VS Code の特徴の違いを説明できる
  • 自分の用途に合うエディタを選べる

前提知識(先に読むと理解しやすい記事)

エディタって、どれを使えばいいの?

ファイルを編集しようとして vim と打ったら、画面から抜け出せなくなった——。Linux を学び始めた人の多くが一度は通る道だ。世の中には vim・nano・emacs・VS Code と、テキストエディタがたくさんある。でも「結局どれを使えばいいのか」は、なかなか教えてもらえない。

この記事では、代表的な 4 つのエディタ(vim / nano / emacs / VS Code)の違いを、リナとライニー先輩の会話でやさしく整理していく。初心者がどれから始めればいいかも、あわせて示す。なお「エディタ」「テキストエディタ」「editor」は、どれも同じものを指す呼び方だ。

この記事でわかること

  • なぜエディタの種類がこんなに多いのか
  • nano / vim / emacs / VS Code それぞれの得意な場面
  • 4 つのエディタの学習コストと使いどころの違い
  • 初心者がまず選ぶべきエディタと、乗り換えの目安
  • 「vim から抜け出せない」を一発で解決する方法

1. なぜエディタの種類が多いの?

結論: エディタは「サーバ上で 1 行だけ直す」用途と「腰を据えて開発する」用途で求められるものが違うため、目的別に複数の選択肢が育ってきた。

リナ: ライニー先輩、テキストエディタってどうしてこんなに種類があるんですか? 1 個でいいのに…
ライニー先輩: いい疑問だね。実は「どこで・何を編集するか」で、ちょうどいいエディタが変わるからなんだ。
リナ: 場面によって違う、ということですか?
ライニー先輩: そう。たとえば SSH(手元のパソコンから、ネットワーク越しに遠くのサーバへログインする仕組み)で入ったサーバの設定を 1 行だけ直したいとき。重たい開発ツールを起動きどうするより、ターミナル入力したコマンドを解釈してコンピュータに実行させる対話プログラム。の中で開いてすぐ直せるエディタが向いている。
リナ: 反対に、じっくり開発するときは?
ライニー先輩: 何百ファイルもあるアプリを毎日書くなら、補完ほかん(入力途中の候補を自動で出してくれる機能)や検索が強い高機能なエディタのほうが快適だよね。
リナ: なるほど。用途ごとに「ちょうどいい道具」が育ってきたんですね。
ライニー先輩: その通り。だから「どれが一番か」じゃなくて「いつ・どれを使うか」で考えるのが正解なんだ。

CUI エディタと GUI エディタ

  • CUI(ターミナル内): nano / vim / emacs。SSH 越しのサーバでもそのまま動く
  • GUI(画面アプリ): VS Code。マウスやメニューが使え、大規模開発に強い

どんな環境でも動くのは CUI 系。手元の開発で快適なのは GUI 系、と覚えておくと整理しやすい。

2. nano はどんなエディタ?

結論: nano は画面下に操作キーが常に表示される、もっとも初心者にやさしい CUI エディタ。「とりあえず直す」に最適。

リナ: まずは一番やさしいのから知りたいです!
ライニー先輩: それなら nano だね。nano の良いところは、画面の下にいつも「次に押すキー」が出ていること。これがあるから、操作を覚えていなくても迷わない。
リナ: カンニングペーパーが最初から付いてるみたいですね。
ライニー先輩: まさに。たとえば ^X と書いてあったら「Ctrl を押しながら X」で終了、という意味だよ。記号きごう^ は Ctrl のことなんだ。
nano memo.txt

nano を起動すると、文字をそのまま打ち込んで編集できる。終了したいときは次のキーを押す。

^X 終了    ^O 保存    ^W 検索    ^K 行の切り取り
(^ は Ctrl キーのこと)

nano の基本操作

  • 保存: Ctrl+O(Write Out)→ Enter で確定
  • 終了: Ctrl+X
  • 検索: Ctrl+W

矢印キーでカーソルを動かせて、特別な「モード」もない。Windows のメモ帳に一番近い感覚で使える。

迷ったらまず nano。多くの Linux に最初から入っており、サーバで設定ファイルを少し直すだけなら nano で十分こなせる。

3. vim はどんなエディタ?

結論: vim はキーボードだけで高速に編集できる強力な CUI エディタ。「モード」の概念があり、慣れると最速だが学習コストは高め。

リナ: 私、前に vim を開いたら抜け出せなくなって焦りました…
ライニー先輩: あるあるだね。vim には「モード」という考え方があって、これを知らないとパニックになるんだ。
リナ: モード、ですか?
ライニー先輩: そう。vim は起動直後は「ノーマルモード」で、キーは編集ではなく操作の命令として働く。文字を打ち込むには i を押して「挿入モード」に入る必要があるんだ。
リナ: だから普通に打っても変な動きをしたんですね…!
ライニー先輩: その通り。そして抜け出すには、まず Esc でノーマルモードに戻ってから、:q で終了する。これさえ知っていれば、もう怖くないよ。
vim config.txt

vim から無事に抜け出すための「最重要 3 コマンド」はこれだ。

i        挿入モードに入る(文字を打てるようになる)
Esc      ノーマルモードに戻る
:wq      保存して終了
:q!      保存せずに強制終了

「抜け出せない!」を解決する手順

  1. まず Esc を押す(どのモードにいても、ひとまずノーマルモードに戻る)
  2. 保存して終わるなら :wq と打って Enter
  3. 編集を捨てて終わるなら :q! と打って Enter

: を打つと画面下にコマンドを入力できる。慌てず Esc から始めるのがコツ。

:q! は編集内容が戻らない

  1. GUI との差分: GUI のエディタなら閉じるときに「保存しますか?」と聞かれる。:q! は確認なしで編集を捨てる
  2. 安全な使い分け: 残したいときは :wq、捨てていいと決めたときだけ :q! を使う
  3. 安心してほしいこと: 練習用のファイルで試せば、失っても困らない。まずは memo.txt のような使い捨てのファイルで練習しよう

vim は最初こそ難しいが、ホームポジションから手を離さず高速に編集できるのが最大の魅力。サーバ管理では vim が前提のことも多く、最低限の操作(開く・直す・保存して終わる)は身につけておくと安心。

4. emacs はどんなエディタ?

結論: emacs は拡張かくちょう機能で「何でもできる」ことを目指した CUI エディタ。カスタマイズ性は随一ずいいちだが、その分覚えることも多い。

リナ: emacs は vim とどう違うんですか?
ライニー先輩: emacs は「vim のような編集モードの切り替えがなく、最初から文字を打てる」のが大きな違い。その代わり、操作は CtrlAlt を組み合わせたキーで指示するんだ。
リナ: vim みたいに「抜けられない」ことはないんですか?
ライニー先輩: 編集モードの切り替えがない分、文字入力では迷いにくいよ。終了は Ctrl+X のあと Ctrl+C。保存は Ctrl+X のあと Ctrl+S だね。
リナ: キーを 2 段階で押すんですね。
ライニー先輩: そう、これが emacs 流。そして emacs の本当のすごさは「拡張性」にある。設定を書き換えれば、メール送信やファイル管理まで取り込めるんだ。エディタというより「作業環境」に近いね。
emacs notes.txt

emacs の最低限の操作は次の通り。C-x は「Ctrl を押しながら x」を表す。

C-x C-s   保存
C-x C-c   終了
C-g       操作のキャンセル(困ったらこれ)

emacs の立ち位置

  • vim のような編集モードの切り替えがなく、起動直後から入力できる
  • Ctrl / Alt の組み合わせキーで操作する
  • 設定言語(Lisp)で機能をいくらでも追加できる

「自分専用の道具に育てたい」人に向く。一方で、少し直すだけなら nano、高速編集なら vim のほうが手軽なことも多い。

5. VS Code はどんなエディタ?

結論: VS Code はマウスとメニューで直感的に使える GUI エディタ。補完・検索・拡張機能が豊富で、本格的な開発に最も向く。

リナ: VS Code はよく名前を聞きます。これは何が違うんですか?
ライニー先輩: VS Code はこれまでの 3 つと違って、ウィンドウで開く GUI のエディタなんだ。マウスでクリックできるし、見た目もカラフルで分かりやすい。
リナ: じゃあ一番やさしいのは VS Code なんじゃ…?
ライニー先輩: 手元のパソコンで開発するなら、その通り。補完も賢いし、間違いに色を付けて教えてくれる。拡張機能を入れれば言語ごとの支援も増える。
リナ: いいことだらけに聞こえます!
ライニー先輩: ただし弱点もある。VS Code は基本的に GUI が必要だから、SSH で入っただけのサーバではそのままでは動かない(リモート拡張という仕組みで補えるけど、ひと手間かかる)。だからこそ nano や vim も知っておく価値があるんだ。

ターミナルから VS Code を開くこともできる。現在のフォルダファイルをまとめて整理する入れ物。Windows や macOS の「フォルダ」と同じもの。をまるごと開くには次のコマンドを使う。

code .

VS Code が向く場面

  • 手元の PC で、複数ファイルにまたがるアプリ開発をする
  • 補完・デバッグ・Git 連携などを 1 画面で済ませたい
  • まだコマンド操作に慣れておらず、マウスで安心して触りたい

開発環境の整え方は Linux 開発環境構築ガイド でも解説している。

6. 結局どれを選べばいい?

結論: まず nano で「直せる」体験を、次に vim の最低限を、本格開発には VS Code を。emacs は興味が出たら触れば十分。

リナ: 種類は分かりました。でも、私はまず何から使えばいいですか?
ライニー先輩: 初心者なら nano から始めるのがおすすめ。操作が画面に出ているから、まず「ファイルを編集して保存する」体験を安心して積める。
リナ: vim や emacs は後回しでいいんですか?
ライニー先輩: vim は「開く・直す・保存して終わる」の最低限だけ先に覚えておくと安心。サーバで突然 vim が立ち上がっても困らないからね。本格的にコードを書き始めたら VS Code、と段階を踏めば十分だよ。
エディタ 種類 学習コスト 向いている場面
nano CUI サーバで設定を少し直す・初心者の最初
vim CUI キーボードだけで高速編集・サーバ管理
emacs CUI 自分好みに育てる・統合作業環境
VS Code GUI 手元での本格的なアプリ開発

迷ったときの選び方

  • とりあえず直したい → nano
  • サーバで vim が開いたEsc:wq を思い出す
  • 手元で開発する → VS Code
  • 道具を育てたい → emacs / vim を深掘り

エディタは「乗り換え可能」。最初の 1 つにこだわりすぎず、必要になったら次を覚えればいい。

リナ、vim から抜け出せない

結論: 編集したまま :q を打つと vim は終了を断る。保存して終わるなら :wq、編集を捨てるなら :q!

リナ: 教わったとおり vim を開いて、i で文字を打ってみました。Esc を押してから :q で終わろうとしたら、赤い文字が出て終われません。
E37: No write since last change (add ! to override)
リナ: 何か壊してしまったんでしょうか…?
ライニー先輩: 大丈夫、壊れていないよ。これは「まだ保存していないよ」という vim からの確認なんだ。編集した内容をどうするかを、まだ決めていないからね。
リナ: 保存するか捨てるかを、私が選ぶんですね。
ライニー先輩: そのとおり。保存して終わるなら :wq、編集を捨てて終わるなら :q! だよ。! は「わかっているから強行して」の合図なんだ。
:wq      保存して終了する
:q!      編集を捨てて終了する
リナ: :q! で抜けられました。エラーじゃなくて、聞かれていただけなんですね。
ライニー先輩: そう。Esc を押してから : で始める、この順番だけ覚えておけば、もう二度と閉じ込められないよ。

ミニ課題

結論: nano で保存して終わる、vim から抜ける、入っているエディタを確かめる。この3つを手で試そう。

ライニー先輩: 学んだことを自分の手で確かめてみよう。3 つの課題を用意したよ。

課題1: nano でファイルを保存して終了しよう

やること: memo.txt を nano で開き、1 行書いて保存し、エディタを終了しよう。

ヒント1(方向づけ)を見る

画面の下に出ているキーの一覧を読もう。保存は「書き出す」、終了は「出る」を表すキーだよ。

ヒント2(コマンド名)を見る

nano memo.txt で開き、Ctrl+O → Enter で保存、Ctrl+X で終了するよ。

答えを見る
nano memo.txt
^O 保存(Enter で確定)
^X 終了
(^ は Ctrl キーのこと)

課題2: vim を保存せずに終了しよう

やること: config.txt を vim で開き、文字を打ってから、その編集を保存せずに終了しよう。

ヒント1(方向づけ)を見る

まず今のモードから抜ける。そのあと「終了」に「強行」の記号を足すよ。

ヒント2(コマンド名)を見る

Esc を押してから :q! と打って Enter だよ。

答えを見る
vim config.txt
Esc      ノーマルモードに戻る
:q!      保存せずに終了する

課題3: 入っているエディタを確かめよう

やること: nano と vim が自分の環境に入っているかを調べよう。

ヒント1(方向づけ)を見る

コマンドの置き場所を教えてくれるコマンドがある。「どれ?」を英語にした名前だよ。

ヒント2(コマンド名)を見る

which(コマンドの置き場所を表示するコマンド)に、調べたい名前を並べて渡すよ。

答えを見る
which nano vim
/usr/bin/nano
/usr/bin/vim

パスファイルやディレクトリの場所を表す文字列。が表示されれば、そのエディタは使える。何も出なければ入っていない。

振り返り

結論: nano は画面のヒントで迷わない、vim は Esc:q! で抜けられる、VS Code は手元の開発向き。この3点で選べる。

リナ: つまり「まず nano で編集に慣れて、vim は抜け方だけ先に覚える」でいいんですね。
ライニー先輩: そのとおり。サーバで急に vim が開いても、Esc:q! を思い出せれば困らないよ。
リナ: 手元でコードを書くようになったら VS Code に進む、という順番も分かりました。
ライニー先輩: いいね。エディタは乗り換えできる道具だから、最初の1つで悩みすぎないことが大事だよ。

今日の3行まとめ

結論: 用途で選ぶ・nano から始める・vim の抜け方を覚える。この3点でエディタ選びは終わる。

  1. エディタは用途別に育った道具 - 「どれが一番か」ではなく「いつ・どれを使うか」で選ぶ
  2. 最初は nano、次に vim の最低限 - nano は操作が画面に出ていて迷わない。vim は Esc:wq / :q! だけ先に覚える
  3. 本格的な開発は VS Code - ただしサーバでは GUI が使えないので、CUI の nano や vim も知っておく

次に読む

この記事を共有

次の一手