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