1 *usr_02.txt* For Vim バージョン 7.2. Last change: 2007 Feb 28
3 VIM USER MANUAL - by Bram Moolenaar
8 この章では、Vim を使ってファイルを編集するための最低限のことを説明します。操作
9 が下手でも遅くても、とにかく編集できるようになりましょう。この章に出てくるコマ
10 ンドはこれからの基礎になるものなので、少し時間をとって練習してください。
16 |02.5| undo (取り消し) と redo (やり直し)
21 次章: |usr_03.txt| カーソルの移動
22 前章: |usr_01.txt| マニュアルについて
25 ==============================================================================
28 Vim を起動するには次のコマンドを入力します。 >
32 UNIXならコマンドプロンプトから実行できます。Microsoft Windows環境では、MS-DOS
34 Vim が起動して file.txt という名前のファイルの編集が開始されます。これは新しい
35 ファイルなので、ウィンドウは空になっています。次のような画面が表示されます:
37 +---------------------------------------+
43 |"file.txt" [New file] |
44 +---------------------------------------+
47 ティルド(~)の行は、ファイルにその行がないことを示しています。ファイルの
48 末尾より後ろを表示する場合にティルドが表示されます。画面の下の方に、編集中の
49 ファイル名は "file.txt" で、それが新しいファイルであることが表示されています。
50 このメッセージの表示は一時的なもので、他のメッセージが表示されると消えてしまい
57 gvim は編集用のウィンドウを新しく作ります。次のコマンドを使った場合は: >
61 コマンドウィンドウの中で編集できます。つまり、xterm の中で実行すれば、Vim は
62 xterm ウィンドウを使います。Microsoft Windows の MS-DOS プロンプトを使っている
63 場合も、そのウィンドウの中で編集できます。gvim でも vim でもテキストは同じよう
64 に表示されますが、gvimにはメニューバーなどの追加機能があります。詳しくは後で述
67 ==============================================================================
70 Vim はモード型エディタです。モードによって挙動が変わります。一番よく使うモード
71 は「ノーマルモード」と「挿入モード」です。ノーマルモードでは、入力した文字は
72 コマンドとして扱われます。挿入モードでは、入力した文字はそのまま挿入されます。
73 Vim を起動した直後はノーマルモードになっています。挿入モードに入るには、"i" コ
74 マンドを入力します (i は Insert の意)。これで、文章を入力できるようになります。
75 入力した文章はファイルに挿入されます。入力を間違えても心配する必要はありませ
76 ん。後から修正できます。プログラマーのリメリック(詩の一種)を入力して見ましょ
79 iA very intelligent turtle
80 Found programming UNIX a hurdle
82 "turtle" を入力した後で <Enter> キーを押して改行します。最後に <Esc> キーを押
83 して挿入モードを終了し、ノーマルモードに戻ります。このとき、Vim ウィンドウには
86 +---------------------------------------+
87 |A very intelligent turtle |
88 |Found programming UNIX a hurdle |
92 +---------------------------------------+
98 現在のモードを確認できるようにするには、次のコマンドを入力してください。 >
102 ":" (コロン記号) を入力すると、カーソルがウィンドウの最下段に移動します。ここ
103 はコロンコマンド (":"で始まるコマンド) を入力する場所です。<Enter> キーを押す
104 とコマンドが実行されます (コロンで始まるコマンドは全てこの方法を使います)。
105 さて、"i" コマンドを入力すると、ウィンドウの最下段に "― 挿入 ―" という表示が
106 現れます。これは、あなたが挿入モードにいることを示しています。
109 +---------------------------------------+
110 |A very intelligent turtle |
111 |Found programming UNIX a hurdle |
115 +---------------------------------------+
117 <Esc> を押すとノーマルモードに戻り、最下段は空白になります。
123 Vim を使い始めたときはモードを混同しがちです。現在のモードを忘れてしまったり、
124 知らないうちに間違ってモードを変更してしまったりすることがあります。どのモード
125 にいる場合でも <Esc> を押せばノーマルモードに戻れます。<Esc> を二回押さなけれ
126 ばならないときもあります。ノーマルモードで <Esc> を押すとビープ音が鳴るので、
127 その場合は既にノーマルモードにいるということです。
129 ==============================================================================
132 ノーマルモードでは、次のキーを使って移動できます:
139 最初はでたらめなコマンドに思えるかもしれません。"l" キーで 右 (right) に移動す
140 るなんておかしいですね。しかしこれには合理的な理由があります。エディタで最もよ
141 く使うのはカーソル移動であり、これらのキーは右手のホームポジションにあるので
142 す。つまり、(特に 10 本の指を使ってタイプする人が) 最も速く打てる場所にコマン
146 カーソルは矢印キーでも移動できます。しかし、ホームポジションから手を離
147 さなければならないので、編集速度は落ちてしまいます。一時間に数百回も移
148 動することを考えると、結構な時間が消費されることになります。
149 また、矢印キーが無いキーボードや、矢印キーの配置場所がおかしいキーボー
150 ドもあります。hjkl の使い方を知っていれば、そのような場合でも安心です。
152 コマンドを覚えるには、"h" は左にあって、"l" は右にあって、"j" は下を指してい
153 る、とでも覚えてください。図で示します: >
159 移動コマンドを覚える一番の方法は使ってみることです。"i" コマンドを使って適当な
160 テキストを入力し、hjkl キーを使って動き回り、いろんな場所に文字を挿入してみて
161 ください。<Esc> キーを押してノーマルモードに戻るのを忘れずに。|vimtutor| を使っ
164 日本のユーザーへ、Hiroshi Iwataniさんは次のような提案をしています。
169 Huan Ho <--- ---> Los Angeles
172 Java (ジャワ島。プログラミング言語のあれではない)
174 ==============================================================================
177 文字を削除したい場合は、文字の上にカーソルを移動して "x" を押します。(これはタ
178 イプライタを使っていた古い時代に、消したい文字の上に "xxxxxx" と印字していたの
179 と同じ感覚です)。例えば、例文の一行目にカーソルを移動して、xxxxxxx (xを7つ) 打
180 ち、"A very " を消してみましょう。その結果は次のようになります:
182 +---------------------------------------+
183 |intelligent turtle |
184 |Found programming UNIX a hurdle |
188 +---------------------------------------+
190 さて、新しいテキストを挿入してみましょう。例えば次のように入力します: >
194 "i" で挿入を開始し、"A young " を入力しています。最後に <Esc> キーを押して挿入
195 モードを抜けます。結果は次のようになります。
197 +---------------------------------------+
198 |A young intelligent turtle |
199 |Found programming UNIX a hurdle |
203 +---------------------------------------+
209 行全体を消すには "dd" コマンドを使います。行が消された場所は、それ以降の行を上
212 +---------------------------------------+
213 |Found programming UNIX a hurdle |
218 +---------------------------------------+
224 Vim では複数の行を一行にまとめることができます。これは行と行の間にある改行文字
225 を削除するのと同じです。それには "J" コマンドを使います。
228 A young intelligent ~
231 最初の行にカーソルを動かし "J" を押すと次のようになります:
233 A young intelligent turtle ~
235 ==============================================================================
236 *02.5* undo (取り消し) と redo (やり直し)
238 間違ってテキストを削除してしまった場合、同じ内容を入力し直すこともできますが、
239 もっと簡単な方法があります。"u" コマンドで直前の編集結果を undo (取り消し)
240 できます。例えば、"dd" コマンドで削除した行を、"u" コマンドで元に戻せます。
241 もう一つ例を示します。カーソルを一行目の A に移動して:
243 A young intelligent turtle ~
245 xxxxxxx とタイプし、"A young" を削除します。結果は次のようになります:
249 "u" で直前の削除が取り消されます。最後に削除されたのは g なので、その文字が復
252 g intelligent turtle ~
254 もう一度 "u" を実行すると、さらに一つ前に削除された文字が復活します:
256 ng intelligent turtle ~
258 次の "u" コマンドでは u が復活し、次々と元に戻すことができます:
260 ung intelligent turtle ~
261 oung intelligent turtle ~
262 young intelligent turtle ~
263 young intelligent turtle ~
264 A young intelligent turtle ~
267 "u" を二回押したときに、最初の状態に戻ってしまった場合は、Vi 互換モー
268 ドが設定されています。|not-compatible| を参照して正しく設定してくださ
270 このマニュアルでは「Vim方式」の使い方を前提にしています。古き良き時代
271 の Vi 方式を使いたい場合は、細かい部分でマニュアルの説明と違うことがあ
278 undo し過ぎてしまった場合は、CTRL-R (redo) を押すことで、直前のコマンドを
279 取り消せます。つまり、undo を undo します。実際に二回 CTRL-R を押してみましょ
282 young intelligent turtle ~
284 undo コマンドには特別なバージョン、"U" (行 undo) コマンドがあります。行 undo
285 コマンドは直前に編集した行のすべての変更を取り消します。このコマンドは、二回実
286 行すると、直前の "U" が取り消されます。
288 A very intelligent turtle ~
291 A intelligent turtle ~
296 A very intelligent turtle ~
300 "u" が undo で、 CTRL-R が redo であるのに対し、"U" コマンドはそれ自身が変更コ
301 マンドです。ちょっとわかりにくいかも知れませんが心配はいりません。"u" と
302 CTRL-R があればどんな場合でも大丈夫だ、ってことです。詳細は |32.1| にあります。
304 ==============================================================================
307 Vim には文章を編集するための数多くのコマンドがあります。下記、または|Q_in|を参
308 照してください。ここでは頻繁に使うものだけを述べます。
314 "i" コマンドはカーソルの前に文字列を挿入しますが、行末に文字を追加したいときは
315 はどうすればいいでしょうか? それにはカーソルの後ろに文を挿入できないといけませ
316 ん。"a" (append) コマンドで追記できます。
319 and that's not saying much for the turtle. ~
321 and that's not saying much for the turtle!!! ~
323 まずカーソルを行末のピリオドの上に動かし、"x" でピリオドを消します。この時カー
324 ソルは行末の turtle の "e" の上にあります。ここで、次のコマンドを入力します。
328 これで turtle の後ろに三つの "!" 記号が追加されます:
330 and that's not saying much for the turtle!!! ~
336 "o" コマンドを使うと、カーソルの下に新しい空の行が作成され、挿入モードに入りま
337 す。そのため、そのまま新しい行の文章を入力できます。
338 以下のような二行があり、カーソルが一行目のどこかにあるとします:
340 A very intelligent turtle ~
341 Found programming UNIX a hurdle ~
343 "o" コマンドを実行し、テキストを入力すると: >
345 oThat liked using Vim<Esc>
349 A very intelligent turtle ~
350 That liked using Vim ~
351 Found programming UNIX a hurdle ~
353 "O" コマンド (大文字) を使うと、カーソルの上に空行を作成できます。
359 例えば、9 行上に移動したい場合、"kkkkkkkkk" とタイプすることもできますが、"9k"
360 コマンドでも同様に移動できます。実はほとんどのコマンドには回数を指定できます。
361 例えば上記の例では、"a!!!<Esc>" で三つの "!" 記号を追加しましたが、これは
362 "3a!<Esc>" と入力することもできます。最初の 3 はコマンドを三回実行することを指
363 定しています。同様に、三文字削除したい場合は "3x" を使います。カウントは必ず対
366 ==============================================================================
369 Vim を終了するには "ZZ"コマンドを使います。ファイルが保存され、Vim が終了しま
373 他の多くのエディタと違い、Vim は自動的にバックアップを作成しません。
374 "ZZ" と打つとファイルが上書きされるため、元に戻す方法はありません。バッ
375 クアップファイルを作成するように設定することもできます。|07.4|を参照し
382 ファイルを編集した後で、元の方が良かったと気づくことがあると思います。心配はい
383 りません。「全部投げ捨てて終了する」コマンドがあります。 >
387 コマンドを確定するには <Enter> キーが必要ですよ。お忘れなく。
389 詳細を説明すると、このコマンドは三つの部分から成っています。":" はコマンドライ
390 ンモードの開始、"q" コマンドはエディタを終了するコマンド、"!" はオーバーライド
392 変更を破棄するにはオーバーライド修飾詞が必要です。単に ":q" を実行した場合、エ
393 ラーメッセージが表示され、コマンドは実行されません:
395 E37: 最後の変更が保存されていません (! で変更を破棄) ~
397 オーバーライドを指定することで、「バカげたことをしてるように見えるのはわかって
398 る。でもボクは大人だし、本当にそうしたいんだ」と Vim に告げているわけです。
400 Vim を終了したくない場合は、":e!" コマンドでオリジナルのファイルを再読み込みで
403 ==============================================================================
406 知りたいことは何でも Vim のヘルプで調べることができます。どんどん調べてくださ
408 次のコマンドでヘルプの総合案内が表示されます: >
412 ヘルプは <F1> ファンクションキーでも表示できます。キーボードに <Help> キーがあ
414 ":help" に引数を指定しなかった場合は総合案内が表示されます。Vim の作者はとても
415 賢い (いや、すごい怠け者かも) ので、ヘルプウィンドウには普通の編集ウィンドウが
416 使われています。ヘルプウィンドの中ではすべてのノーマルモードコマンドが使えま
417 す。したがって、h, j, k, l で 上下左右に移動できます。
418 ヘルプウィンドウは、エディタを終了するのと同じコマンド ("ZZ") で閉じることがで
419 きます。この場合は、ヘルプウィンドウが閉じるだけで、Vim は終了しません。
421 ヘルプを読むと、縦棒 "|" で囲まれた文字に気づくと思います (例:|help|)。それは
422 ハイパーリンクです。その場所にカーソルを置いて、CTRL-] (タグジャンプ) を押す
423 と、そのヘルプにジャンプできます。(理由は省きますが、Vim ではハイパーリンクの
424 ことをタグと呼びます。CTRL-] はカーソル下の単語をタグとみなして、その場所にジャ
426 ジャンプした後は CTRL-T (タグをポップする) で元の場所に戻れます。CTRL-O(古い
427 場所へのジャンプ)でも元に場所に戻れます。
429 ヘルプ画面の最上部に*help.txt*という表記があります。"*" で囲まれた名前はヘルプ
430 システムのタグ(ハイパーリンクの飛び先)を定義するために使われています。
431 タグの使い方の詳細は |29.1| を参照してください。
433 特定のヘルプ項目を見るには次のコマンドを使います: >
437 例えば "x" コマンドのヘルプを見るには次のようにします: >
441 文字の削除方法を調べるには次のようにします: >
445 Vim のコマンド一覧を見たい場合は次のようにします: >
449 コントロール文字コマンド (例えば CTRL-A) のヘルプを見るには、"CTRL-" に続けて
454 Vim にはいろんなモードがあります。特に指定がなければノーマルモードコマンドのヘ
455 ルプが表示されます。例えば、次のコマンドでノーマルモードの CTRL-H コマンドのヘ
460 他のモードを指定するにはプレフィクスを付けてください。例えば、挿入モードのヘル
461 プが見たいときには、"i_"を付けます。CTRL-H の場合なら次のようになります: >
465 Vim を起動するときにはコマンドライン引数を指定できます。引数は先頭が "-" で始
466 まります。例えば、"-t" 引数の意味を調べるには次のコマンドを使います: >
470 Vim にはオプションがたくさんあり、それを設定することでカスタマイズができます。
471 オプションのヘルプを見るには、アポストロフィでそれを囲ってください。例えば、
472 'number'オプションの意味を調べるには次のコマンドを使います: >
476 モードのプレフィクス一覧は |help-context| を参照してください。
478 特殊キー不等号で囲んで表記します。例えば、挿入モードの上矢印キーのヘルプを見る
483 例えば次のようなエラーメッセージが表示された場合:
485 E37: 最後の変更が保存されていません (! で変更を破棄) ~
487 行頭のエラーIDを使えばヘルプを検索できます: >
491 サマリー: *help-summary* >
494 < 一般的なヘルプを表示します。下へスクロールすると、全てのヘルプ
495 ファイルの一覧を表示します。ここには独自に追加された、Vim標準
496 には添付されていないヘルプファイルも含まれます。 >
498 < ユーザーマニュアルの目次を表示します。 >
500 < Exコマンド"subject"のヘルプ。例えば次のようなもの: >
504 < ノーマルモードコマンド"abc"のヘルプ。 >
506 < ノーマルモードコマンドにおけるキー<C-b>のヘルプ。 >
509 < インサートモードにおける特定のキーのヘルプ。 >
512 < ビジュアルモードにおける特定のキーのヘルプ。 >
515 < コマンドラインモードにおける特定のキーのヘルプ。 >
517 < オプション'subject'のヘルプ。 >
521 < コマンドラインオプション"-subject"のヘルプ。 >
523 < コンパイル時機能"+subject"のヘルプ。 >
525 < 自動コマンドイベント"EventName"のヘルプ。 >
527 < ヘルプファイル"digraph.txt"のトップ。
530 < "pattern"で始まるヘルプタグを検索。<Tab>を繰り返し押すと他の候
532 :help pattern<Ctrl-D>
533 < "pattern"にマッチするヘルプタグを全て表示する。 >
535 < 全ヘルプファイルの全テキストからパターン"pattern"を検索し、最
536 初のマッチへジャンプする。他のマッチへジャンプするには以下のコ
548 < quickfixウィンドウを開く/閉じる。quickfixウィンドウで
549 <Enter>を押すと、カーソル下の要素へジャンプする。
551 ==============================================================================
553 次章: |usr_03.txt| カーソルの移動
555 Copyright: see |manual-copyright| vim:tw=78:ts=8:ft=help:norl: