*usr_02.txt* For
Vim バージョン 7.3. Last change: 2010 Jul 20
VIM USER MANUAL - by Bram Moolenaar
初めての Vim
この章では、Vim を使ってファイルを編集するための最低限のことを説明します。操作
が下手でも遅くても、とにかく編集できるようになりましょう。この章に出てくるコマ
ンドはこれからの基礎になるものなので、少し時間をとって練習してください。
|02.1| Vim の起動方法
|02.2| 文字の挿入
|02.3| カーソル移動
|02.4| 文字の削除
|02.5| undo (取り消し) と redo (やり直し)
|02.6| 他の編集コマンド
|02.7| Vim の終了
|02.8| ヘルプの引き方
次章:
|usr_03.txt| カーソルの移動
前章:
|usr_01.txt| マニュアルについて
目次:
|usr_toc.txt|
==============================================================================
*02.1* Vim の起動方法
Vim を起動するには次のコマンドを入力します。
UNIXならコマンドプロンプトから実行できます。Microsoft Windows環境では、MS-DOS
プロンプトを開いて、入力してください。
Vim が起動して file.txt という名前のファイルの編集が開始されます。これは新しい
ファイルなので、ウィンドウは空になっています。次のような画面が表示されます:
+---------------------------------------+
|# |
|~ |
|~ |
|~ |
|~ |
|"file.txt" [New file] |
+---------------------------------------+
("#" はカーソルの位置です)
ティルド(~)の行は、ファイルにその行がないことを示しています。ファイルの
末尾より後ろを表示する場合にティルドが表示されます。画面の下の方に、編集中の
ファイル名は "file.txt" で、それが新しいファイルであることが表示されています。
このメッセージの表示は一時的なもので、他のメッセージが表示されると消えてしまい
ます。
VIM コマンド
------------
gvim は編集用のウィンドウを新しく作ります。次のコマンドを使った場合は:
コマンドウィンドウの中で編集できます。つまり、xterm の中で実行すれば、Vim は
xterm ウィンドウを使います。Microsoft Windows の MS-DOS プロンプトを使っている
場合も、そのウィンドウの中で編集できます。gvim でも vim でもテキストは同じよう
に表示されますが、gvimにはメニューバーなどの追加機能があります。詳しくは後で述
べます。
==============================================================================
*02.2* 文字の挿入
Vim はモード型エディタです。モードによって挙動が変わります。一番よく使うモード
は「ノーマルモード」と「挿入モード」です。ノーマルモードでは、入力した文字は
コマンドとして扱われます。挿入モードでは、入力した文字はそのまま挿入されます。
Vim を起動した直後はノーマルモードになっています。挿入モードに入るには、"i" コ
マンドを入力します (i は Insert の意)。これで、文章を入力できるようになります。
入力した文章はファイルに挿入されます。入力を間違えても心配する必要はありませ
ん。後から修正できます。プログラマーのリメリック(詩の一種)を入力して見ましょ
う。次のように入力します:
"turtle" を入力した後で
<Enter> キーを押して改行します。最後に
<Esc> キーを押
して挿入モードを終了し、ノーマルモードに戻ります。このとき、Vim ウィンドウには
次のような二行が表示されています。
+---------------------------------------+
|A very intelligent turtle |
|Found programming UNIX a hurdle |
|~ |
|~ |
| |
+---------------------------------------+
今は何モード?
-------------
現在のモードを確認できるようにするには、次のコマンドを入力してください。
":" (コロン記号) を入力すると、カーソルがウィンドウの最下段に移動します。ここ
はコロンコマンド (":"で始まるコマンド) を入力する場所です。
<Enter> キーを押す
とコマンドが実行されます (コロンで始まるコマンドは全てこの方法を使います)。
さて、"i" コマンドを入力すると、ウィンドウの最下段に "― 挿入 ―" という表示が
現れます。これは、あなたが挿入モードにいることを示しています。
+---------------------------------------+
|A very intelligent turtle |
|Found programming UNIX a hurdle |
|~ |
|~ |
|― 挿入 ― |
+---------------------------------------+
<Esc> を押すとノーマルモードに戻り、最下段は空白になります。
トラブルを避ける
----------------
Vim を使い始めたときはモードを混同しがちです。現在のモードを忘れてしまったり、
知らないうちに間違ってモードを変更してしまったりすることがあります。どのモード
にいる場合でも
<Esc> を押せばノーマルモードに戻れます。
<Esc> を二回押さなけれ
ばならないときもあります。ノーマルモードで
<Esc> を押すとビープ音が鳴るので、
その場合は既にノーマルモードにいるということです。
==============================================================================
*02.3* カーソル移動
ノーマルモードでは、次のキーを使って移動できます:
h 左
*hjkl*
j 下
k 上
l 右
最初はでたらめなコマンドに思えるかもしれません。"l" キーで 右 (right) に移動す
るなんておかしいですね。しかしこれには合理的な理由があります。エディタで最もよ
く使うのはカーソル移動であり、これらのキーは右手のホームポジションにあるので
す。つまり、(特に 10 本の指を使ってタイプする人が) 最も速く打てる場所にコマン
ドが配置されています。
Note:
カーソルは矢印キーでも移動できます。しかし、ホームポジションから手を離
さなければならないので、編集速度は落ちてしまいます。一時間に数百回も移
動することを考えると、結構な時間が消費されることになります。
また、矢印キーが無いキーボードや、矢印キーの配置場所がおかしいキーボー
ドもあります。hjkl の使い方を知っていれば、そのような場合でも安心です。
コマンドを覚えるには、"h" は左にあって、"l" は右にあって、"j" は下を指してい
る、とでも覚えてください。図で示します:
移動コマンドを覚える一番の方法は使ってみることです。"i" コマンドを使って適当な
テキストを入力し、hjkl キーを使って動き回り、いろんな場所に文字を挿入してみて
ください。
<Esc> キーを押してノーマルモードに戻るのを忘れずに。
|vimtutor| を使っ
て練習してみるのもいいでしょう。
日本のユーザーへ、Hiroshi Iwataniさんは次のような提案をしています。
Komsomolsk
^
|
Huan Ho <--- ---> Los Angeles
(Yellow river) |
v
Java (ジャワ島。プログラミング言語のあれではない)
==============================================================================
*02.4* 文字の削除
文字を削除したい場合は、文字の上にカーソルを移動して "x" を押します。(これはタ
イプライタを使っていた古い時代に、消したい文字の上に "xxxxxx" と印字していたの
と同じ感覚です)。例えば、例文の一行目にカーソルを移動して、xxxxxxx (xを7つ) 打
ち、"A very " を消してみましょう。その結果は次のようになります:
+---------------------------------------+
|intelligent turtle |
|Found programming UNIX a hurdle |
|~ |
|~ |
| |
+---------------------------------------+
さて、新しいテキストを挿入してみましょう。例えば次のように入力します:
"i" で挿入を開始し、"A young " を入力しています。最後に
<Esc> キーを押して挿入
モードを抜けます。結果は次のようになります。
+---------------------------------------+
|A young intelligent turtle |
|Found programming UNIX a hurdle |
|~ |
|~ |
| |
+---------------------------------------+
行削除
------
行全体を消すには "dd" コマンドを使います。行が消された場所は、それ以降の行を上
げることで詰められます。
+---------------------------------------+
|Found programming UNIX a hurdle |
|~ |
|~ |
|~ |
| |
+---------------------------------------+
改行を取る
----------
Vim では複数の行を一行にまとめることができます。これは行と行の間にある改行文字
を削除するのと同じです。それには "J" コマンドを使います。
例えば、次の二行があるとします:
A young intelligent
turtle
最初の行にカーソルを動かし "J" を押すと次のようになります:
A young intelligent turtle
==============================================================================
*02.5* undo (取り消し) と redo (やり直し)
間違ってテキストを削除してしまった場合、同じ内容を入力し直すこともできますが、
もっと簡単な方法があります。"u" コマンドで直前の編集結果を undo (取り消し)
できます。例えば、"dd" コマンドで削除した行を、"u" コマンドで元に戻せます。
もう一つ例を示します。カーソルを一行目の A に移動して:
A young intelligent turtle
xxxxxxx とタイプし、"A young" を削除します。結果は次のようになります:
intelligent turtle
"u" で直前の削除が取り消されます。最後に削除されたのは g なので、その文字が復
活します。
g intelligent turtle
もう一度 "u" を実行すると、さらに一つ前に削除された文字が復活します:
ng intelligent turtle
次の "u" コマンドでは u が復活し、次々と元に戻すことができます:
ung intelligent turtle
oung intelligent turtle
young intelligent turtle
young intelligent turtle
A young intelligent turtle
Note:
"u" を二回押したときに、最初の状態に戻ってしまった場合は、Vi 互換モー
ドが設定されています。
|not-compatible| を参照して正しく設定してくださ
い。
このマニュアルでは「Vim方式」の使い方を前提にしています。古き良き時代
の Vi 方式を使いたい場合は、細かい部分でマニュアルの説明と違うことがあ
るので注意してください。
redo (やり直し)
---------------
undo し過ぎてしまった場合は、
CTRL-R (redo) を押すことで、直前のコマンドを
取り消せます。つまり、undo を undo します。実際に二回
CTRL-R を押してみましょ
う。"A "の二文字が消えます。
young intelligent turtle
undo コマンドには特別なバージョン、"U" (行 undo) コマンドがあります。行 undo
コマンドは直前に編集した行のすべての変更を取り消します。このコマンドは、二回実
行すると、直前の "U" が取り消されます。
A very intelligent turtle
xxxx "very"を削除
A intelligent turtle
xxxxxx "turtle"を削除
A intelligent
"U" で行全体を元に戻す
A very intelligent turtle
"u" で "U" を undo
A intelligent
"u" が undo で、
CTRL-R が redo であるのに対し、"U" コマンドはそれ自身が変更コ
マンドです。ちょっとわかりにくいかも知れませんが心配はいりません。"u" と
CTRL-R があればどんな場合でも大丈夫だ、ってことです。詳細は
|32.2| にあります。
==============================================================================
*02.6* 他の編集コマンド
Vim には文章を編集するための数多くのコマンドがあります。下記、または
|Q_in|を参
照してください。ここでは頻繁に使うものだけを述べます。
追記 (APPENDING)
----------------
"i" コマンドはカーソルの前に文字列を挿入しますが、行末に文字を追加したいときは
はどうすればいいでしょうか? それにはカーソルの後ろに文を挿入できないといけませ
ん。"a" (append) コマンドで追記できます。
例えば、次の行を
and that's not saying much for the turtle.
このように変更したいとします
and that's not saying much for the turtle!!!
まずカーソルを行末のピリオドの上に動かし、"x" でピリオドを消します。この時カー
ソルは行末の turtle の "e" の上にあります。ここで、次のコマンドを入力します。
これで turtle の後ろに三つの "!" 記号が追加されます:
and that's not saying much for the turtle!!!
新しい行を開く
--------------
"o" コマンドを使うと、カーソルの下に新しい空の行が作成され、挿入モードに入りま
す。そのため、そのまま新しい行の文章を入力できます。
以下のような二行があり、カーソルが一行目のどこかにあるとします:
A very intelligent turtle
Found programming UNIX a hurdle
"o" コマンドを実行し、テキストを入力すると:
次のような結果になります:
A very intelligent turtle
That liked using Vim
Found programming UNIX a hurdle
"O" コマンド (大文字) を使うと、カーソルの上に空行を作成できます。
カウンタを使う
--------------
例えば、9 行上に移動したい場合、"kkkkkkkkk" とタイプすることもできますが、"9k"
コマンドでも同様に移動できます。実はほとんどのコマンドには回数を指定できます。
例えば上記の例では、"a!!!
<Esc>" で三つの "!" 記号を追加しましたが、これは
"3a!
<Esc>" と入力することもできます。最初の 3 はコマンドを三回実行することを指
定しています。同様に、三文字削除したい場合は "3x" を使います。カウントは必ず対
象となるコマンドの前に指定してください。
==============================================================================
*02.7* Vim の終了
Vim を終了するには "ZZ"コマンドを使います。ファイルが保存され、Vim が終了しま
す。
Note:
他の多くのエディタと違い、Vim は自動的にバックアップを作成しません。
"ZZ" と打つとファイルが上書きされるため、元に戻す方法はありません。バッ
クアップファイルを作成するように設定することもできます。
|07.4|を参照し
てください。
変更を破棄する
--------------
ファイルを編集した後で、元の方が良かったと気づくことがあると思います。心配はい
りません。「全部投げ捨てて終了する」コマンドがあります。
コマンドを確定するには
<Enter> キーが必要ですよ。お忘れなく。
詳細を説明すると、このコマンドは三つの部分から成っています。":" はコマンドライ
ンモードの開始、"q" コマンドはエディタを終了するコマンド、"!" はオーバーライド
修飾詞です。
変更を破棄するにはオーバーライド修飾詞が必要です。単に ":q" を実行した場合、エ
ラーメッセージが表示され、コマンドは実行されません:
E37: 最後の変更が保存されていません (! で変更を破棄)
オーバーライドを指定することで、「バカげたことをしてるように見えるのはわかって
る。でもボクは大人だし、本当にそうしたいんだ」と Vim に告げているわけです。
Vim を終了したくない場合は、":e!" コマンドでオリジナルのファイルを再読み込みで
きます。
==============================================================================
*02.8* ヘルプの引き方
知りたいことは何でも Vim のヘルプで調べることができます。どんどん調べてくださ
い!
次のコマンドでヘルプの総合案内が表示されます:
ヘルプは
<F1> ファンクションキーでも表示できます。キーボードに
<Help> キーがあ
る場合はそれも使えます。
":help" に引数を指定しなかった場合は総合案内が表示されます。Vim の作者はとても
賢い (いや、すごい怠け者かも) ので、ヘルプウィンドウには普通の編集ウィンドウが
使われています。ヘルプウィンドの中ではすべてのノーマルモードコマンドが使えま
す。したがって、h, j, k, l で 上下左右に移動できます。
ヘルプウィンドウは、エディタを終了するのと同じコマンド ("ZZ") で閉じることがで
きます。この場合は、ヘルプウィンドウが閉じるだけで、Vim は終了しません。
ヘルプを読むと、縦棒 "|" で囲まれた文字に気づくと思います (例:
|help|)。それは
ハイパーリンクです。その場所にカーソルを置いて、
CTRL-] (タグジャンプ) を押す
と、そのヘルプにジャンプできます。(理由は省きますが、Vim ではハイパーリンクの
ことをタグと呼びます。
CTRL-] はカーソル下の単語をタグとみなして、その場所にジャ
ンプします。)
ジャンプした後は
CTRL-T (タグをポップする) で元の場所に戻れます。
CTRL-O(古い
場所へのジャンプ)でも元に場所に戻れます。
ヘルプ画面の最上部に*help.txt*という表記があります。"*" で囲まれた名前はヘルプ
システムのタグ(ハイパーリンクの飛び先)を定義するために使われています。
タグの使い方の詳細は
|29.1| を参照してください。
特定のヘルプ項目を見るには次のコマンドを使います:
例えば "x" コマンドのヘルプを見るには次のようにします:
文字の削除方法を調べるには次のようにします:
Vim のコマンド一覧を見たい場合は次のようにします:
コントロール文字コマンド (例えば
CTRL-A) のヘルプを見るには、"
CTRL-" に続けて
その文字を指定します:
Vim にはいろんなモードがあります。特に指定がなければノーマルモードコマンドのヘ
ルプが表示されます。例えば、次のコマンドでノーマルモードの
CTRL-H コマンドのヘ
ルプが表示されます:
他のモードを指定するにはプレフィクスを付けてください。例えば、挿入モードのヘル
プを見たいときには、"i_"を付けます。
CTRL-H の場合なら次のようになります:
Vim を起動するときにはコマンドライン引数を指定できます。引数は先頭が "-" で始
まります。例えば、"-t" 引数の意味を調べるには次のコマンドを使います:
Vim にはオプションがたくさんあり、それを設定することでカスタマイズができます。
オプションのヘルプを見るには、アポストロフィでそれを囲ってください。例えば、
'number'オプションの意味を調べるには次のコマンドを使います:
モードのプレフィクス一覧は
|help-context| を参照してください。
特殊キー不等号で囲んで表記します。例えば、挿入モードの上矢印キーのヘルプを見る
には次のコマンドを使います:
例えば次のようなエラーメッセージが表示された場合:
E37: 最後の変更が保存されていません (! で変更を破棄)
行頭のエラーIDを使えばヘルプを検索できます:
サマリー:
*help-summary*
一般的なヘルプを表示します。下へスクロールすると、全てのヘルプ
ファイルの一覧を表示します。ここには独自に追加された、Vim標準
には添付されていないヘルプファイルも含まれます。
ユーザーマニュアルの目次を表示します。
Exコマンド"subject"のヘルプ。例えば次のようなもの:
ヘルプの探し方のヘルプ。
ノーマルモードコマンド"abc"のヘルプ。
ノーマルモードコマンドにおけるキー
<C-b>のヘルプ。
インサートモードにおける特定のキーのヘルプ。
ビジュアルモードにおける特定のキーのヘルプ。
コマンドラインモードにおける特定のキーのヘルプ。
オプション
'subject'のヘルプ。
関数"subject"のヘルプ。
コマンドラインオプション"-subject"のヘルプ。
コンパイル時機能"+subject"のヘルプ。
自動コマンドイベント"EventName"のヘルプ。
ヘルプファイル"digraph.txt"のトップ。
他のヘルプファイルについても同様。
"pattern"で始まるヘルプタグを検索。
<Tab>を繰り返し押すと他の候
補を検索する。
"pattern"にマッチするヘルプタグを全て表示する。
全ヘルプファイルの全テキストからパターン"pattern"を検索し、最
初のマッチへジャンプする。他のマッチへジャンプするには以下のコ
マンドを使う:
次のマッチへ
前のマッチへ
最初/最後のマッチへ
quickfixウィンドウを開く/閉じる。quickfixウィンドウで
<Enter>を押すと、カーソル下の要素へジャンプする。
==============================================================================
次章:
|usr_03.txt| カーソルの移動
Copyright: see
|manual-copyright| vim:tw=78:ts=8:ft=help:norl: