WindowsではGUIアプリケーションやダイアログから設定を行うことが多いが、Linuxでは設定ファイルに書き込むことが多い。Windowsユーザーにとって最初の大きな壁はこの「Linuxにおけるファイルの編集」だと思う。
前回から「Linuxにおけるファイルの編集」を説明しているが、今回はモード、ファイルへの保存と終了、カーソルの移動について基本的な操作方法を紹介しよう。
まずはモードを知る
Vimを使えるようになるには、まずVimに存在している基本的なモードを把握する必要がある。最初に、少なくとも次の3つのモードを理解しておかなければならない。
モード | 内容 |
---|---|
ノーマルモード | すべてのモードの基本となるモード。カーソルを移動させることができるほか、文字の削除やコピー&ペーストなどが行える。モードの基本であり、モード間を移動する場合はいったんノーマルモードに移動してから、別のモードに移動する |
挿入モード | 文字を入力するモード。Vimではメモ帳のように文字の削除やカーソルの移動も行える |
コマンドラインモード | 置換、削除、追加など命令を使って編集や操作を行うモード。保存や終了などもこのモードから行う |
操作をするにあたっては、ノーマルモードに戻ってきて、そこから文字を入力するなら挿入モードへ移行する、ファイルに保存したり置換したりといろいろコマンドを発行する場合はコマンドラインモードに移行する、そういった使い方がVimの基本となる。
モードを移動する方法はいくつもあるが、中でも基本的なキー操作を次に掲載する。
操作前モード | 操作後モード | 操作 | 内容 |
---|---|---|---|
ノーマルモード | 挿入モード | i | ノーマルモードから挿入モードに移行する |
ノーマルモード | コマンドラインモード | : | ノーマルモードからコマンドラインモードへ移行する |
挿入モード | ノーマルモード | ESC | 挿入モードからノーマルモードに移行する |
コマンドラインモード | ノーマルモード | ESC | コマンドラインモードからノーマルモードに移行する |
次のように整理したほうが理解しやすいかもしれない。
操作 | モード | 操作 |
---|---|---|
挿入モード | ||
↑ i | ↓ ESC | |
ノーマルモード | ||
↓ : | ↑ ESC | |
コマンドラインモード |
とにかく、ESCキーを押せばノーマルモードに戻ってくる。そこから挿入モードに移行するならi、コマンドラインモードに移行するなら:だ。まずは最初にこの3つのモードとモード間の移動方法を身につける必要がある。iはinsert (挿入)のiと覚えておくとわかりやすく、コマンドラインモードはそもそもコマンドラインモードの場所に:と表示されているので覚えやすいと思う。
ファイルへの書き込みと終了
次に、ファイルを保存する方法とVimを終了する方法を押さえておく必要がある。ファイルへの書き込みやVimの終了は基本的にコマンドラインモードで実行する。次の操作が基本的なところだ。write (書き込み)やquit (終了)の頭文字ということを覚えておけば、身につきやすいと思う。
モード | 操作 | 内容 |
---|---|---|
コマンドラインモード | w | ファイルに保存。操作後はノーマルモード |
コマンドラインモード | q | 終了 |
コマンドラインモード | wq | ファイルに保存してから終了 |
コマンドラインモード | q! | ファイルに保存せずに終了 |
ノーマルモードや挿入モードからの操作としてまとめるとすれば、次のようになる。
モード | 操作 | 内容 |
---|---|---|
ノーマルモード | :w | ファイルに保存 |
ノーマルモード | :q | 終了 |
ノーマルモード | :wq | ファイルに保存してから終了 |
ノーマルモード | :q! | ファイルに保存せずに終了 |
挿入モード | ESC:w | ファイルに保存。操作後はノーマルモード |
挿入モード | ESC:q | 終了。操作後はノーマルモード |
挿入モード | ESC:wq | ファイルに保存してから終了。操作後はノーマルモード |
挿入モード | ESC:q! | ファイルに保存せずに終了。操作後はノーマルモード |
覚え方としては、ノーマルモードからどうやって動作するかを身につける方法がよいと思う。それぞれのモードからの操作方法を記憶するとキリがないので、一旦ノーマルモードに戻ってきてからどのように操作するのかを覚えておくとよい。
カーソルの移動
カーソルの移動の操作も最初に覚えておくほうがよい。カーソルの移動にはカーソルキーが使えるので、最初はそれでよいだろう。しかし、Vim系のエディタを使っていくのであれば、hjklによるカーソルの移動を身につけておきたい。カーソルを移動させるための基本的なキー操作は次のとおりとなる。
モード | 操作 | 内容 |
---|---|---|
ノーマルモード | ↑ | カーソルに上に移動 |
ノーマルモード | → | カーソルに右に移動 |
ノーマルモード | ↓ | カーソルに下に移動 |
ノーマルモード | ← | カーソルに左に移動 |
ノーマルモード | k | カーソルに上に移動 |
ノーマルモード | l | カーソルに右に移動 |
ノーマルモード | j | カーソルに下に移動 |
ノーマルモード | h | カーソルに左に移動 |
挿入モード | ↑ | カーソルに上に移動 |
挿入モード | → | カーソルに右に移動 |
挿入モード | ↓ | カーソルに下に移動 |
挿入モード | ← | カーソルに左に移動 |
hjklにカーソルの移動が割り当てられている理由は、viを開発していた時のキーボードが、hjklにカーソルキーも割り当てていたからと言われている。直感的ではなくわかりにくいのは事実なのだが、覚えてしまうとこの位置でもカーソルの移動ができるようになる。カーソルキーはキーボードのホームポジションからはアクセスが難しいことが多いが、hjklはホームポジションのままでタイプできるので、覚えてしまうとこちらのほうが早いのだ。
もう少し大雑把なカーソルの移動として、次の操作も覚えておきたい。行頭、行末、ファイル先頭行、ファイル末尾行への移動は覚えておくと重宝する。
モード | 操作 | 内容 |
---|---|---|
ノーマルモード | :1 | カーソルをファイルの先頭へ移動 |
ノーマルモード | gg | カーソルをファイルの先頭へ移動 |
ノーマルモード | G | カーソルをファイルの末尾業の先頭へ移動 |
ノーマルモード | I ESC | カーソルを行頭へ移動 |
ノーマルモード | A ESC | カーソルを行末へ移動 |
この辺りからVimの操作の便利なところが見えてくるのだが、Vimでは命令の前に繰り返す回数を指定することができるので、次のような入力を行うと任意の回数だけをカーソルを移動させるといったことができる。
モード | 操作 | 内容 |
---|---|---|
ノーマルモード | :数字 | カーソルを指定した行の行頭へ移動 |
ノーマルモード | 数字↑ | カーソルを指定した回数分上へ移動 |
ノーマルモード | 数字→ | カーソルを指定した回数分右へ移動 |
ノーマルモード | 数字↓ | カーソルを指定した回数分下へ移動 |
ノーマルモード | 数字← | カーソルを指定した回数分左へ移動 |
直感の鋭い方であれば、Vimが提供している機能がかなり強力であることを理解してもらえるのではないかと思う。この要領でさまざまな操作を一発で行うことが可能になる。
もちろん、Vimは使いこなせるようになるまでには努力が必要だ。しかし、それに応えてくれるエディタでもある。知れば知るほど自在に操作できるようになるし、コマンドと連携させる機能を身につけると、さらに多彩な編集ができるようになる。
一度に説明しても身につくものではないので、今回はここまでにしておこう。自分でファイル名を指定してvimコマンド(またはviコマンド)を実行して、テキストファイルを作成および入力や編集を行ってみてほしい。今回紹介した操作方法は基本中の基本だから、考えなくても操作できるようになるまで繰り返し実習してもらえればと思う。