はじめに
Linuxを触り始めたビギナーにとって、避けては通れない最強のトラップ。
それが「Vim(またはVi)エディタの脱出不可現象」です。
設定ファイルをちょっと書き換えようと思って、軽い気持ちで叩いたこのコマンド。
vi nginx.conf
画面が切り替わり、よし文字を打とう…と思っても、なぜか打てない。
A とか I とか打つと変な風に文字が入るけど、バックスペースで消せない。
「やばい、なんかファイル壊しちゃったかも!とりあえず閉じてやり直そう!」
そう思い Esc キーを連打するも、何も起きない。
伝家の宝刀 Ctrl + C を押しても無視。
ウィンドウの右上に「×」ボタンなんて無い。
「どうやって閉じるのこれえええええ!!」
完全に牢獄に閉じ込められ、最終的にターミナルを強制終了する(酷い時はPCごと再起動する)しかなかった、あの日の恐怖。(まじで何回かあって思い出すだけでイライラする)
今回は、全世界のエンジニアが一度は通る「Vimの呪い」の正体と、スマートな脱出方法を伝授します。
Vimのモードは「銃の安全装置」と思え
なぜ普通に文字が打てないのか? なぜ閉じられないのか?
それは、Vimが他のメモ帳とは全く違う「複数のモード」を持っているからです。(多分この仕様が人気の理由なのかな)
Vimを起動した直後、あなたは「ノーマルモード」という状態にいます。
これは例えるなら、「銃の安全装置がかかっている状態」です。
ノーマルモードでは、キーボードのキーを押しても「文字(弾)」は出ません。その代わり、x で一文字消したり、dd で一行丸ごと切り取ったり、u で元に戻したりといった、「強力なファイル操作コマンド」が一発で出せる状態になっています。
文字を打とうと適当にキーボードをガチャガチャやるとファイルがメチャクチャになるのは、「文字を入力した」のではなく「Vimの様々なショートカットコマンドが大暴発した」からなのです。(当時の自分思い出すとなんか大暴発ってジわるなww)
安全装置を外す魔法のキー i
文字を入力したい時(弾を撃ちたい時)は、安全装置を解除して**「インサートモード(挿入モード)」に切り替える必要があります。
やり方は簡単。キーボードの小文字の i(Insertのi)を1回押すだけです。
画面の左下に -- INSERT -- (または -- 挿入 --)と表示されたら、見慣れた普通のメモ帳と同じように文字が打てるようになります。
そして、打ち終わったらすぐに Esc キーを押して、再び安全装置(ノーマルモード)に戻す**。
Vimを使いこなす人は、息をするようにこの i と Esc を行ったり来たりしています。
ついに明かされる脱出方法
さて、Vimのモードの概念が分かれば、脱出方法は至極単純です。
「ファイルを閉じる」というのは操作(コマンド)なので、安全装置がかかったノーマルモードで指示を出す必要があります。
- まず
Escキーを数回叩く。(確実にノーマルモードに戻るためのおまじないです) - キーボードで
:(コロン) を打つ。(画面の左下に:が出ます) - 続けて脱出コマンドを入力し、
Enterをターンッ!と叩く。
覚えておくべき脱出コマンドは2つだけ
-
:wq(Write & Quit)
今書いた内容を**「上書き保存して、終了」**する。一番よく使います。 -
:q!(Quit!)
間違えて変な文字を打っちゃった!保存したくない!という時の**「保存せずに強制終了」**。この!には「ええい、変更なんか破棄じゃ!」という強い意志が込められているようですね。
おわりに:「ただの使いにくいメモ帳」が「プロの道具」に変わる時
「ただ文字を打つだけなのに、なんでこんな面倒くさいの!?」とキレかけていた私。
しかし、仕組みを理解し、モードの切り替えに慣れてくると、世界が一変しました。
マウスに一切手を伸ばさず、カーソルの移動も、コピペも、不要な行の一括削除も、すべてホームポジションに指を置いたまま爆速で完了できる。
Vimは「使いにくいメモ帳」ではなく、「キーボードから手を離したくないギークのための、職人の道具」だったのです。
閉じられない恐怖を克服したあなたはもう大丈夫。
どんなサーバーにログインしても最初から確実に入っているであろうVimは、あなたを支える最強の相棒になるはずです。
今日からあえて vi コマンドでファイルを開き、カチャカチャッ…ターン!と :wq をキメてドヤ顔していきましょう!無理ならnanoへ!!!!