1=============================================================================== 2= V I M 教 本 (チュートリアル) へ よ う こ そ - Version 1.7 = 3=============================================================================== 4 5 Vim は、このチュートリアルで説明するには多すぎる程のコマンドを備えた非常 6 に強力なエディターです。このチュートリアルは、あなたが Vim を万能エディ 7 ターとして使いこなせるようになるのに十分なコマンドについて説明をするよう 8 になっています。 9 10 チュートリアルを完了するのに必要な時間は、覚えたコマンドを試すのにどれだ 11 け時間を使うのかにもよりますが、およそ25から30分です。 12 13 ATTENTION: 14 以下の練習用コマンドにはこの文章を変更するものもあります。練習を始める前 15 にコピーを作成しましょう("vimtutor"したならば、既にコピーされています)。 16 17 このチュートリアルが、使うことで覚えられる仕組みになっていることを、心し 18 ておかなければなりません。正しく学習するにはコマンドを実際に試さなければ 19 ならないのです。文章を読んだだけならば、きっと忘れてしまいます! 20 21 さぁ、Capsロックキーが押されていないことを確認した後、画面にレッスン1.1 22 が全部表示されるところまで、j キーを押してカーソルを移動しましょう。 23~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 24 レッスン 1.1: カーソルの移動 25 26 27 ** カーソルを移動するには、示される様に h,j,k,l を押します ** 28 ^ 29 k ヒント: h キーは左方向に移動します。 30 < h l > l キーは右方向に移動します。 31 j j キーは下矢印キーのようなキーです。 32 v 33 1. 移動に慣れるまで、スクリーンでカーソル移動させましょう。 34 35 2. 下へのキー(j)を押しつづけると、連続して移動できます。 36 これで次のレッスンに移動する方法がわかりましたね。 37 38 3. 下へのキーを使って、レッスン1.2 に移動しましょう。 39 40NOTE: 何をタイプしているか判らなくなったら、<ESC>を押してノーマルモードにし 41 ます。それから入力しようとしていたコマンドを再入力しましょう。 42 43NOTE: カーソルキーでも移動できます。しかし hjkl に一度慣れてしまえば、はるか 44 に速く移動することができるでしょう。いやマジで! 45 46~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 47 レッスン 1.2: VIM の起動と終了 48 49 50 !! NOTE: 以下のあらゆるステップを行う前に、このレッスンを読みましょう!! 51 52 1. <ESC>キーを押しましょう。(確実にノーマルモードにするため) 53 54 2. 次のようにタイプ: :q! <ENTER> 55 これにより編集した内容を保存せずにエディタが終了します。 56 57 3. このチュートリアルを始める為のコマンドを実行すると、ここに戻れます。 58 そのコマンドは: vimtutor <ENTER> 59 60 4. これまでのステップを覚え自信がついたならば、ステップ 1 から 3 までを実 61 際に試して、Vim を1度終了してから再び起動しましょう。 62 63NOTE: :q! <ENTER> は全ての変更を破棄します。レッスンにて変更をファイルに保 64 存する方法についても勉強していきましょう。 65 66 5. 1.3までカーソルを移動させましょう。 67 68~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 69 レッスン 1.3: テキスト編集 - 削除 70 71 72 ** ノーマルモードにてカーソルの下の文字を削除するには x を押します ** 73 74 1. 以下の ---> と示された行にカーソルを移動しましょう。 75 76 2. 間違いを修正するために、削除する最初の文字までカーソルを移動します。 77 78 3. 不必要な文字を x を押して削除しましょう。 79 80 4. 文が正しくなるまで ステップ 2 から 4 を繰り返しましょう。 81 82---> その ううさぎ は つつきき を こええてて とびはねたた 83 84 5. 行が正しくなったら、レッスン 1.4 へ進みましょう。 85 86NOTE: 全てのレッスンを通じて、覚えようとするのではなく実際にやってみましょう。 87 88 89 90 91~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 92 レッスン 1.4: テキスト編集 - 挿入 93 94 95 ** ノーマルモードにてテキストを挿入するには i を押します ** 96 97 1. 以下の ---> と示された最初の行にカーソルを移動しましょう。 98 99 2. 1行目を2行目と同じ様にするために、テキストを挿入しなければならない位置 100 の次の文字にカーソルを移動します。 101 102 3. i キーを押してから、追加が必要な文字をタイプしましょう。 103 104 4. 間違いを修正したら <ESC> を押してコマンドモードに戻り、正しい文になる様 105 にステップ 2 から 4 を繰り返しましょう。 106 107---> この には 足りない テキスト ある。 108---> この 行 には 幾つか 足りない テキスト が ある。 109 110 5. 挿入の方法がわかったらレッスン 1.5 へ進みましょう。 111 112 113 114~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 レッスン 1.5: テキスト編集 - 追加 116 117 118 ** テキストを追加するには A を押しましょう ** 119 120 1. 以下の ---> と示された最初の行にカーソルを移動しましょう。 121 カーソルがその文字上にあってもかまいません。 122 123 2. 追加が必要な場所で A をタイプしましょう。 124 125 3. テキストを追加し終えたら、 <ESC> を押してノーマルモードに戻りましょう。 126 127 4. 2行目の ---> と示された場所へ移動し、ステップ 2 から 3 を繰り返して文法 128 を修正しましょう。 129 130---> ここには間違ったテキストがあり 131 ここには間違ったテキストがあります。 132---> ここにも間違ったテキス 133 ここにも間違ったテキストがあります。 134 135 5. テキストの追加が軽快になってきたらレッスン 1.6 へ進みましょう。 136 137~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 レッスン 1.6: ファイルの編集 139 140 141 ** ファイルを保存して終了するには :wq とタイプします ** 142 143 !! NOTE: 以下のステップを実行する前に、まず全体を読んでください!! 144 145 1. レッスン 1.2 でやったように :q! をタイプして、このチュートリアルを終了 146 します。あるいは、別の端末がある場合はそこで以下の内容を行ってもかまい 147 ません。 148 149 2. シェルプロンプトでこのコマンドをタイプします: vim tutor <ENTER> 150 'vim' が Vim エディタを起動するコマンド、'tutor' は編集したいファイルの 151 名前です。変更してもよいファイルを使いましょう。 152 153 3. 前のレッスンで学んだように、テキストを挿入、削除します。 154 155 4. 変更をファイルに保存します: :wq <ENTER> 156 157 5. ステップ 1 で vimtutor を終了した場合は vimtutor を再度起動し、以下の 158 要約へ進みましょう。 159 160 6. 以上のステップを読んで理解した上でこれを実行しましょう。 161 162~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 163 レッスン 1 要約 164 165 166 1. カーソルは矢印キーもしくは hjkl キーで移動します。 167 h (左) j (下) k (上) l (右) 168 169 2. Vim を起動するにはプロンプトから vim ファイル名 <ENTER> とタイプします。 170 171 3. Vim を終了するには <ESC> :q! <ENTER> とタイプします(変更を破棄)。 172 もしくは <ESC> :wq <ENTER> とタイプします(変更を保存)。 173 174 4. カーソルの下の文字を削除するには、ノーマルモードで x とタイプします。 175 176 5. カーソルの位置に文字を挿入するには、ノーマルモードで i とタイプします。 177 i テキストのタイプ <ESC> カーソル位置に追加 178 A テキストの追加 <ESC> 行末に追加 179 180NOTE: <ESC> キーを押すとノーマルモードに移行します。その際、間違ったり入力途 181 中のコマンドを取り消すことができます。 182 183さて、続けてレッスン 2 を始めましょう。 184 185~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 186 レッスン 2.1: 削除コマンド 187 188 189 ** 単語の末尾までを削除するには dw とタイプしましょう ** 190 191 1. ノーマルモードであることを確認するために <ESC> を押しましょう。 192 193 2. 以下の ---> と示された行にカーソルを移動しましょう。 194 195 3. 消したい単語の先頭にカーソルを移動しましょう。 196 197 4. 単語を削除するために dw とタイプしましょう。 198 199 NOTE: タイプすると、dw という文字がスクリーンの最下行に現われます。 200 タイプを間違ってしまった時には <ESC> を押してやり直しましょう。 201 202---> この 文 紙 には いくつかの たのしい 必要のない 単語 が 含まれて います。 203 204 5. 3 から 4 までを文が正しくなるまで繰り返し、レッスン 2.2 へ進みましょう。 205 206 207 208~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 209 レッスン 2.2: その他の削除コマンド 210 211 212 ** 行の末尾までを削除するには d$ とタイプしましょう ** 213 214 1. ノーマルモードであることを確認するのに <ESC> を押しましょう。 215 216 2. 以下の ---> と示された行にカーソルを移動しましょう。 217 218 3. 正しい文の末尾へカーソルを移動しましょう(最初の 。 の後です)。 219 220 4. 行末まで削除するのに d$ とタイプしましょう。 221 222---> 誰かがこの行の最後を2度タイプしました。 2度タイプしました。 223 224 225 5. どういうことか理解するために、レッスン 2.3 へ進みましょう。 226 227 228 229 230 231~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 232 レッスン 2.3: オペレータとモーション 233 234 235 多くのコマンドはオペレータとモーションからテキストに変更を加えます。 236 削除コマンド d のオペレータは次の様になっています: 237 238 d モーション 239 240 それぞれ: 241 d - 削除コマンド。 242 モーション - 何に対して働きかけるか(以下に挙げます)。 243 244 モーション一覧の一部: 245 w - カーソル位置から空白を含む単語の末尾まで。 246 e - カーソル位置から空白を含まない単語の末尾まで。 247 $ - カーソル位置から行末まで。 248 249 つまり de とタイプすると、カーソル位置から単語の終わりまでを削除します。 250 251NOTE: 冒険したい人は、ノーマルモードにてコマンドなしにモーションを押して 252 みましょう。カーソルが目的語一覧で示される位置に移動するはずです。 253 254~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 レッスン 2.4: モーションにカウントを使用する 256 257 258 ** 何回も行いたい繰り返しのモーションの前に数値をタイプします。 ** 259 260 1. 以下の ---> と示された行の先頭にカーソルを移動します。 261 262 2. 2w をタイプして単語2つ分前に移動します。 263 264 3. 3e をタイプして3つ目の単語の終端に移動します。 265 266 4. 0 (ゼロ)をタイプして行頭に移動します。 267 268 5. ステップ 2 と 3 を違う数値を使って繰り返します。 269 270---> This is just a line with words you can move around in. 271 272 6. レッスン 2.5 に進みましょう。 273 274 275 276 277~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 レッスン 2.5: より多くを削除するためにカウントを使用する 279 280 281 ** オペレータとカウントをタイプすると、その操作が複数回繰り返されます。 ** 282 283 既述の削除のオペレータとモーションの組み合わせにカウントを追加することで、 284 より多くの削除が行えます: 285 d 数値 モーション 286 287 1. ---> と示された行の行頭部分にカーソルを移動しましょう。 288 289 2. UPPER CASE の単語2つを d2w とタイプして削除します。 290 291 3. UPPER CASE という連続した単語を、1つのコマンドと異なるカウントを指定し、 292 ステップ 1 と 2 を繰り返します。 293 294---> このABC DE行のFGHI JK LMN OP単語はQ RS TUV綺麗になった。 295 296NOTE: オペレータ d とモーションの間にカウントを使った場合、オペレータのない 297 場合のモーションのように動作します。 298 例: 3dw と d3w は同等で、3w を削除します。 299 300~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 レッスン 2.6: 行の操作 302 303 304 ** 行全体を削除するには dd とタイプします ** 305 306 行全体を削除する頻度が多いので、Viのデザイナーは行の削除を d の2回タイプと 307 いう簡単なものに決めました。 308 309 1. 以下の句の2行目にカーソルを移動します。 310 2. dd とタイプして行を削除します。 311 3. さらに4行目に移動します。 312 4. 2dd とタイプして2行を削除します。 313 314---> 1) バラは赤い、 315---> 2) つまらないものは楽しい、 316---> 3) スミレは青い、 317---> 4) 私は車をもっている、 318---> 5) 時計が時刻を告げる、 319---> 6) 砂糖は甘い 320---> 7) オマエモナー 321 322 323~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 レッスン 2.7: やり直しコマンド 325 326 327 ** 最後のコマンドを取り消すには u を押します。U は行全体の取消です。 ** 328 329 1. 以下の ---> と示された行にカーソルを移動し、最初の間違いにカーソル 330 を移動しましょう。 331 2. x をタイプしていらない先頭の文字を削除しましょう。 332 3. さぁ、u をタイプして最後に実行したコマンドを取り消しましょう。 333 4. 今度は、x を使用して誤りを全て修正しましょう。 334 5. 大文字の U をタイプして、行を元の状態に戻しましょう。 335 6. u をタイプして直前の U コマンドを取消しましょう。 336 7. ではコマンドを再実行するのに CTRL-R (CTRL を押したまま R を打つ)を数回 337 タイプしてみましょう(取消の取消)。 338 339---> このの行のの間違いを修正々し、後でそれらの修正をを取消しまますす。 340 341 8. これはとても便利なコマンドです。さぁレッスン 2 要約へ進みましょう。 342 343 344 345 346~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 347 レッスン 2 要約 348 349 350 1. カーソル位置から単語の末尾までを削除するには dw とタイプします。 351 2. カーソル位置から行の末尾までを削除するには d$ とタイプします。 352 3. 行全体を削除するには dd とタイプします。 353 354 4. モーションを繰り返すには数値を付与します: 2w 355 5. 変更に用いるコマンドの形式は 356 オペレータ [数値] モーション 357 358 それぞれ: 359 オペレータ - 削除 d の類で何をするか。 360 数値 - そのコマンドを何回繰り返すか。 361 モーション - w (単語)や $ (行末)などの類で、テキストの何に対して働きか 362 けるか。 363 364 6. 行の先頭に移動するにはゼロを使用します: 0 365 366 7. 前回の動作を取消す: u (小文字 u) 367 行全体の変更を取消す: U (大文字 U) 368 取消しの取消し: CTRL-R 369~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 370 レッスン 3.1: 貼り付けコマンド 371 372 373 ** 最後に削除された行をカーソルの後に貼り付けるには p をタイプします ** 374 375 1. 以下の段落の最初の行にカーソルを移動しましょう。 376 377 2. dd とタイプして行を削除し、Vim のバッファに格納しましょう。 378 379 3. 削除した行が本来あるべき位置の上の行まで、カーソルを移動させましょう。 380 381 4. ノーマルモードで p をタイプして格納した行を画面に戻します。 382 383 5. 順番が正しくなる様にステップ 2 から 4 を繰り返しましょう。 384 385 d) 貴方も学ぶことができる? 386 b) スミレは青い、 387 c) 知恵とは学ぶもの、 388 a) バラは赤い、 389 390 391 392~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 393 レッスン 3.2: 置き換えコマンド 394 395 396 ** カーソルの下の文字を置き換えるには r をタイプします ** 397 398 1. 以下の ---> と示された最初の行にカーソルを移動しましょう。 399 400 2. 最初の間違いの先頭にカーソルを移動しましょう。 401 402 3. r とタイプし、間違っている文字を置き換える、正しい文字をタイプしましょう。 403 404 4. 最初の行が正しくなるまでステップ 2 から 3 を繰り返しましょう。 405 406---> この合を人力した時ね、その人は幾つか問違ったキーを押しもした! 407---> この行を入力した時に、その人は幾つか間違ったキーを押しました! 408 409 5. さぁ、レッスン 3.3 へ進みましょう。 410 411NOTE: 実際に試しましょう。決して覚えるだけにはしないこと。 412 413 414 415~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 レッスン 3.3: 変更コマンド 417 418 419 ** 単語の一部、もしくは全体を変更するには cw とタイプします ** 420 421 1. 以下の ---> と示された最初の行にカーソルを移動しましょう。 422 423 2. lubw の u の位置にカーソルを移動しましょう。 424 425 3. cw とタイプし、正しい単語をタイプしましょう(この場合 'ine' とタイプ)。 426 427 4. 次の間違い(変更すべき文字の先頭)に移動するために <ESC> をタイプします。 428 429 5. 最初の行が次の行の様になるまでステップ 3 と 4 を繰り返します。 430 431---> This lubw has a few wptfd that mrrf changing usf the change operator. 432---> This line has a few words that need changing using the change operator. 433 434cw は単語を変更するだけでなく、挿入も行えることに注意しましょう。 435 436 437 438~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 439 レッスン 3.4: c を使用したその他の変更 440 441 442 ** 変更コマンドは、削除コマンドと同じ様にオブジェクトを使用します ** 443 444 1. 変更コマンドは、削除コマンドと同じような動作をします。その形式は 445 446 c [数値] モーション 447 448 2. オブジェクトも同じで、w は単語、 $ は行末などといったものです。 449 450 3. 以下の ---> と示された行にカーソルを移動しましょう。 451 452 4. 最初の間違いへカーソルを移動しましょう。 453 454 5. c$ とタイプして行の残りを2行目の様にし、<ESC> を押しましょう。 455 456---> The end of this line needs some help to make it like the second. 457---> The end of this line needs to be corrected using the c$ command. 458 459NOTE: タイプ中の間違いはバックスペースキーを使って直すこともできます。 460 461~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 レッスン 3 要約 463 464 465 1. 既に削除されたテキストを再配置するには、p をタイプします。これは削除さ 466 れたテキストをカーソルの後に挿入します(行単位で削除されたのならば、カー 467 ソルのある次の行に挿入されます)。 468 469 2. カーソルの下の文字を置き換えるには、r をタイプした後、それを置き換える 470 文字をタイプします。 471 472 3. 変更コマンドではカーソル位置から特定のモーションで指定される終端までを変 473 更することが可能です。例えば cw ならばカーソル位置から単語の終わりまで、 474 c$ ならば行の終わりまでを変更します。 475 476 4. 変更コマンドの形式は 477 478 c [数値] モーション 479 480さぁ、次のレッスンへ進みましょう。 481 482 483 484~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 レッスン 4.1: 位置とファイルの情報 486 487 ** ファイル内での位置とファイルの状態を表示するには CTRL-G をタイプします。 488 ファイル内のある行に移動するには G をタイプします ** 489 490 NOTE: ステップを実行する前に、このレッスン全てに目を通しましょう!! 491 492 1. CTRL を押したまま g を押しましょう。この操作を CTRL-G と呼んでいます。 493 ページの一番下にファイル名と行番号が表示されるはずです。 ステップ 3のため 494 に行番号を覚えておきましょう。 495 496NOTE: 画面の右下隅にカーソルの位置が表示されているかもしれません。これは 497 'ruler' オプション(:help 'ruler' を参照)を設定することで表示されます。 498 499 2. 最下行に移動するために G をタイプしましょう。 500 ファイルの先頭に移動するには gg とタイプしましょう。 501 502 3. 先ほどの行の番号をタイプし G をタイプしましょう。最初に CTRL-G を押した行 503 に戻って来るはずです。 504 505 4. 自信が持てたらステップ 1 から 3 を実行しましょう。 506 507~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 レッスン 4.2: 検索コマンド 509 510 511 ** 語句を検索するには / と、前方検索する語句をタイプします。** 512 513 1. ノーマルモードで / という文字をタイプします。画面一番下に : コマンドと 514 同じ様に / が現れることに気づくでしょう。 515 516 2. では、'errroor' <ENTER> とタイプしましょう。これが検索したい単語です。 517 518 3. 同じ語をもう一度検索するときは 単に n をタイプします。 519 逆方向に語句を検索するときは N をタイプします。 520 521 4. 逆方向に語句を検索する場合は、/ の代わりに ? コマンドを使用します。 522 523 5. 元の場所に戻るには CTRL-O (Ctrl を押し続けながら o 文字タイプ)をタイプし 524 ます。さらに戻るにはこれを繰り返します。CTRL-I は前方向です。 525 526---> "errroor" は error とスペルが違います; errroor はいわゆる error です。 527NOTE: 検索がファイルの終わりに達すると、オプション 'wrapscan' が設定されている 528 場合は、ファイルの先頭から検索を続行します。 529 530~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 レッスン 4.3: 対応する括弧を検索 532 533 534 ** 対応する ),] や } を検索するには % をタイプします ** 535 536 1. 下の ---> で示された行で (,[ か { のどれかにカーソルを移動しましょう。 537 538 2. そこで % とタイプしましょう。 539 540 3. カーソルは対応する括弧に移動するはずです。 541 542 4. 最初の括弧に移動するには % とタイプしましょう。 543 544 5. 他の (,),[,],{ や } でカーソルを移動し、% が何をしているか確認しましょう。 545 546---> This ( is a test line with ('s, ['s ] and {'s } in it. )) 547 548 549NOTE: この機能は括弧が一致していないプログラムをデバッグするのにとても役立ち 550 ます。 551 552 553~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 554 レッスン 4.4: 間違いを変更する方法 555 556 557 ** 'old' を 'new' に置換するには :s/old/new/g とタイプします ** 558 559 1. 以下の ---> と示された行にカーソルを移動しましょう。 560 561 2. :s/thee/the <ENTER> とタイプしましょう。このコマンドはその行で最初に見つ 562 かったものにだけ行われることに気をつけましょう。 563 564 3. では :s/thee/the/g とタイプしましょう。追加した g フラグは行全体を置換す 565 ることを意味します。この変更はその行で見つかった全ての箇所に対して行われ 566 ます。 567 568---> thee best time to see thee flowers is in thee spring. 569 570 4. 複数行から見つかる文字を変更するには 571 :#,#s/old/new/g #,# には置き換える範囲の開始と終了の行番号を指定しま 572 す。 573 :%s/old/new/g ファイル全体で見つかるものに対して変更する。 574 :%s/old/new/gc ファイル全体で見つかるものに対して、1つ1つ確認をとりな 575 がら変更する。 576 577~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 578 レッスン 4 要約 579 580 581 1. CTRL-G はファイルでの位置とファイルの詳細を表示します。 582 G はファイルの最下行に移動します。 583 数値 G はその行に移動します。 584 gg は先頭行に移動します。 585 586 2. / の後に語句をタイプすると前方に語句を検索します。 587 ? の後に語句をタイプすると後方に語句を検索します。 588 検索の後の n は同じ方向の次の検索を、N は逆方向の検索をします。 589 CTRL-O は場所を前に移し、CTRL-I は場所を次に移動します。 590 591 3. (,),[,],{, もしくは } 上にカーソルがある状態で % をタイプすると対になる文 592 字へ移動します。 593 594 4. 現在行の最初の old を new に置換する。 :s/old/new 595 現在行の全ての old を new に置換する。 :s/old/new/g 596 2つの # 間で語句を置換する。 :#,#s/old/new/g 597 ファイルの中の全ての検索語句を置換する。 :%s/old/new/g 598 'c' を加えると置換の度に確認を求める。 :%s/old/new/gc 599 600~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 601 レッスン 5.1: 外部コマンドを実行する方法 602 603 604 ** :! の後に実行する外部コマンドをタイプします ** 605 606 1. 画面の最下部にカーソルが移動するよう、慣れ親しんだ : をタイプしましょう。 607 これでコマンドがタイプできる様になります。 608 609 2. ここで ! という文字(感嘆符)をタイプしましょう。 610 これで外部シェルコマンドが実行できる様になります。 611 612 3. 例として ! に続けて ls とタイプし <ENTER> を押しましょう。 613 シェルプロンプトのようにディレクトリの一覧が表示されるはずです。 614 もしくは ls が動かないならば :!dir を使用しましょう。 615 616NOTE: この方法によってあらゆるコマンドが実行することができます。もちろん引数 617 も与えられます。 618 619NOTE: 全ての : コマンドは <ENTER> を押して終了しなければなりません。 620 以降ではこのことに言及しません。 621 622 623~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 レッスン 5.2: その他のファイルへ書き込み 625 626 627 ** ファイルへ変更を保存するには :w ファイル名 とタイプします ** 628 629 1. ディレクトリの一覧を得るために :!dir もしくは :!ls とタイプしましょう。 630 このあと <ENTER> を押すのは既にご存知ですね。 631 632 2. TEST のように、そのディレクトリに無いファイル名を一つ選びます。 633 634 3. では :w TEST とタイプしましょう (TEST は、選んだファイル名です)。 635 636 4. これによりファイル全体が TEST という名前で保存されます。 637 もう一度 :!dir もしくは :!ls とタイプして確認してみましょう。 638 639NOTE: ここで Vim を終了し、ファイル名 TEST と共に起動すると、保存した時の 640 チュートリアルの複製ができ上がるはずです。 641 642 5. さらに、次のようにタイプしてファイルを消しましょう(Windows): :!del TEST 643 もしくは(Unix): :!rm TEST 644 645 646~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 647 レッスン 5.3: 選択した書き込み 648 649 650** ファイルの位置を保存するには、v モーションと :w FILENAME をタイプします。 ** 651 652 1. この行にカーソルを移動します。 653 654 2. v を押し、以下の第5項目にカーソルを移動します。テキストが強調表示されるの 655 に注目して下さい。 656 657 3. 文字 : を押すと、画面の最下部に :'<,'> が現れます。 658 659 4. w TEST (TEST は存在しないファイル名)をタイプします。 660 <ENTER> を押す前に :'<,'>w TEST となっていることを確認して下さい。 661 662 5. Vim は TEST というファイルに選択された行を書き込むでしょう。 663 !dir もしくは !ls でそれを確認します。 664 それは削除しないでおいて下さい。次のレッスンで使用します。 665 666NOTE: v を押すと、Visual 選択が始まります。カーソルを動かすことで、選択範囲を 667 大きくも小さくもできます。さらに、その選択範囲に対してオペレータを適用 668 きます。例えば d はテキストを削除します。 669 670~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 671 レッスン 5.4: ファイルの取込と合併 672 673 674 ** ファイルの中身を挿入するには :r ファイル名 とタイプします ** 675 676 1. カーソルを以下の行に合わせます。 677 678NOTE: ステップ 2 の実行後、レッスン 5.3 のテキストが現れます。下に下がってこ 679 のレッスンに移動しましょう。 680 681 2. では TEST というファイルを :r TEST というコマンドで読み込みましょう。 682 ここでいう TEST は使うファイルの名前のことです。 683 読み込まれたファイルは、カーソル行の下にあります。 684 685 3. 取込んだファイルを確認してみましょう。カーソルを戻すと、レッスン5.3 の 686 オリジナルとファイルによるものの2つがあることがわかります。 687 688NOTE: 外部コマンドの出力を読み込むことも出来ます。例えば、 689 :r !ls は ls コマンドの出力をカーソル以下に読み込みます。 690 691 692 693~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 レッスン 5 要約 695 696 697 1. :!command によって 外部コマンドを実行します。 698 699 よく使う例: 700 (Windows) (Unix) 701 :!dir :!ls - ディレクトリ内の一覧を見る。 702 :!del FILENAME :!rm FILENAME - ファイルを削除する。 703 704 2. :w ファイル名 によってファイル名というファイルがディスクに書き込まれる。 705 706 3. v モーションで :w FILENAME とすると、ビジュアル選択行がファイルに保存さ 707 れる。 708 709 4. :r ファイル名 によりファイル名というファイルがディスクより取り込まれ、 710 カーソル位置の下に挿入される。 711 712 5. :r !dir は dir コマンドの出力をカーソル位置以下に読み込む。 713 714 715 716~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 レッスン 6.1: オープンコマンド 718 719 720 ** o をタイプすると、カーソルの下の行が開き、挿入モードに入ります ** 721 722 1. 以下の ---> と示された最初の行にカーソルを移動しましょう。 723 724 2. o (小文字) をタイプして、カーソルの下の行を開き、挿入モードに入ります。 725 726 3. さらに挿入モードを終了する為に <ESC> をタイプします。 727 728---> o をタイプするとカーソルは開いた行へ移動し挿入モードに入ります。 729 730 4. カーソルの上の行に挿入するには、小文字の o ではなく、単純に大文字の O 731 をタイプします。次の行で試してみましょう。 732 733---> この行の上へ挿入するには、この行へカーソルを置いて O をタイプします。 734 735 736 737 738 739~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 レッスン 6.2: 追加コマンド 741 742 743 ** カーソルの次の位置からテキストを追加するには a とタイプします ** 744 745 1. カーソルを ---> で示された最初の行へ移動しましょう。 746 747 2. e を押して li の終端部までカーソルを移動します。 748 749 3. カーソルの後ろにテキストを追加するために a (小文字) をタイプします。 750 751 4. その下の行のような単語に完成させます。挿入モードを抜ける為に <ESC> を押 752 します。 753 754 5. e を使って次の不完全な単語へ移動し、ステップ 3 と 4 を繰り返します。 755 756---> This li will allow you to pract appendi text to a line. 757---> This line will allow you to practice appending text to a line. 758 759NOTE: a, i と A は同じ挿入モードへ移りますが、文字が挿入される位置だけが異なり 760 ます。 761 762~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 レッスン 6.3: その他の置換方法 764 765 766 ** 1文字以上を置き換えるには大文字の R とタイプしましょう ** 767 768 1. 以下の ---> と示された行にカーソルを移動します。最初の xxx の先頭に移動し 769 ます。 770 771 2. R を押して、2行目の数値をタイプすることで、xxx が置換されます。 772 773 3. 置換モードを抜けるには <ESC> を押します。行の残りが変更されていないままに 774 なることに注意してください。 775 776 4. 残った xxx をステップを繰り返して置換しましょう。 777 778---> Adding 123 to xxx gives you xxx. 779---> Adding 123 to 456 gives you 579. 780 781NOTE: 置換モードは挿入モードに似ていますが、全てのタイプされた文字は既存の文字 782 を削除します。 783 784 785~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 レッスン 6.4: テキストのコピーとペースト 787 788 789 ** テキストのコピーにはオペレータ y を、ペーストには p を使います ** 790 791 1. ---> と示された行へ移動し、カーソルを "a)" の後に置いておきます。 792 793 2. v でビジュアルモードを開始し、"first" の手前までカーソルを移動します。 794 795 3. y をタイプして強調表示されたテキストを yank (コピー)します。 796 797 4. 次の行の行末までカーソルを移動します: j$ 798 799 5. p を押して貼り付け(put)てから、次をタイプします: a second <ESC> 800 801 6. ビジュアルモードで " item." を選択し、y でヤンク、次の行の行末まで j$ で 802 移動し、 p でテキストをそこに put します。 803 804---> a) this is the first item. 805 b) 806 807 NOTE: 単語を1つ yank するのに y をオペレータとして yw とすることも出来ます。 808~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 809 レッスン 6.5: オプションの設定 810 811 812 ** 検索や置換の際に大文字/小文字を無視するには、オプションを設定します ** 813 814 1. 次の様に入力して 'ignore' を検索しましょう: /ignore <ENTER> 815 n を押して何度か検索を繰り返します。 816 817 2. 次の様に入力して 'ic' (Ignore Case の略) オプションを設定します: :set ic 818 819 3. では n によってもう1度 'ignore' を検索します。 820 n を押してさらに数回検索を繰り返しましょう。 821 822 4. 'hlsearch' と 'incsearch' オプションを設定しましょう: :set hls is 823 824 5. 検索コマンドを再入力して、何が起こるか見てみましょう: /ignore <ENTER> 825 826 6. 大文字小文字の区別を無効にするには次の様に入力します: :set noic 827 828NOTE: マッチの強調表示をやめるには次の様に入力します: :nohlsearch 829NOTE: 1つの検索コマンドだけ大文字小文字の区別をやめたいならば、フレーズに \c 830 を使用します: /ignore\c <ENTER> 831~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 832 レッスン 6 要約 833 834 1. o をタイプするとカーソルの下の行を開けて、そこで挿入モードになる。 835 O (大文字) をタイプするとカーソルの上の行で挿入モードになる。 836 837 2. カーソル上の文字の次からテキストを追加するには a とタイプする。 838 行末に自動でテキストを挿入するには大文字 A をタイプする。 839 840 3. e コマンドは単語の終端部カーソルを移動する。 841 842 4. y オペレータはテキストを yank (コピー)し、p はそれを put (ペースト)する。 843 844 5. 大文字の R をタイプすると置換モードに入り、<ESC>を押すと抜ける。 845 846 6. ":set xxx" とタイプするとオプション "xxx" が設定される。 847 'ic' 'ignorecase' 検索時に大文字小文字の区別しない 848 'is' 'incsearch' 検索フレーズに部分マッチしている部分を表示する 849 'hls' 'hlsearch' マッチするすべてを強調表示する 850 長い方、短い方、どちらのオプション名でも使用できます。 851 852 7. オプションを無効にするには "no" を付与します: :set noic 853 854~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 855 レッスン 7.1: オンラインヘルプコマンド 856 857 858 ** オンラインヘルプを使用しましょう ** 859 860 Vim には広範にわたるオンラインヘルプシステムがあります。 861 ヘルプを開始するには、これら3つのどれか1つを試してみましょう: 862 - ヘルプキー <HELP> を押す(もしあるならば)。 863 - <F1> キーを押す(もしあるならば)。 864 - :help <ENTER> とタイプする。 865 866 ヘルプウィンドウのテキストを読むと、ヘルプの動作が理解できます。 867 CTRL-W CTRL-W とタイプすると ヘルプウィンドウへジャンプします。 868 :q <ENTER> とタイプすると ヘルプウィンドウが閉じられます。 869 870 ":help" コマンドに引数を与えることにより、あらゆる題名のヘルプを見つけること 871 ができます。これらを試してみましょう(<ENTER> をタイプし忘れないように): 872 873 :help w 874 :help c_CTRL-D 875 :help insert-index 876 :help user-manual 877~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 878 レッスン 7.2: 起動スクリプトの作成 879 880 ** Vim の特徴を発揮する ** 881 882 Vim には Vi よりも多くの特徴を踏まえていますが、そのほとんどは初期状態にて 883 使用不可となっています。より多くの特徴を使いはじめるには "vimrc" ファイル 884 を作成します。 885 886 1. "vimrc" ファイルの編集を開始する。これはシステムに依存します。 887 :edit ~/.vimrc UNIX 向け 888 :edit ~/_vimrc Windows 向け 889 890 2. ここでサンプルの "vimrc" を読み込みます。 891 :read $VIMRUNTIME/vimrc_example.vim 892 893 3. 以下のようにファイルへ書き込みます。 894 :write 895 896 次回 Vim を起動すると、色づけ構文が使えるようになるでしょう。 897 この "vimrc" ファイルへ、お好みの設定を追加することができます。 898 より多くの情報を得るには :help vimrc-intro とタイプします。 899 900~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 901 レッスン 7.3: 補完 902 903 904 ** CTRL-D と <TAB> でコマンドラインを補完する ** 905 906 1. 互換モードでないことを確認します: :set nocp 907 908 2. 現在のディレクトリに在るファイルを :!ls か :!dir で確認します。 909 910 3. コマンドの開始をタイプします: :e 911 912 4. CTRL-D を押すと Vim は "e" から始まるコマンドの一覧を表示します。 913 914 5. d<TAB> とタイプすると Vim は ":edit" というコマンド名を補完します。 915 916 6. さらに空白と、既存のファイル名の始まりを加えます: :edit FIL 917 918 7. <TAB> を押すと Vim は名前を補完します。(もし一つしか無かった場合) 919 920NOTE: 補完は多くのコマンドで動作します。そして CTRL-D と <TAB> 押してみてくだ 921 さい。特に :help の際に役立ちます。 922 923~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 924 レッスン 7 要約 925 926 927 1. ヘルプウィンドウを開くには :help とするか <F1> もしくは <HELP> を押す。 928 929 2. コマンド(cmd)のヘルプを検索するには :help cmd とタイプする。 930 931 3. 別のウィンドウへジャンプするには CTRL-W CTRL-W とタイプする。 932 933 4. ヘルプウィンドウを閉じるには :q とタイプする。 934 935 5. お好みの設定を保つには vimrc 起動スクリプトを作成する。 936 937 6. : command で可能な補完を見るには CTRL-D をタイプする。 938 補完を使用するには <TAB> を押す。 939 940 941 942 943 944 945 946~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 947 948 これにて Vim のチュートリアルを終わります。エディタを簡単に、しかも充分に 949 使うことができるようにと、Vim の持つ概念の要点のみを伝えようとしました。 950 Vim にはさらに多くのコマンドがあり、ここで全てを説明することはできません。 951 以降はユーザーマニュアルを参照ください: ":help user-manual" 952 953 これ以後の学習のために、次の本を推薦します。 954 Vim - Vi Improved - by Steve Oualline 955 出版社: New Riders 956 最初の本は完全に Vim のために書かれました。とりわけ初心者にはお奨めです。 957 多くの例題や図版が掲載されています。 958 次のURLを参照して下さい http://iccf-holland.org/click5.html 959 960 次は Vim よりも Vi について書かれた古い本ですが推薦します: 961 Learning the Vi Editor - by Linda Lamb 962 出版社: O'Reilly & Associates Inc. 963 Vi でやりたいと思うことほぼ全てを知ることができる良書です。 964 第6版では、Vim についての情報も含まれています。 965 966 このチュートリアルは Colorado State University の Charles Smith のアイデア 967 を基に、Colorado School of Mines の Michael C. Pierce と Robert K. Ware の 968 両名によって書かれました。 E-mail: [email protected]. 969 970 Modified for Vim by Bram Moolenaar. 971 972 日本語訳 松本 泰弘 <[email protected]> 973 vim-jpチーム <https://github.com/vim-jp/lang-ja> 974 監修 村岡 太郎 <[email protected]> 975 976~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 977 vi:set ts=8 sts=4 sw=4 tw=78: 978