neovim

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

commit 1e20f31aa3c86b771cd95e3ac4a8843574b98851
parent ddae46fba09498dff23a6129680a1bbbfefd10ee
Author: ite-usagi <77563904+ite-usagi@users.noreply.github.com>
Date:   Tue, 19 Aug 2025 02:46:56 +0900

docs(tutor): update Japanese tutor #35379


Diffstat:
Mruntime/tutor/ja/vim-01-beginner.tutor | 247+++++++++++++++++++++++++++++++++++++++++--------------------------------------
Mruntime/tutor/ja/vim-01-beginner.tutor.json | 70+++++++++++++++++++++++++++++++++++-----------------------------------
Aruntime/tutor/ja/vim-02-beginner.tutor | 192+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aruntime/tutor/ja/vim-02-beginner.tutor.json | 10++++++++++
4 files changed, 366 insertions(+), 153 deletions(-)

diff --git a/runtime/tutor/ja/vim-01-beginner.tutor b/runtime/tutor/ja/vim-01-beginner.tutor @@ -1,13 +1,16 @@ -# Neovimのチュートリアルへようこそ - Neovim は、このチュートリアルで説明するには多すぎる程のコマンドを備えた非常に強 +# Neovim のチュートリアルへようこそ + +# チャプター 1 + +Neovim は、このチュートリアルで説明するには多すぎる程のコマンドを備えた非常に強 力なエディターです。このチュートリアルは、あなたが Neovim を万能エディターとして 使いこなせるようになるのに十分なコマンドについて説明をするようになっています。 -このチュートリアルが、体を使うことで覚えられる仕組みになっていることを、心してお -かなければなりません。正しく学習するには実際にやってなければならないのです。 -テキストをただ読むだけでは、何がが重要だったか忘れてしまうでしょう! +このチュートリアルが、**実践**を通じて学ぶ仕組みになっていることを、心しておかなけれ +ばなりません。正しく学習するには実際に手を動かしてみなければならないのです。 +テキストをただ読むだけでは、何が重要だったか忘れてしまうでしょう! -それでは、CapsLock キーが押されていないことを確認した後、画面にレッスン 0が全部 +それでは、CapsLock キーが押されていないことを確認した後、画面にレッスン 0 が全部 表示されるところまで、`j`{normal} キーを押してカーソルを移動しましょう。 # レッスン 0 @@ -18,15 +21,15 @@ NOTE: 以下の練習用コマンドにはこの文章を変更するものも このチュートリアルはインタラクティブな設計になっており、あなたが知っておくべきこ とがいくつかあります。 --[このようなリンク](holy-grail )の上で [<Enter>](<Enter>) キーを押すことで、リンクされたヘルプを開くこと - ができます。 --もしくは、ドキュメントで検索したい単語の上で [K](K) キー(大文字)を押してみましょう。 - (注: 日本語の単語には対応していません。) --ヘルプウィンドウは `:q`{vim} `<Enter>`{normal} で閉じることができます。 +- [このようなリンク](holy-grail )の上で [<Enter>](<Enter>) キーを押すことで、リンクされたヘルプを開くこと + ができます。 +- または、ドキュメントで検索したい単語の上で [K](K) キー(大文字)を押してみましょう。 + (注: 日本語の単語には対応していません。) +- ヘルプウィンドウは `:q`{vim} `<Enter>`{normal} で閉じることができます。 画面の左端に ✗ が表示されている場合、その行にあるテキストを編集しなければなりま せん。正しいテキストに書き換えることで、左端の ✗ は ✓ に変わります。 - Neovim がいかに優れているか、おわかりいただけるでしょうか? +Neovim がどんなにステキか、おわかりいただけるでしょうか? また、次のようにコマンドを実行するよう求められることや、(後で詳しく説明します。) @@ -66,11 +69,11 @@ NOTE: カーソルキーでも移動できます。しかし hjkl に一度慣 # レッスン 1.2: NEOVIM の起動と終了 -!! NOTE: 以下のあらゆるステップを行う前に、このレッスンを全部読みましょう!! +!! NOTE: 以下のあらゆるステップを行う前に、このレッスンをすべて読みましょう!! 1. `<Esc>`{normal} キーを押しましょう。(確実にノーマルモードにするため) - 2. 次のようにタイプ: + 2. 次のようにタイプします: `:q!`{vim} `<Enter>`{normal} @@ -83,13 +86,13 @@ NOTE: カーソルキーでも移動できます。しかし hjkl に一度慣 4. これまでのステップを覚え自信がついたならば、ステップ 1 から 3 までを実際に試 して、エディタを1度終了してから再び起動しましょう。 - + NOTE: [:q!](:q) `<Enter>`{normal} は全ての変更を破棄します。 後に変更をファイルに保存する方法についても勉強していきましょう。 - 5. 1.3までカーソルを移動させましょう。 + 5. レッスン 1.3 までカーソルを移動させましょう。 -# レッスン 1.3: テキスト編集 - 削除 +# レッスン 1.3: テキスト編集: 削除 ** カーソルの下の文字を削除するには `x`{normal} を押します。 ** @@ -105,11 +108,11 @@ NOTE: [:q!](:q) `<Enter>`{normal} は全ての変更を破棄します。 5. 行が正しくなったら、レッスン 1.4 へ進みましょう。 -NOTE: 全てのレッスンを通じて、頭で覚えようとしないでください。 +NOTE: 全てのレッスンを通じて、頭だけで覚えようとしないでください。 実際に手を動かすことで、あなたの Neovim に対する理解度は広がっていきます。 復習のためにも、たまにこのチュートリアルをやり直してみてください。 -# レッスン 1.4: テキスト編集 - 挿入 +# レッスン 1.4: テキスト編集: 挿入 ** テキストを挿入(Insert)するには `i`{normal} を押します。 ** @@ -128,18 +131,18 @@ NOTE: 全てのレッスンを通じて、頭で覚えようとしないでく 5. 挿入の方法がわかったらレッスン 1.5 へ進みましょう。 -# レッスン 1.5: テキスト編集 - 追加 +# レッスン 1.5: テキスト編集: 追加 ** テキストを追加(Append)するには `A`{normal} を押しましょう。 ** 1. 以下の ✗ と示された最初の行にカーソルを移動しましょう。 カーソルがその行のどの文字上にあってもかまいません。 - + 2. [A](A) キー(大文字)を押してから、追加が必要な文字をタイプしましょう。 3. テキストを追加し終えたら、 `<Esc>`{normal} を押してノーマルモードに戻りましょう。 - 4. 2行目の ✗ と示された場所へ移動し、ステップ 2 から 3 を繰り返して文法を修正し + 4. 2行目の ✗ と示された場所へ移動し、ステップ 2 から 3 を繰り返して文章を修正し ましょう。 この 行 には 間違った テキスト が あり @@ -153,8 +156,7 @@ NOTE: 全てのレッスンを通じて、頭で覚えようとしないでく ** ファイルを保存して終了するには `:wq`{vim} とタイプします。 ** - -!! NOTE: 以下のあらゆるステップを行う前に、このレッスンを全部読みましょう!! +!! NOTE: 以下のあらゆるステップを行う前に、このレッスンをすべて読みましょう!! 1. レッスン 1.2 でやったように `:q!`{vim} を入力して、このチュートリアルを終了します。 もしくは、別のターミナルにアクセスできる場合、そこで以下の内容を行います。 @@ -164,9 +166,9 @@ NOTE: 全てのレッスンを通じて、頭で覚えようとしないでく $ nvim tutor ~~~ 'nvim' が Nvim エディタを起動するコマンド、'tutor' は編集したいファイルの名 - 前です。変更できるファイルの名前を使いましょう。 + 前です。編集可能なファイルを使いましょう。 - 3. 前のレッスンで学んだように、テキストを挿入、削除します。 + 3. 前のレッスンで学んだように、テキストを挿入したり、削除します。 4. 次のコマンドで変更をファイルに保存し、Neovim を終了します: ~~~ cmd @@ -176,20 +178,20 @@ NOTE: 全てのレッスンを通じて、頭で覚えようとしないでく 5. ステップ 1 でこのチュートリアルを終了した場合は再度起動した後、以下の要約へ 進みましょう。 - + 6. 以上のステップを読んで理解した上でこれを実行しましょう。 # レッスン 1 要約 1. カーソルは矢印キーもしくは hjkl キーで移動します。 - h (左) j (下) k (上) l (右) + h (左) j (下) k (上) l (右) - 2. シェルプロンプトからNeovimを起動するにはこのようにタイプします: + 2. シェルプロンプトから Neovim を起動するにはこのようにタイプします: ~~~ sh $ nvim FILENAME ~~~ - 3. Vim を終了するには: `<Esc>`{normal} `:q!`{vim} `<Enter>`{normal} とタイプします(変更を破棄)。 - もしくは: `<Esc>`{normal} `:wq`{vim} `<Enter>`{normal} とタイプします(変更を保存)。 + 3. Neovim を終了するには: `<Esc>`{normal} `:q!`{vim} `<Enter>`{normal} とタイプします(変更を破棄)。 + もしくは: `<Esc>`{normal} `:wq`{vim} `<Enter>`{normal} とタイプします(変更を保存)。 4. カーソルの下の文字を削除するには、ノーマルモードで `x`{normal} とタイプします。 @@ -214,9 +216,9 @@ NOTE: `<Esc>`{normal} キーを押すとノーマルモードに移行します 4. 単語を削除するために [d](d)[w](w) とタイプしましょう。 -この 文 紙 には いくつかの たのしい 必要のない 単語 が 含まれて います。 +この 文 紙 には いくつか たのしい 必要のない 単語 が 含まれて います。 - 5. 3 から 4 までを文が正しくなるまで繰り返し、レッスン 2.2 へ進みましょう。 + 5. ステップ 3 と 4 を文が正しくなるまで繰り返し、レッスン 2.2 へ進みましょう。 # レッスン 2.2: その他の削除コマンド @@ -239,21 +241,21 @@ NOTE: `<Esc>`{normal} キーを押すとノーマルモードに移行します テキストに変更を加える多くのコマンドは[オペレータ](operator)と[モーション](navigation)からなります。 削除(Delete)コマンド [d](d) のオペレータは次の様になっています: - d モーション + d モーション - それぞれ: - d - 削除コマンド。 - モーション - 何に対して働きかけるか(以下に挙げます)。 + それぞれ: + d - 削除コマンド。 + モーション - 何に対して働きかけるか(以下に挙げます)。 - モーション一覧の一部: - [w](w) - 次の単語の先頭まで。(カーソル位置の単語の先頭を除く) - [e](e) - 次の単語の末尾まで。(カーソル位置の単語の末尾を含む) - [$]($) - 行末まで。(カーソル位置の単語の末尾を含む) + モーション一覧の一部: + [w](w) - 次の単語の先頭まで。(カーソル位置の単語の先頭を除く) + [e](e) - 次の単語の末尾まで。(カーソル位置の単語の末尾を含む) + [$]($) - 行末まで。(カーソル位置の単語の末尾を含む) つまり `de`{normal} とタイプすると、カーソル位置から単語の終わりまでを削除します。 -NOTE: 冒険したい人は、ノーマルモードにてオペレータなしにモーションを押してみまし - ょう。カーソルが目的語一覧で示される位置に移動するはずです。 +NOTE: ノーマルモードにてオペレータなしにモーションを押すことで、先述した位置にカ + ーソルが移動します。 # レッスン 2.4: モーションにカウントを使用する @@ -273,20 +275,20 @@ This is just a line with words you can move around in. 6. レッスン 2.5 に進みましょう。 -# レッスン 2.5: より多くを削除するためにカウントを使用する +# レッスン 2.5: より多く削除するためにカウントを使用する ** オペレータとカウントをタイプすると、その操作が複数回繰り返されます。 ** 既述の削除のオペレータとモーションの組み合わせにカウントを追加することで、より多 くの削除が行えます: - d 数値 モーション + d 数値 モーション 1. ✗ と示された行の最初の大文字の単語にカーソルを移動しましょう。 2. 大文字の単語2つを `d2w`{normal} とタイプして削除します。 - 3. 連続した大文字の単語を、異なるカウントを指定した1つのコマンドで削除し、ステ - ップ 1 と 2 を繰り返します。 + 3. 異なるカウントを使ってステップ 1 と 2 を繰り返し、残りの連続した大文字の単語 + を削除します。 このABC DE行のFGHI JK LMN OP単語はQ RS TUV綺麗になった。 @@ -294,8 +296,8 @@ This is just a line with words you can move around in. ** 行全体を削除するには `dd`{normal} とタイプします。 ** -行全体を削除する頻度が多いので、Viのデザイナーは行の削除を d の2回タイプという簡 -単なものに決めました。 +行全体を削除する頻度が多いので、Vi のデザイナーは行の削除を d の2回タイプという +簡単なものに決めました。 1. 以下の詩の2行目にカーソルを移動します。 @@ -313,15 +315,15 @@ This is just a line with words you can move around in. 6) 砂糖は甘く 7) そして貴方も -# Lesson 2.7: THE UNDO COMMAND +# Lesson 2.7: やり直しコマンド ** 最後のコマンドを取り消す(Undo)には `u`{normal} を押します。`U`{normal} は行全体の取り消しです。** 1. 以下の ✗ と示された行にある、最初の間違いにカーソルを移動しましょう。 - + 2. `x`{normal} をタイプして最初のいらない文字を削除しましょう。 - 3. では、`u`{normal} をタイプして最後に実行したコマンドを取り消してしまいしょう。 + 3. では、`u`{normal} をタイプして最後に実行したコマンドを取り消しましょう。 4. 今度は、`x`{normal} を使用して行内の誤りを全て修正しましょう。 @@ -352,7 +354,7 @@ This is just a line with words you can move around in. それぞれ: - オペレータ - オペレータ - 削除 d の類で何をするか + オペレータ - オペレータ - 削除 [d](d) の類で何をするか [数値] - そのコマンドを何回繰り返すか モーション - テキストの何に対して働きかけるか、例えば: [w](w) (単語), @@ -391,7 +393,7 @@ NOTE: `P`{normal} (大文字 P)とタイプすることで、カーソルの前 1. 以下の ✗ と示された最初の行にカーソルを移動しましょう。 - 2. 最初の間違いの先頭にカーソルを移動しましょう。 + 2. 最初の間違いにカーソルを移動しましょう。 3. `r`{normal} とタイプし、間違っている文字を置き換える、正しい文字をタイプしましょう。 @@ -421,7 +423,7 @@ NOTE: 実際に試しましょう。決して覚えるだけにはしないこ This lubw has a few wptfd that mrrf changing usf the change operator. This line has a few words that need changing using the change operator. -ce は単語を削除した後、挿入モードに入ることに注意しましょう。 +[c](c)e は単語を削除した後、挿入モードに入ることに注意しましょう。 # レッスン 3.4: `c`{normal} を使用したその他の変更 @@ -468,10 +470,10 @@ NOTE: タイプ中の間違いはバックスペースキーを使って直す ** ファイル内での位置とファイルの状態を表示するには `<C-g>`{normal} をタイプします。 ファイル内の{count}行に移動するには `{count}G`{normal} をタイプします。 ** -NOTE: ステップを実行する前に、このレッスン全てに目を通しましょう!! +NOTE: ステップを実行する前に、このレッスンすべてに目を通しましょう!! 1. `<Ctrl>`{normal} を押したまま `g`{normal} を押しましょう。この操作を `<C-g>`{normal} と呼んでいます。 - ページの一番下にファイル名と行番号が表示されるはずです。 ステップ 3のために + ページの一番下にファイル名と行番号が表示されるはずです。 ステップ 3 のために 行番号を覚えておきましょう。 NOTE: 画面の右下隅にカーソルの座標が既に表示されているかもしれません。 @@ -487,7 +489,7 @@ NOTE: 画面の右下隅にカーソルの座標が既に表示されている # レッスン 4.2: 検索コマンド -** 語句を検索するには `/`{normal} と、前方検索する語句をタイプします。 ** +** 語句を検索するには `/`{normal} と、検索する語句をタイプします。 ** 1. ノーマルモードで `/`{normal} という文字をタイプします。画面一番下に `:`{normal} コマンドと同じ様 にカーソルが現れることに気づくでしょう。 @@ -495,7 +497,7 @@ NOTE: 画面の右下隅にカーソルの座標が既に表示されている 2. では、'errroor' `<Enter>`{normal} とタイプしましょう。これが検索したい単語です。 3. 同じ語句をもう一度検索するときは 単に [n](n) をタイプします。 - 逆方向に語句を検索するときは [N](N) をタイプします。 + 逆方向に同じ語句を検索するときは [N](N) をタイプします。 4. 逆方向に語句を検索する場合は、`/`{normal} の代わりに [?](?) コマンドを使用します。 @@ -509,19 +511,19 @@ NOTE: 検索がファイルの終わりに達すると、オプション ['wraps # レッスン 4.3: 対応する括弧を検索 -** 対応する ),] や } を検索するには `%`{normal} をタイプします。 ** +** 対応する ), ] や } を検索するには `%`{normal} をタイプします。 ** - 1. 下の ✓ で示された行で (,[ か { のどれかにカーソルを移動しましょう。 + 1. 下の ✓ で示された行で (, [ か { のどれかにカーソルを移動しましょう。 2. そこで [%](%) とタイプしましょう。 3. カーソルは対応する括弧に移動するはずです。 - 4. 最初の括弧に移動するには `%`{normal} とタイプしましょう。 + 4. もう一度 `%`{normal} とタイプすると元の括弧に移動します。 - 5. 他の (,),[,],{ や } でカーソルを移動し、`%`{normal} が何をしているか確認しましょう。 + 5. 他の (, ), [, ], {, } でカーソルを移動し、`%`{normal} が何をしているか確認しましょう。 -This ( is a test line with ('s, ['s ] and {'s } in it. )) +This ( is a test line with ('s, ['s, ] and {'s } in it. )) NOTE: この機能は括弧が一致していないプログラムのデバッグにとても役立ちます! @@ -547,22 +549,23 @@ NOTE: この機能は括弧が一致していないプログラムのデバッ Usually thee best time to see thee flowers is in thee spring. - 4. 複数行から見つかる文字の全ての箇所を変更するには + 4. 複数行から見つかる文字の全ての箇所を変更するには: ~~~ cmd :#,#s/old/new/g ~~~ #,# には置き換える範囲の開始と終了の行番号を指定する。 - (例えば、`1,3`は1行目から3行目を意味します。) + (例えば、`1,3`は1行目から3行目を意味します。) + ファイル全体で見つかるものに対して変更するには: ~~~ cmd :%s/old/new/g ~~~ - ファイル全体で見つかるものに対して変更する。 + + ファイル全体で見つかるものに対して、1つ1つ確認をとりながら変更するには: ~~~ cmd :%s/old/new/gc ~~~ - ファイル全体で見つかるものに対して、1つ1つ確認をとりながら変更する。 - + NOTE: 置き換えたいテキストをビジュアルモードで選択することもできます。 これについては少し後のレッスンで説明します。 @@ -578,8 +581,8 @@ NOTE: 置き換えたいテキストをビジュアルモードで選択する 検索の後の `n`{normal} は同じ方向の次の検索を、`N`{normal} は逆方向の検索をします。 `<C-o>`{normal} は場所を前に移し、`<C-i>`{normal} は場所を次に移動します。 - 3. (,),[,],{, もしくは } の上にカーソルがある状態で `%`{normal} をタイプすると対になる文 - 字へ移動します。 + 3. (, ), [, ], {, もしくは } の上にカーソルがある状態で `%`{normal} をタイプすると対にな + る文字へ移動します。 4. 現在行の最初の old を new に置換する。 ~~~ cmd @@ -593,7 +596,7 @@ NOTE: 置き換えたいテキストをビジュアルモードで選択する ~~~ cmd :#,#s/old/new/g ~~~ - ファイルの中の全ての検索語句を置換する。 + ファイルの中の全ての語句を置換する。 ~~~ cmd :%s/old/new/g ~~~ @@ -618,13 +621,13 @@ NOTE: 置き換えたいテキストをビジュアルモードで選択する NOTE: この方法によってあらゆるコマンドが実行することができます。 もちろん引数も与えられます。 -NOTE: 全ての `:`{vim} コマンドは `<Enter>`{normal} を押して終了しなければなりません。 +NOTE: 全ての `:`{vim} コマンドは `<Enter>`{normal} を押して実行しなければなりません。 # レッスン 5.2: その他のファイルへ書き込み ** ファイルへ変更を保存するには `:w`{vim} ファイル名 とタイプします。 ** - 1. ディレクトリの一覧を得るために `:!{unix:(ls),win:(dir)}`{vim} とタイプしましょう。 + 1. ディレクトリの一覧を得るために `:!ls`{vim} とタイプしましょう。 このあと `<Enter>`{normal} を押すのは既にご存知ですね。 2. TEST のように、そのディレクトリに無いファイル名を一つ選びます。 @@ -636,14 +639,14 @@ NOTE: 全ての `:`{vim} コマンドは `<Enter>`{normal} を押して終了し (TEST は、選んだファイル名です。) 4. これによりファイル全体が TEST という名前で保存されます。 - もう一度 `:!{unix:(ls),win:(dir)}`{vim} とタイプしてディレクトリを確認してみましょう。 + もう一度 `:!ls`{vim} とタイプしてディレクトリを確認してみましょう。 NOTE: ここで Neovim を終了し、`nvim TEST` で起動すると、保存した時の チュートリアルの複製ができ上がるはずです。 5. さらに、次のようにタイプしてファイルを消しましょう: ~~~ cmd - :!{unix:(rm),win:(del)} TEST + :!rm TEST ~~~ # レッスン 5.3: 選択した書き込み @@ -654,7 +657,7 @@ NOTE: ここで Neovim を終了し、`nvim TEST` で起動すると、保存し 2. [v](v) を押し、以下の第5項目にカーソルを移動します。 テキストが強調表示されるのに注目して下さい。 - 3. 文字 : を押すと、画面の最下部に + 3. 文字 `:`{normal} を押すと、画面の最下部に `:'<,'>`{vim} @@ -662,19 +665,19 @@ NOTE: ここで Neovim を終了し、`nvim TEST` で起動すると、保存し 4. 次のようにタイプします。 - `:w TEST`{vim} + `w TEST`{vim} - TEST は存在しないファイル名です。`<Enter>`{normal} を押す前に + TEST は存在しないファイル名です。`<Enter>`{normal} を押す前に `:'<,'>w TEST`{vim} となっていることを確認して下さい。 5. Vim は TEST というファイルに選択された行を書き込むでしょう。 - :`:!{unix:(ls),win:(dir)}`{vim} でそれを確認します。 + :`:!ls`{vim} でそれを確認します。 それは削除しないでおいて下さい。次のレッスンで使用します。 -NOTE: [v](v) を押すと、ビジュアル(Visual)選択が始まります。カーソルを動かすことで、 +NOTE: [v](v) を押すと、[ビジュアル(Visual)選択](visual-mode)が始まります。カーソルを動かすことで、 選択範囲を大きくも小さくもできます。さらに、その選択範囲に対してオペレータ を適用できます。例えば `d`{normal} はテキストを削除します。 @@ -684,8 +687,9 @@ NOTE: [v](v) を押すと、ビジュアル(Visual)選択が始まります。 1. カーソルをこの行のすぐ上に合わせます。 -NOTE: ステップ 2 の実行後、レッスン 5.3 のテキストが現れます。 - 下に下がってこのレッスンに移動しましょう。 +NOTE: ステップ 2 の実行後、ここにレッスン 5.3 のテキストが現れます。 + 下に下がってこのレッスンに移動しましょう。レッスンが終わったら `u`{normal} を押して + 変更を取り消してください。 2. では TEST というファイルを 次のコマンドで読み込みます。 @@ -696,11 +700,10 @@ NOTE: ステップ 2 の実行後、レッスン 5.3 のテキストが現れま 3. 取り込んだファイルを確認してみましょう。カーソルを戻すと、レッスン5.3 のオリ ジナルとファイルによるものの2つがあることがわかります。 - NOTE: 外部コマンドの出力を読み込むこともできます。例えば、 - `:r !{unix:(ls),win:(dir)}`{vim} + `:r !ls`{vim} は `ls` コマンドの出力をカーソル以下に読み込みます。 @@ -709,8 +712,8 @@ NOTE: 外部コマンドの出力を読み込むこともできます。例え 1. [:!command](:!cmd) によって、外部コマンドを実行する。 よく使う例: - `:!{unix:(ls ),win:(dir)}`{vim} - ディレクトリ内の一覧を見る。 - `:!{unix:(rm ),win:(del)} ファイル名`{vim} - ファイルを削除する。 + `:!ls `{vim} - ディレクトリ内の一覧を見る。 + `:!rm ファイル名`{vim} - ファイルを削除する。 2. [:w](:w) ファイル名 ファイル名 によってファイル名というファイルがディスクに書 き込まれる。 @@ -721,8 +724,7 @@ NOTE: 外部コマンドの出力を読み込むこともできます。例え 4. [:r](:r) ファイル名 によりファイル名というファイルがディスクより取り込まれ、 カーソル位置の下に挿入される。 - 5. {unix:([:r !ls](:r!) ),win:([:r !dir](:r!))} は {unix:(ls),win:(dir)} コマンドの - 出力をカーソル位置以下に読み込む。 + 5. [:r !ls](:r!) は ls コマンドの出力をカーソル位置以下に読み込む。 # レッスン 6.1: オープンコマンド @@ -733,11 +735,12 @@ NOTE: 外部コマンドの出力を読み込むこともできます。例え 2. `o`{normal} (小文字) をタイプして、カーソルの下の行を[開き](o)、挿入モードに入ります。 3. いくつか文字をタイプしてから、挿入モードを終了する為に `<Esc>`{normal} を入力します。 + その後、追加した行を削除してください。 `o`{normal} をタイプするとカーソルは開いた行へ移動し挿入モードに入ります。 - 4. カーソルの上の行に挿入するには、小文字の `o`{normal} ではなく、単純に[大文字の O](O)をタイ - プします。次の行で試してみましょう。 + 4. カーソルの上の行に挿入するには、小文字の `o`{normal} ではなく、[大文字の O](O) をタイプしま + す。次の行で試してみましょう。試し終わったら追加した行を削除してください。 この行の上へ挿入するには、この行へカーソルを置いて `O`{normal} をタイプします。 @@ -791,12 +794,12 @@ NOTE: 置換モードは挿入モードに似ていますが、全てのタイ 4. 次の行の行末までカーソルを移動します: `j$`{normal} - 5. `p`{normal} を押して貼り付け([put](put))てから、次をタイプします: a second <ESC> + 5. `p`{normal} を押してテキストを貼り付け([put](put))ます。 6. `a`{normal} を押してから、 "second" とタイプします。その後、`<Esc>`{normal} を押して挿入モードを 終了します。 - 7. ビジュアルモードで " item." を選択し、`y`{normal} で yank、次の行の行末まで `j$`{normal} で移動 + 7. ビジュアルモードで "item." を選択、`y`{normal} で yank、次の行の行末まで `j$`{normal} で移動 し、 `p`{normal} でテキストをそこに put します。 a) This is the first item. @@ -820,7 +823,7 @@ Neovim にはあなたの必要に応じて設定できる、様々なオプシ :set ic ~~~ 3. では `n`{normal} によってもう1度 'ignore' を検索します。 - "Ignore"や"IGNORE"も見つけられることに気づくでしょう。 + "Ignore" や "IGNORE" も見つけられることに気づくでしょう。 4. 'hlsearch' と 'incsearch' オプションを設定しましょう: ~~~ cmd @@ -832,11 +835,11 @@ Neovim にはあなたの必要に応じて設定できる、様々なオプシ ~~~ cmd :set noic ~~~ - 7. オプションの値を反転するには、先頭に "inv"を追加します: + 7. オプションの値を反転するには、先頭に "inv" を追加します: ~~~ cmd :set invic ~~~ -NOTE: マッチの強調表示をやめるには次の様に入力します: +NOTE: 検索結果の強調表示をやめるには次の様に入力します: ~~~ cmd :nohlsearch ~~~ @@ -859,17 +862,17 @@ NOTE: 1つの検索コマンドだけ大文字小文字の区別をやめたい 6. "[:set](:set) xxx" とタイプするとオプション "xxx" が設定される。 - 'ic' 'ignorecase' 検索時に大文字小文字の区別しない - 'is' 'incsearch' 検索フレーズに部分マッチしている部分を表示する - 'hls' 'hlsearch' マッチするすべてを強調表示する - + 'ic' 'ignorecase' 検索時に大文字小文字の区別しない + 'is' 'incsearch' 検索フレーズに部分マッチしている部分を表示する + 'hls' 'hlsearch' マッチするすべてを強調表示する + 正称、省略形、どちらのオプション名でも使用できる。 7. オプションを無効にするには "no" を付与する: ~~~ cmd :set noic ~~~ - 8. 先頭に "inv" オプションを反転する: + 8. 先頭に "inv" を付けてオプションを反転する: ~~~ cmd :set invic ~~~ @@ -879,7 +882,8 @@ NOTE: 1つの検索コマンドだけ大文字小文字の区別をやめたい Neovim には広範にわたるオンラインヘルプシステムがあります。 -ヘルプを開始するには、次の中でどれか1つを試してみましょう: +ヘルプを開始するには、次の内どれか1つを試してみましょう: + - `<F1>`{normal} キーを押す(もしあるならば)。 - `:help`{vim} とタイプする。 @@ -899,20 +903,20 @@ Neovim には広範にわたるオンラインヘルプシステムがありま ** `<C-d>`{normal} と `<Tab>`{normal} でコマンドラインを補完する ** - 1. 現在のディレクトリに在るものを表示します: `:!{unix:(ls),win:(dir)}`{vim} + 1. 現在のディレクトリに在るものを表示します: `:!ls`{vim} - 2. コマンドの先頭をタイプします: :e + 2. コマンドの先頭をタイプします: `:e`{vim} 3. `<C-d>`{normal} を押すと Neovim は "e" から始まるコマンドの一覧を表示します。 4. `<Tab>`{normal} を押すと、Neovim は可能な補完候補のメニューを表示します - (または、ただの一つのマッチがあるときは、補完します。 - 例: ":ed`<Tab>`{normal}" は":edit"に補完されます)。 + (または、ただの一つのマッチがあるときは、補完します。 + 例: ":ed`<Tab>`{normal}" は ":edit" に補完されます)。 - 5. 次のマッチに移動するには `<Tab>`{normal} または `<C-n>`{normal}を使用し、 - 前のマッチに移動するには `<S-Tab>`{normal} または `<C-p>`{normal}を使用します。 + 5. 次のマッチに移動するには `<Tab>`{normal} または `<C-n>`{normal} を使用し、 + 前のマッチに移動するには `<S-Tab>`{normal} または `<C-p>`{normal} を使用します。 - 6. `edit`{vim} を選択すると、コマンドラインに`edit` が挿入されます。 + 6. `edit`{vim} を選択すると、コマンドラインに `edit`{vim} が挿入されます。 7. さらに空白と、既存のファイル名の始まりを加えます: `:edit FIL`{vim} @@ -923,24 +927,24 @@ NOTE: 補完は多くのコマンドで動作します。特に `:help`{vim} の # レッスン 7.3: 設定ファイルの作成 -Neovim はとても自由度の高いエディタです。あなたの好きなようにカスタマイズするこ +Neovim はとても自由度の高いエディタです。あなたの思うがままにカスタマイズするこ とができます。より多くの機能を使い始めるには設定ファイルを作成します。 Lua を使 -いたい場合は "init.lua" にし、Vimscript を使いたい場合は "init.vim" にします。 +いたい場合は "init.lua" を、Vimscript を使いたい場合は "init.vim" にします。 このレッスンでは "init.lua" を使います。 1. `"init.lua"` ファイルを編集します。 `:exe 'edit' stdpath('config')..'/init.lua'`{vim} -2. Lua の例の設定を "init.lua" にコピーします。 +2. Lua 用の設定例を "init.lua" にコピーします。 `:read $VIMRUNTIME/example_init.lua`{vim} -3. ファイルを書き込みます(必要に応じて親ディレクトリも作成されます): +3. ファイルを書き込みます(必要に応じて親ディレクトリも作成されます): `:w ++p`{vim} -4. 次回 Neovim を起動したときに、以下のコマンドでこの設定ファイルを開けます: +4. 次に Neovim を起動した時、以下のコマンドでこの設定ファイルを開けます: `:e $MYVIMRC`{vim} @@ -960,12 +964,19 @@ Neovim はとても自由度の高いエディタです。あなたの好きな 6. お好みの設定を保つには設定ファイルを作成する。作成した設定ファイルは `:e $MYVIMRC`{vim} でいつでも開き直せます。 +# 次はなに? + +`:help nvim-quickstart`{vim} を実行すると Nvim を拡張する為の更なる情報を確認できます。 + # おわりに -これにて Neovim のチュートリアルを終わります。エディタを簡単に、しかも充分に使う -ことができるようにと、Neovim の持つ概念の要点のみを伝えようとしました。Neovim に -はさらに多くのコマンドがあり、ここで全てを説明することはできません。ヘルプを沢山 -活用してください。オンライン上にも数多の教材や動画を見つけることができます。 +これにて Neovim チュートリアルの チャプター 1 は終わりです。是非 [チャプター 2](@tutor:vim-02-beginner) に +挑戦してみてください。 + +このチュートリアルでは、エディタを簡単に、しかも充分に使うことができるようにと、 +Neovim の持つ概念の要点のみを伝えようとしました。Neovim にはさらに多くのコマンド +があり、ここで全てを説明することはできません。ヘルプを沢山活用してください。オン +ライン上にも数多の教材や動画を見つけることができます。 ここにいくつか紹介します: - *Learn Vim Progressively*: diff --git a/runtime/tutor/ja/vim-01-beginner.tutor.json b/runtime/tutor/ja/vim-01-beginner.tutor.json @@ -1,40 +1,40 @@ { "expect": { - "104": "その うさぎ は つき を こえて とびはねた", - "126": "この 行 には 幾つか 足りない テキスト が ある。", - "127": "この 行 には 幾つか 足りない テキスト が ある。", - "145": "この 行 には 間違った テキスト が あります。", - "146": "この 行 には 間違った テキスト が あります。", - "147": "ここ にも 間違った テキスト が あります。", - "148": "ここ にも 間違った テキスト が あります。", - "217": "この 文 には いくつかの 必要のない 単語 が 含まれて います。", - "233": "誰かがこの行の最後を2度タイプしました。", - "272": -1, - "291": "この行の単語は綺麗になった。", - "308": "1) 薔薇は赤く", - "309": "", - "310": "3) 菫は青く", + "107": "その うさぎ は つき を こえて とびはねた", + "129": "この 行 には 幾つか 足りない テキスト が ある。", + "130": "この 行 には 幾つか 足りない テキスト が ある。", + "148": "この 行 には 間違った テキスト が あります。", + "149": "この 行 には 間違った テキスト が あります。", + "150": "ここ にも 間違った テキスト が あります。", + "151": "ここ にも 間違った テキスト が あります。", + "219": "この 文 には いくつか 必要のない 単語 が 含まれて います。", + "235": "誰かがこの行の最後を2度タイプしました。", + "274": -1, + "293": "この行の単語は綺麗になった。", + "310": "1) 薔薇は赤く", "311": "", - "312": "", - "313": "6) 砂糖は甘く", - "314": "7) そして貴方も", - "335": "この行の間違いを修正し、後でそれらの修正を取り消します。", - "400": "この行を入力した時に、その人は幾つか間違ったキーを押しました!", - "401": "この行を入力した時に、その人は幾つか間違ったキーを押しました!", - "421": "This line has a few words that need changing using the change operator.", - "422": "This line has a few words that need changing using the change operator.", - "442": "The end of this line needs to be corrected using the c$ command.", - "443": "The end of this line needs to be corrected using the c$ command.", - "505": -1, - "524": -1, - "548": "Usually the best time to see the flowers is in the spring.", - "737": -1, - "742": -1, - "758": "This line will allow you to practice appending text to a line.", - "759": "This line will allow you to practice appending text to a line.", - "776": "Adding 123 to 456 gives you 579.", - "777": "Adding 123 to 456 gives you 579.", - "802": "a) This is the first item.", - "803": "b) This is the second item." + "312": "3) 菫は青く", + "313": "", + "314": "", + "315": "6) 砂糖は甘く", + "316": "7) そして貴方も", + "337": "この行の間違いを修正し、後でそれらの修正を取り消します。", + "402": "この行を入力した時に、その人は幾つか間違ったキーを押しました!", + "403": "この行を入力した時に、その人は幾つか間違ったキーを押しました!", + "423": "This line has a few words that need changing using the change operator.", + "424": "This line has a few words that need changing using the change operator.", + "444": "The end of this line needs to be corrected using the c$ command.", + "445": "The end of this line needs to be corrected using the c$ command.", + "507": -1, + "526": -1, + "550": "Usually the best time to see the flowers is in the spring.", + "740": -1, + "745": -1, + "761": "This line will allow you to practice appending text to a line.", + "762": "This line will allow you to practice appending text to a line.", + "779": "Adding 123 to 456 gives you 579.", + "780": "Adding 123 to 456 gives you 579.", + "805": "a) This is the first item.", + "806": "b) This is the second item." } } diff --git a/runtime/tutor/ja/vim-02-beginner.tutor b/runtime/tutor/ja/vim-02-beginner.tutor @@ -0,0 +1,192 @@ +# Neovim のチュートリアルへようこそ + +# チャプター 2 + + この先 危険! : もしこれがあなたにとって初めて Neovim に触れる機会で、入門用の + チャプターをまだ読んでいないのであれば、ぜひ、Neovim エディタに以下の文字列を + 入力してください。 +~~~ cmd + :Tutor vim-01-beginner +~~~ + または、[チャプター 1](@tutor:vim-01-beginner) をクリックしてください。 + + このチャプターを完了するのに必要な時間は、練習にどれだけ時間をかけるかによりま + すが、おおよそ 8~10 分です。 + + +# レッスン 2.1.1: 名前付きレジスタ + +** Store two yanked words concurrently and then paste them ** +** ヤンクした二つの単語を同時に保存し、それらをペーストします ** + + 1. 以下の ✓ と示された行にカーソルを移動します。 + + 2. 単語 'Edward' の上に移動した後、`"ayiw`{normal} とタイプします。 + +**覚え方**: *into register(") named (a) (y)ank (i)nner (w)ord* + *( レジスタに aという名の ヤンク 内側 単語 )* + + 3. 単語 'cookie' に移動(`fk`{normal}, `2fc`{normal}, `$2b`{normal} や `/co`{normal} `<ENTER>`{normal})し、`"byiw`{normal} とタイプします。 + + 4. 単語 'Vince' の上に移動した後、`ciw<CTRL-r>a<ESC>`{normal} とタイプします。 + +**覚え方**: *(c)hange (i)nner (w)ord with <contents of (r)egister> named (a)* + *( 変更 内側 単語 で <レジスタの内容> aという名の )* + + 5. 単語 'cake' の上に移動した後、`ciw<CTRL-r>b<ESC>`{normal} とタイプします。 + +a) Edward will henceforth be in charge of the cookie rations +b) In this capacity, Vince will have sole cake discretionary powers + +NOTE: 削除した文字列もレジスタに格納されます。例えば `"sdiw`{normal} はカーソル下の単語を + 削除し、レジスタ s に格納します。 + +REFERENCE: [レジスタ](registers) + [名前付きレジスタ](quotea) + [モーション](text-objects) + [CTRL-R](i_CTRL-R) + + +# レッスン 2.1.2: EXPRESSION レジスタ + +** 計算の結果をその場で挿入します ** + + 1. ✗ で示された行にカーソルを移動します。 + + 2. 行内の数字の上に移動します。 + + 3. 次のようにタイプします: `ciw<CTRL-r>=`{normal}60\*60\*24 `<ENTER>`{normal} + + 4. 次の行の末尾で挿入モードに入り、以下をタイプして今日の日付を追加します: + `<CTRL-r>=`{normal}`system('date')`{vim} `<ENTER>`{normal} + +NOTE: すべてのシステムコールは OS 依存です。例えば Windows では以下を使います: + `system('date /t')`{vim} または `:r!date /t`{vim} + +一日って何秒だっけ、 84600 秒かな? +本日の日付は: + +NOTE: 日付を入力するには、`:pu=`{normal}`system('date')`{vim} や、よりキーストロークの少ない + `:r!date`{vim} でも可能です。 + +REFERENCE: [Expression レジスタ](quote=) + + +# レッスン 2.1.3: 番号付きレジスタ + +** `yy`{normal} と `dd`{normal} のレジスタに対する効果を確認する ** + + 1. ✓ と示された行にカーソルを移動します。 + + 2. 0番目の行をヤンクした後、`:reg`{vim} '<ENTER>'{normal} でレジスタを調べます。 + + 3. `"cdd`{normal} で 0番目の行を削除して、再度レジスタを確認します。 + (0番目の行はどこにあると思いますか?) + + 4. 残りの行もそれぞれ削除しつつ、その都度 `:reg`{vim} 確認します。 + +NOTE: 新たに削除された項目が追加される度に、古い項目がリストの下に移動しているこ + とに気づきましたか? + + 5. 次の順番でレジスタをペーストします: c, 7, 4, 8, 2。例: `"7p`{normal} + +0. ねがわくは +9. おちゃめな +8. ゔぃまーと +7. いつまでも +6. むげんの +5. そんな +4. こうふくな +3. いかした +2. ならんことを +1. します + +NOTE: 行全体削除(`dd`{normal})は行全体ヤンクや一行以下の小さな削除に比べて、長期間番号付き + レジスタに保存されます。 + +REFERENCE: [番号付きレジスタ](quote0) + + +# レッスン 2.1.4: マークの美 + +** Code monkey arithmetic avoidance ** + +NOTE: 大きなコードの塊を動かすことはコーディングにおける面倒事の一つです。例えば + `"a147d`{normal} や `:945,1091d a`{vim} 、さらには `i<CTRL-r>=`{normal}1091-945 `<ENTER>`{normal} のような、コ + ード操作の為に行数の計算をするような事を避ける為のテクニックを紹介します。 + + 1. ✓ と示された行にカーソルを移動します。 + + 2. 関数の最初の行に移動して `ma`{normal} でマークします。 + +NOTE: 行内におけるカーソル位置は重要ではありません! + + 3. `$%`{normal} で行末からさらにコードブロックの末尾に移動します。 + + 4. `"ad'a`{normal} でコードブロックを削除しレジスタ a に格納します。 + +**覚え方**: *into register(") named (a) put the (d)eletion from the cursor to + the LINE containing mark(') (a)* + *( レジスタに a という名の 格納 削除を カーソルから + マーク a を含む行までの )* + + 5. `"ap`{normal} でコードブロックを BBB と CCC の間にペーストします。 + +NOTE: `ma$%"ad'a`{normal} という操作に慣れるまで何度も練習しましょう。 + +~~~ cmd +AAA +function itGotRealBigRealFast() { + if ( somethingIsTrue ) { + doIt() + } + // 関数の分類基準が変更されたため + // この位置ではアルファベット順にそぐわなくなってしまいました + + // ここに数百行のコードがあるとイメージしてください + + // 愚直に最初と最後の行番号を使って動かしても構いません +} +BBB +CCC +~~~ + +NOTE: レジスタとマークは名前空間を共有しません。したがってレジスタ a と マーク a + は完全に独立しています。レジスタとマクロの場合、これは該当しません。 + +REFERENCE: [マーク](marks) + [マークにおけるモーション](mark-motions) (' と \` の違いについて) + + +# レッスン 2.1 要約 + + 1. テキストを格納(ヤンク、削除)したり、取り出し(ペースト)できるレジスタが計26 + 個(a-z)存在する。 + 2. 単語全体をヤンクするには単語内の任意の位置で: `yiw`{normal} + 3. 単語全体を変更するには単語内の任意の位置で: `ciw`{normal} + 4. 挿入モードでレジスタから直接テキストを挿入するには: `<CTRL-r>a`{normal} + + 5. 単純な算術計算の結果を挿入するには、挿入モードで次のタイプ: + `<CTRL-r>=`{normal}60\*60 `<ENTER>`{normal} + 6. システムコールの結果を挿入するには、挿入モードで次をタイプ: + `<CTRL-r>=`{normal}`system('ls -1')`{vim} + + 7. レジスタを確認するには: `:reg`{vim} + 8. `dd`{normal} は 1 - 9 で降順の番号レジスタに格納される。行全体削除は他の操作より長期 + 間番号付きレジスタに保持される。 + 9. 番号付きレジスタにおいて、ヤンクされた内容は短時間で破棄される。 + + 10. コマンドモードでマークを設定するには: `m[a-zA-Z0-9]`{normal} + 11. マークへ行単位で移動するには `'`{normal} + + +# おわりに + + これにて Neovim チュートリアルの チャプター 2 は終わりです。 + これはまだ未完成です。 + + このチャプターは Paul D. Parker によって書かれました。 + + Modified for vim-tutor-mode by Restorer. + + 日本語訳 ite-usagi <https://github.com/ite-usagi> diff --git a/runtime/tutor/ja/vim-02-beginner.tutor.json b/runtime/tutor/ja/vim-02-beginner.tutor.json @@ -0,0 +1,10 @@ +{ + "expect": { + "38": -1, + "39": "b) In this capacity, Edward will have sole cookie discretionary powers", + "66": "一日って何秒だっけ、 86400 秒かな?", + "67": -1, + "93": -1, + "138": -1 + } +}