viを終了することができない人のためのviの使い方

viって何だ

viとは、石器時代から使われているテキストエディタです。Windowsのメモ帳と同じようなテキストエディタです。
ですが、メモ帳と違って、とてもクセがあるので、時々次のような問題が生じます。

viを終了できない問題

vi hoge.txt

などと気軽にviを起動したは良いものの、終了できなくなるという事件が、世界では時々発生します。
My365のチームメンバーには「エンジニアも非エンジニアも全員Git使えるようになろうぜ」と、Gitを導入して使い方を覚えてもらったまでは良かったんですが。Gitでコミットする際にviが立ち上がって、「コメントが書けません。」「っていうか終了できません。」という事件が発生しました。

石器時代のツールなので「モード」を切り替えなければならない

viはテキストエディタなので、文字が打てて、文字が削除できて、カーソルが移動できて、書いた物が保存できれば、だいたい事足りるはずです。ですが、石器時代のソフトウェアなので、たったそれだけのことにも複雑な手順を必要とします。

「入力モード」と「コマンドモード」がある

「入力モード」は何かと言うと、その名のとおり文字を入力するモードです。
では「コマンドモード」とは何かと言うと、文字を削除したり、カーソルを移動したり、書いたものを保存したりする時のモードです。要するに入力する以外のほぼ全てです。
ウィンドウとかマウスとかメニューバーとか、そういう便利なものがなかった石器時代の人は、入力装置であるキーボードで、いかにして入力以外の操作をするかを考えた結果、モードを切り替えるという手段に至ったようです。

とりあえずESCを連打しよう

そういうわけで、自分が今、「コマンドモード」にいるのか、「入力モード」にいるのかを意識しながら操作しないといけません。同じキーを打っても、今どちらのモードにいるかによって挙動が変わります。
どちらのモードにいるか分からなくなった時は、「とりあえずESCを連打」です。そうすれば、「コマンドモード」になります。

入力するときは、iを1回だけ押す

入力する時は、まずiを1回だけ押します。すると、「入力モード」になるので、文字が入力できるようになります。
石器時代の人はカーソルの移動や文字の削除もコマンドモードで行いますが、現代のキーボードは便利なので入力モードでやればいいです。

文字を入力し終わったら、ESCして:wqを打つ。

テキストが完成したら保存して終了したいと思います。まずは入力モードを抜けて、コマンドモードにするために、ESCを押します。連打しても良いです。
そして、「保存して終了」のコマンド「:wq」を打ってエンターします。これで作業終了です。「やっぱり保存しないで終了したい」という時は、「:q!」と打ちます。
意味は、「write and quit (:wq)」と「とにかくquit!!!!! (:q!)」です。

日本語入力になっている時は注意が必要

入力モードとコマンドモード以外に、日本人はもう一つ注意が必要です。キーボードが「日本語入力モード」になっているか「英数字入力モード」になっているか、です。
日本語入力モードになっている状態で「:wq」を打とうとしても残念ながら受け付けてくれません。コマンドを打つ時は、必ず「英数字」にして打ちましょう。

復習

コマンドの復習。4つ覚えておけば大丈夫です。
i コマンドモードから入力モードにする
ESC 入力モードからコマンドモードにする。
コマンドモードで:wq 保存して終了
コマンドモードで:q! 保存しないで終了
作業の流れはこんな具合です。

  1. viを起動する
  2. iで入力モードにする
  3. 入力する
  4. ESCでコマンドモードにする
  5. :wqで保存して終了する

それでは、良いvi生活を!

追記

この記事はGUI万歳のviが使いこなせないゆとりプログラマによって書かれました。

コメント

  1. […] 投稿ナビゲーション ← 前へ […]

タイトルとURLをコピーしました