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! 保存しないで終了
作業の流れはこんな具合です。
- viを起動する
- iで入力モードにする
- 入力する
- ESCでコマンドモードにする
- :wqで保存して終了する
それでは、良いvi生活を!
追記
この記事はGUI万歳のviが使いこなせないゆとりプログラマによって書かれました。
コメント
[…] 投稿ナビゲーション ← 前へ […]