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