初心者がVimを使うと、疑問に思うところがいくつもあるだろう。例えば、ノーマルモードがなぜ必要なのかは、ある程度Vimに慣れた人でも分からないかもしれない。そして、文字を入力するときのモードが「入力モード」や「編集モード」でなく、挿入モードという名前になっていることも疑問に思うだろう。
これは、Vimが「vi」の機能を拡張したものであるという経緯を知ると理解しやすい。viでは、挿入モードでは文字の入力はできても、削除はできなかった。文字通り挿入だ。挿入すべき文字を間違えて入力したときは、いったんノーマルモードやコマンドラインモードに移行してから文字を削除する。それから、挿入モードに入って正しい文字を入力するのだ。
また、挿入モードではほかの行に自由にカーソルを移動させることができなかった。[Enter]キーで改行はできても、前の行に戻ったり、編集済みの下の行に移動したりといった操作はできない。つまり、行中での文字の入力には挿入モード、カーソルの移動や削除にはノーマルモード、複数の行を対象に編集処理をするにはコマンドラインモード、といったように明確な区別があったのだ。
Vimをはじめvi以降に登場したvi拡張エディタは、挿入モードでも文字を削除できたり、カーソルを前後左右に動かせるように機能を拡張してある。その結果、ノーマルモードが必要であると感じにくくなっているのだ。
メモ帳のようなエディタを使ってきた人が、Vimを使い始めると、キー操作の結果、思いもよらないことになっているということはよくある。理由はいくつも考えられるが、大きな原因としてはVim特有のモードの使い分けに失敗しているということが挙げられる。
Windowsのメモ帳のようなテキストエディタは、Vimで言う挿入モードが標準の状態で、起動すればすぐに文字入力を始められる。
一方のVimは先に説明したようにノーマルモードが標準になっており、起動直後にそのままテキスト編集を始めることはできない。この違いが、以下のようなトラブルを引き起こす。
マウスを使って文字列をコピー&ペーストしようとして、狙ったような結果にならないというのは良くある話だ。例えばWebページのURLを貼り付けようとして、ブラウザのアドレスバーのURLをコピーし、Vimに貼り付ける場合を考えてみよう。Vimがノーマルモードのときにペーストしてしまうと、VimはURLの文字列をコマンドとして解釈しようとして、意図しない文字列が編集中のテキストに挿入されたり、コマンドラインモードのコマンド入力部分に中途半端なURLが表示されてしまう。
テキストをコピー&ペーストしようとしてマウスで選択したら、Vimがノーマルモードや挿入モードから「選択モード」に移ってしまい、思ったように操作できない。今回は詳しく説明していないが、Vimではマウスで編集画面の一部を選択すると選択モードという別のモードに移行する。選択モードに入った後、挿入モードに戻さないで文字列を貼り付けてしまうと、ユーザーの想定とは異なる結果になる。
[Ctrl]+[V]で文字列を貼り付けられない。何度も押していると編集画面に「^V^V^V^V^V^V」のようなテキストが出てきてしまう。これはVimの問題ではなくターミナルの問題だ。ターミナルでは[Ctrl]+[V]が貼り付けではなく別の機能に割り振られていることがある。この場合は[Ctrl]+[V]では文字列を貼り付けることはできない。そういった場合には[Ctrl]+[Shift]+[V]など別のキーが貼り付けの役目を果たすようになっているので、そちらを利用する。
実際はノーマルモードにあるが、挿入モードに入っていると思って、画面を見ないでキーボードを打ち始めてしまう。ノーマルモードで文字を入力すると、Vimは一部をコマンドと解釈するので、予期せぬ結果を招くことがある。
このように困った状況になった場合、これまで繰り返し説明してきたように、とにかく[ESC]キーを押してノーマルモードに戻ることだ。コマンドラインモードになっているときも[ESC]キーを押してノーマルモードに戻るようにする。不幸にも1行まるごと削除してしまっていたり、おかしな文字列を貼り付けてしまったときは、コマンドラインモードで[:][undo]と入力しよう。これで、直前の動作を取り消せる。操作の取り消しをなかったことにして、[:][undo]以前に戻すなら、[:][redo]だ。
Windows版Vimをコマンドプロンプトで使用するには、「vim.exe」が存在するフォルダを環境変数「Path」に登録する必要があります。Windows XPで環境変数を設定するには、デスクトップのアイコン「マイコンピュータ」を右クリックし、「プロパティ」を左クリックします。
すると、「システムのプロパティ」というダイアログが現れます。その「詳細設定」タブをクリックすると、ダイアログの下部に「環境変数」ボタンが見えます。このボタンを押すと、「環境変数」ダイアログが現れます(図A)。
Windows Vista/7の場合は、デスクトップ上にあるアイコン「コンピュータ」を右クリックして「プロパティ」を左クリックすると、コンピュータの基本情報を示す大きめのダイアログが現れます。このダイアログに左端にある「システムの詳細設定」をクリックすると「システムのプロパティ」ダイアログが見えます。その後の手順はWindows XP、Windows Vista/7ともに共通です。
環境変数Pathを設定するには、ダイアログ下半分にある「システム環境変数」の欄から「Path」という項目を探し、クリックして「編集」ボタンを押します。すると、環境変数の名前と値を設定するダイアログが現れます(図B)。
値の欄には、すでにいくつもの項目が設定してあります。その最前部か最後尾にカーソルを移動させ、vim.exeが存在するフォルダのパスを入力します。このとき、すでに登録してある項目と、新たに登録する項目の間を「;」(セミコロン)で区切ることを忘れないでください。
環境変数の設定が済んだら、一度Windowsからログオフして、ログオンしなおしてください。これで、コマンドプロンプトからVimを起動できるようになるはずです。
後藤大地
オングス代表取締役。@ITへの寄稿、MYCOMジャーナルにおけるニュース執筆のほか、アプリケーション開発やシステム構築、『改訂第二版 FreeBSDビギナーズバイブル』『D言語パーフェクトガイド』『UNIX本格マスター 基礎編〜Linux&FreeBSDを使いこなすための第一歩〜』など著書多数。
Copyright © ITmedia, Inc. All Rights Reserved.