neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

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