Merge branch 'MacVim'
[MacVim/KaoriYa.git] / runtime / doc / usr_02.jax
blob2a803aa14d01c928de2a17585292906c0714ac1b
1 *usr_02.txt*    For Vim バージョン 7.2.  Last change: 2007 Feb 28
3                      VIM USER MANUAL - by Bram Moolenaar
5                                  初めての Vim
8 この章では、Vim を使ってファイルを編集するための最低限のことを説明します。操作
9 が下手でも遅くても、とにかく編集できるようになりましょう。この章に出てくるコマ
10 ンドはこれからの基礎になるものなので、少し時間をとって練習してください。
12 |02.1|  Vim の起動方法
13 |02.2|  文字の挿入
14 |02.3|  カーソル移動
15 |02.4|  文字の削除
16 |02.5|  undo (取り消し) と redo (やり直し)
17 |02.6|  他の編集コマンド
18 |02.7|  Vim の終了
19 |02.8|  ヘルプの引き方
21 次章: |usr_03.txt|  カーソルの移動
22 前章: |usr_01.txt|  マニュアルについて
23 目次: |usr_toc.txt|
25 ==============================================================================
26 *02.1*  Vim の起動方法
28 Vim を起動するには次のコマンドを入力します。 >
30         gvim file.txt
32 UNIXならコマンドプロンプトから実行できます。Microsoft Windows環境では、MS-DOS
33 プロンプトを開いて、入力してください。
34 Vim が起動して file.txt という名前のファイルの編集が開始されます。これは新しい
35 ファイルなので、ウィンドウは空になっています。次のような画面が表示されます:
37         +---------------------------------------+
38         |#                                      |
39         |~                                      |
40         |~                                      |
41         |~                                      |
42         |~                                      |
43         |"file.txt" [New file]                  |
44         +---------------------------------------+
45              ("#" はカーソルの位置です)
47 ティルド(~)の行は、ファイルにその行がないことを示しています。ファイルの
48 末尾より後ろを表示する場合にティルドが表示されます。画面の下の方に、編集中の
49 ファイル名は "file.txt" で、それが新しいファイルであることが表示されています。
50 このメッセージの表示は一時的なもので、他のメッセージが表示されると消えてしまい
51 ます。
54 VIM コマンド
55 ------------
57 gvim は編集用のウィンドウを新しく作ります。次のコマンドを使った場合は: >
59         vim file.txt
61 コマンドウィンドウの中で編集できます。つまり、xterm の中で実行すれば、Vim は
62 xterm ウィンドウを使います。Microsoft Windows の MS-DOS プロンプトを使っている
63 場合も、そのウィンドウの中で編集できます。gvim でも vim でもテキストは同じよう
64 に表示されますが、gvimにはメニューバーなどの追加機能があります。詳しくは後で述
65 べます。
67 ==============================================================================
68 *02.2*  文字の挿入
70 Vim はモード型エディタです。モードによって挙動が変わります。一番よく使うモード
71 は「ノーマルモード」と「挿入モード」です。ノーマルモードでは、入力した文字は
72 コマンドとして扱われます。挿入モードでは、入力した文字はそのまま挿入されます。
73 Vim を起動した直後はノーマルモードになっています。挿入モードに入るには、"i" コ
74 マンドを入力します (i は Insert の意)。これで、文章を入力できるようになります。
75 入力した文章はファイルに挿入されます。入力を間違えても心配する必要はありませ
76 ん。後から修正できます。プログラマーのリメリック(詩の一種)を入力して見ましょ
77 う。次のように入力します: >
79         iA very intelligent turtle
80         Found programming UNIX a hurdle
82 "turtle" を入力した後で <Enter> キーを押して改行します。最後に <Esc> キーを押
83 して挿入モードを終了し、ノーマルモードに戻ります。このとき、Vim ウィンドウには
84 次のような二行が表示されています。
86         +---------------------------------------+
87         |A very intelligent turtle              |
88         |Found programming UNIX a hurdle        |
89         |~                                      |
90         |~                                      |
91         |                                       |
92         +---------------------------------------+
95 今は何モード?
96 -------------
98 現在のモードを確認できるようにするには、次のコマンドを入力してください。 >
100         :set showmode
102 ":" (コロン記号) を入力すると、カーソルがウィンドウの最下段に移動します。ここ
103 はコロンコマンド (":"で始まるコマンド) を入力する場所です。<Enter> キーを押す
104 とコマンドが実行されます (コロンで始まるコマンドは全てこの方法を使います)。
105 さて、"i" コマンドを入力すると、ウィンドウの最下段に "― 挿入 ―" という表示が
106 現れます。これは、あなたが挿入モードにいることを示しています。
109         +---------------------------------------+
110         |A very intelligent turtle              |
111         |Found programming UNIX a hurdle        |
112         |~                                      |
113         |~                                      |
114         |― 挿入 ―                         |
115         +---------------------------------------+
117 <Esc> を押すとノーマルモードに戻り、最下段は空白になります。
120 トラブルを避ける
121 ----------------
123 Vim を使い始めたときはモードを混同しがちです。現在のモードを忘れてしまったり、
124 知らないうちに間違ってモードを変更してしまったりすることがあります。どのモード
125 にいる場合でも <Esc> を押せばノーマルモードに戻れます。<Esc> を二回押さなけれ
126 ばならないときもあります。ノーマルモードで <Esc> を押すとビープ音が鳴るので、
127 その場合は既にノーマルモードにいるということです。
129 ==============================================================================
130 *02.3*  カーソル移動
132 ノーマルモードでは、次のキーを使って移動できます:
134         h   左                                           *hjkl*
135         j   下
136         k   上
137         l   右
139 最初はでたらめなコマンドに思えるかもしれません。"l" キーで 右 (right) に移動す
140 るなんておかしいですね。しかしこれには合理的な理由があります。エディタで最もよ
141 く使うのはカーソル移動であり、これらのキーは右手のホームポジションにあるので
142 す。つまり、(特に 10 本の指を使ってタイプする人が) 最も速く打てる場所にコマン
143 ドが配置されています。
145         Note:
146         カーソルは矢印キーでも移動できます。しかし、ホームポジションから手を離
147         さなければならないので、編集速度は落ちてしまいます。一時間に数百回も移
148         動することを考えると、結構な時間が消費されることになります。
149         また、矢印キーが無いキーボードや、矢印キーの配置場所がおかしいキーボー
150         ドもあります。hjkl の使い方を知っていれば、そのような場合でも安心です。
152 コマンドを覚えるには、"h" は左にあって、"l" は右にあって、"j" は下を指してい
153 る、とでも覚えてください。図で示します: >
155                        k
156                    h     l
157                      j
159 移動コマンドを覚える一番の方法は使ってみることです。"i" コマンドを使って適当な
160 テキストを入力し、hjkl キーを使って動き回り、いろんな場所に文字を挿入してみて
161 ください。<Esc> キーを押してノーマルモードに戻るのを忘れずに。|vimtutor| を使っ
162 て練習してみるのもいいでしょう。
164 日本のユーザーへ、Hiroshi Iwataniさんは次のような提案をしています。
166                         Komsomolsk
167                             ^
168                             |
169            Huan Ho      <--- --->  Los Angeles
170         (Yellow river)      |
171                             v
172                           Java (ジャワ島。プログラミング言語のあれではない)
174 ==============================================================================
175 *02.4*  文字の削除
177 文字を削除したい場合は、文字の上にカーソルを移動して "x" を押します。(これはタ
178 イプライタを使っていた古い時代に、消したい文字の上に "xxxxxx" と印字していたの
179 と同じ感覚です)。例えば、例文の一行目にカーソルを移動して、xxxxxxx (xを7つ) 打
180 ち、"A very " を消してみましょう。その結果は次のようになります:
182         +---------------------------------------+
183         |intelligent turtle                     |
184         |Found programming UNIX a hurdle        |
185         |~                                      |
186         |~                                      |
187         |                                       |
188         +---------------------------------------+
190 さて、新しいテキストを挿入してみましょう。例えば次のように入力します: >
192         iA young <Esc>
194 "i" で挿入を開始し、"A young " を入力しています。最後に <Esc> キーを押して挿入
195 モードを抜けます。結果は次のようになります。
197         +---------------------------------------+
198         |A young intelligent turtle             |
199         |Found programming UNIX a hurdle        |
200         |~                                      |
201         |~                                      |
202         |                                       |
203         +---------------------------------------+
206 行削除
207 ------
209 行全体を消すには "dd" コマンドを使います。行が消された場所は、それ以降の行を上
210 げることで詰められます。
212         +---------------------------------------+
213         |Found programming UNIX a hurdle        |
214         |~                                      |
215         |~                                      |
216         |~                                      |
217         |                                       |
218         +---------------------------------------+
221 改行を取る
222 ----------
224 Vim では複数の行を一行にまとめることができます。これは行と行の間にある改行文字
225 を削除するのと同じです。それには "J" コマンドを使います。
226 例えば、次の二行があるとします:
228         A young intelligent ~
229         turtle ~
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" を削除します。結果は次のようになります:
247          intelligent turtle ~
249 "u" で直前の削除が取り消されます。最後に削除されたのは g なので、その文字が復
250 活します。
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 ~
266         Note:
267         "u" を二回押したときに、最初の状態に戻ってしまった場合は、Vi 互換モー
268         ドが設定されています。|not-compatible| を参照して正しく設定してくださ
269         い。
270         このマニュアルでは「Vim方式」の使い方を前提にしています。古き良き時代
271         の Vi 方式を使いたい場合は、細かい部分でマニュアルの説明と違うことがあ
272         るので注意してください。
275 redo (やり直し)
276 ---------------
278 undo し過ぎてしまった場合は、CTRL-R (redo) を押すことで、直前のコマンドを
279 取り消せます。つまり、undo を undo します。実際に二回 CTRL-R を押してみましょ
280 う。"A "の二文字が消えます。
282         young intelligent turtle ~
284 undo コマンドには特別なバージョン、"U" (行 undo) コマンドがあります。行 undo
285 コマンドは直前に編集した行のすべての変更を取り消します。このコマンドは、二回実
286 行すると、直前の "U" が取り消されます。
288         A very intelligent turtle ~
289           xxxx                          "very"を削除
291         A intelligent turtle ~
292                       xxxxxx            "turtle"を削除
294         A intelligent ~
295                                         "U" で行全体を元に戻す
296         A very intelligent turtle ~
297                                         "u" で "U" を undo
298         A intelligent ~
300 "u" が undo で、 CTRL-R が redo であるのに対し、"U" コマンドはそれ自身が変更コ
301 マンドです。ちょっとわかりにくいかも知れませんが心配はいりません。"u" と
302 CTRL-R があればどんな場合でも大丈夫だ、ってことです。詳細は |32.1| にあります。
304 ==============================================================================
305 *02.6*  他の編集コマンド
307 Vim には文章を編集するための数多くのコマンドがあります。下記、または|Q_in|を参
308 照してください。ここでは頻繁に使うものだけを述べます。
311 追記 (APPENDING)
312 ----------------
314 "i" コマンドはカーソルの前に文字列を挿入しますが、行末に文字を追加したいときは
315 はどうすればいいでしょうか? それにはカーソルの後ろに文を挿入できないといけませ
316 ん。"a" (append) コマンドで追記できます。
317 例えば、次の行を
319         and that's not saying much for the turtle. ~
320 このように変更したいとします
321         and that's not saying much for the turtle!!! ~
323 まずカーソルを行末のピリオドの上に動かし、"x" でピリオドを消します。この時カー
324 ソルは行末の turtle の "e" の上にあります。ここで、次のコマンドを入力します。
326         a!!!<Esc>
328 これで turtle の後ろに三つの "!" 記号が追加されます:
330         and that's not saying much for the turtle!!! ~
333 新しい行を開く
334 --------------
336 "o" コマンドを使うと、カーソルの下に新しい空の行が作成され、挿入モードに入りま
337 す。そのため、そのまま新しい行の文章を入力できます。
338 以下のような二行があり、カーソルが一行目のどこかにあるとします:
340         A very intelligent turtle ~
341         Found programming UNIX a hurdle ~
343 "o" コマンドを実行し、テキストを入力すると: >
345         oThat liked using Vim<Esc>
347 次のような結果になります:
349         A very intelligent turtle ~
350         That liked using Vim ~
351         Found programming UNIX a hurdle ~
353 "O" コマンド (大文字) を使うと、カーソルの上に空行を作成できます。
356 カウンタを使う
357 --------------
359 例えば、9 行上に移動したい場合、"kkkkkkkkk" とタイプすることもできますが、"9k"
360 コマンドでも同様に移動できます。実はほとんどのコマンドには回数を指定できます。
361 例えば上記の例では、"a!!!<Esc>" で三つの "!" 記号を追加しましたが、これは
362 "3a!<Esc>" と入力することもできます。最初の 3 はコマンドを三回実行することを指
363 定しています。同様に、三文字削除したい場合は "3x" を使います。カウントは必ず対
364 象となるコマンドの前に指定してください。
366 ==============================================================================
367 *02.7*  Vim の終了
369 Vim を終了するには "ZZ"コマンドを使います。ファイルが保存され、Vim が終了しま
370 す。
372         Note:
373         他の多くのエディタと違い、Vim は自動的にバックアップを作成しません。
374         "ZZ" と打つとファイルが上書きされるため、元に戻す方法はありません。バッ
375         クアップファイルを作成するように設定することもできます。|07.4|を参照し
376         てください。
379 変更を破棄する
380 --------------
382 ファイルを編集した後で、元の方が良かったと気づくことがあると思います。心配はい
383 りません。「全部投げ捨てて終了する」コマンドがあります。 >
385         :q!
387 コマンドを確定するには <Enter> キーが必要ですよ。お忘れなく。
389 詳細を説明すると、このコマンドは三つの部分から成っています。":" はコマンドライ
390 ンモードの開始、"q" コマンドはエディタを終了するコマンド、"!" はオーバーライド
391 修飾詞です。
392 変更を破棄するにはオーバーライド修飾詞が必要です。単に ":q" を実行した場合、エ
393 ラーメッセージが表示され、コマンドは実行されません:
395         E37: 最後の変更が保存されていません (! で変更を破棄) ~
397 オーバーライドを指定することで、「バカげたことをしてるように見えるのはわかって
398 る。でもボクは大人だし、本当にそうしたいんだ」と Vim に告げているわけです。
400 Vim を終了したくない場合は、":e!" コマンドでオリジナルのファイルを再読み込みで
401 きます。
403 ==============================================================================
404 *02.8*  ヘルプの引き方
406 知りたいことは何でも Vim のヘルプで調べることができます。どんどん調べてくださ
407 い!
408 次のコマンドでヘルプの総合案内が表示されます: >
410         :help
412 ヘルプは <F1> ファンクションキーでも表示できます。キーボードに <Help> キーがあ
413 る場合はそれも使えます。
414 ":help" に引数を指定しなかった場合は総合案内が表示されます。Vim の作者はとても
415 賢い (いや、すごい怠け者かも) ので、ヘルプウィンドウには普通の編集ウィンドウが
416 使われています。ヘルプウィンドの中ではすべてのノーマルモードコマンドが使えま
417 す。したがって、h, j, k, l で 上下左右に移動できます。
418 ヘルプウィンドウは、エディタを終了するのと同じコマンド ("ZZ") で閉じることがで
419 きます。この場合は、ヘルプウィンドウが閉じるだけで、Vim は終了しません。
421 ヘルプを読むと、縦棒 "|" で囲まれた文字に気づくと思います (例:|help|)。それは
422 ハイパーリンクです。その場所にカーソルを置いて、CTRL-] (タグジャンプ) を押す
423 と、そのヘルプにジャンプできます。(理由は省きますが、Vim ではハイパーリンクの
424 ことをタグと呼びます。CTRL-] はカーソル下の単語をタグとみなして、その場所にジャ
425 ンプします。)
426 ジャンプした後は CTRL-T (タグをポップする) で元の場所に戻れます。CTRL-O(古い
427 場所へのジャンプ)でも元に場所に戻れます。
429 ヘルプ画面の最上部に*help.txt*という表記があります。"*" で囲まれた名前はヘルプ
430 システムのタグ(ハイパーリンクの飛び先)を定義するために使われています。
431 タグの使い方の詳細は |29.1| を参照してください。
433 特定のヘルプ項目を見るには次のコマンドを使います: >
435         :help {subject}
437 例えば "x" コマンドのヘルプを見るには次のようにします: >
439         :help x
441 文字の削除方法を調べるには次のようにします: >
443         :help deleting
445 Vim のコマンド一覧を見たい場合は次のようにします: >
447         :help index
449 コントロール文字コマンド (例えば CTRL-A) のヘルプを見るには、"CTRL-" に続けて
450 その文字を指定します: >
452         :help CTRL-A
454 Vim にはいろんなモードがあります。特に指定がなければノーマルモードコマンドのヘ
455 ルプが表示されます。例えば、次のコマンドでノーマルモードの CTRL-H コマンドのヘ
456 ルプが表示されます: >
458         :help CTRL-H
460 他のモードを指定するにはプレフィクスを付けてください。例えば、挿入モードのヘル
461 プが見たいときには、"i_"を付けます。CTRL-H の場合なら次のようになります: >
463         :help i_CTRL-H
465 Vim を起動するときにはコマンドライン引数を指定できます。引数は先頭が "-" で始
466 まります。例えば、"-t" 引数の意味を調べるには次のコマンドを使います: >
468         :help -t
470 Vim にはオプションがたくさんあり、それを設定することでカスタマイズができます。
471 オプションのヘルプを見るには、アポストロフィでそれを囲ってください。例えば、
472 'number'オプションの意味を調べるには次のコマンドを使います: >
474         :help 'number'
476 モードのプレフィクス一覧は |help-context| を参照してください。
478 特殊キー不等号で囲んで表記します。例えば、挿入モードの上矢印キーのヘルプを見る
479 には次のコマンドを使います: >
481         :help i_<Up>
483 例えば次のようなエラーメッセージが表示された場合:
485         E37: 最後の変更が保存されていません (! で変更を破棄) ~
487 行頭のエラーIDを使えばヘルプを検索できます: >
489         :help E37
491 サマリー:                                   *help-summary*  >
493         :help
494 <               一般的なヘルプを表示します。下へスクロールすると、全てのヘルプ
495                 ファイルの一覧を表示します。ここには独自に追加された、Vim標準
496                 には添付されていないヘルプファイルも含まれます。 >
497         :help user-toc.txt
498 <               ユーザーマニュアルの目次を表示します。 >
499         :help :subject
500 <               Exコマンド"subject"のヘルプ。例えば次のようなもの: >
501         :help :help
502 <               ヘルプの探し方のヘルプ。 >
503         :help abc
504 <               ノーマルモードコマンド"abc"のヘルプ。 >
505         :help CTRL-B
506 <               ノーマルモードコマンドにおけるキー<C-b>のヘルプ。 >
507         :help i_abc
508         :help i_CTRL-B
509 <               インサートモードにおける特定のキーのヘルプ。 >
510         :help v_abc
511         :help v_CTRL-B
512 <               ビジュアルモードにおける特定のキーのヘルプ。 >
513         :help c_abc
514         :help c_CTRL-B
515 <               コマンドラインモードにおける特定のキーのヘルプ。 >
516         :help 'subject'
517 <               オプション'subject'のヘルプ。 >
518         :help subject()
519 <               関数"subject"のヘルプ。 >
520         :help -subject
521 <               コマンドラインオプション"-subject"のヘルプ。 >
522         :help +subject
523 <               コンパイル時機能"+subject"のヘルプ。 >
524         :help EventName
525 <               自動コマンドイベント"EventName"のヘルプ。 >
526         :help digraphs.txt
527 <               ヘルプファイル"digraph.txt"のトップ。
528                 他のヘルプファイルについても同様。 >
529         :help pattern<Tab>
530 <               "pattern"で始まるヘルプタグを検索。<Tab>を繰り返し押すと他の候
531                 補を検索する。 >
532         :help pattern<Ctrl-D>
533 <               "pattern"にマッチするヘルプタグを全て表示する。 >
534         :helpgrep pattern
535 <               全ヘルプファイルの全テキストからパターン"pattern"を検索し、最
536                 初のマッチへジャンプする。他のマッチへジャンプするには以下のコ
537                 マンドを使う: >
538             :cn
539 <                       次のマッチへ >
540             :cprev
541             :cN
542 <                       前のマッチへ >
543             :cfirst
544             :clast
545 <                       最初/最後のマッチへ >
546             :copen
547             :cclose
548 <                       quickfixウィンドウを開く/閉じる。quickfixウィンドウで
549                         <Enter>を押すと、カーソル下の要素へジャンプする。
551 ==============================================================================
553 次章: |usr_03.txt|  カーソルの移動
555 Copyright: see |manual-copyright|  vim:tw=78:ts=8:ft=help:norl: