コピー/カット/ペースト操作を使用せずにエディターで作業することを想像するのは困難です。 Vimはこのための非常に強力なツールを提供します。 そのため、レジスタは、Vimがyでコピーまたはcまたはdで削除したテキストを置く場所ですが、それだけではありません。 Vimが配置する他のいくつかの特殊レジスターがあります。たとえば、 /で検索したテキストや、エディターウィンドウにドラッグアンドドロップしたテキストです。 特定のレジスタにテキストをコピーまたは削除することを示すには、コマンドの前に名前を指定する必要があります。 たとえば、 「ayyは文字列全体を登録するためにコピーします」a 。 ただし、すべてのレジスタを書き込むことができるわけではなく、一部のレジスタは読み取り専用です(さらに、書き込み専用のレジスタもあります)。
種のためにレジスタに関連付けられているもう少し特別なVimovskayaのマジック。最後まで読むのが面倒ではありませんでした。
-Vimは削除の小さな履歴を保持するため、その後に他のテキストを削除またはコピーした場合でも、以前に削除したテキストを貼り付けることができます。
-Vimには26個の名前の付いた「クリップボード」があり、そこにテキストを長時間追加でき、コピーや削除操作中に失われることはありません。
-Vimは、レジスタの内容を上書きせずにテキストをコピーまたは削除できますが、それに追加します。
Vimには次のタイプのレジスタがあります。
1.名前のないレジスタ"" 。 一種の「デフォルトレジスタ」。 コピーまたは削除するときに大文字と小文字を指定しなかった場合、テキストはここに配置されます。 ただし、テキストをレジスタ「a with 」ayyに明示的にコピーしても、テキストは「」で表示されます。 唯一の例外は特殊レジスタ"_で 、これについては以下で説明します。このレジスタを使用する場合、 " "の内容は変わりません。
2.番号付きレジスタ「0- 」9 。
レジスタ「0には、大文字小文字を区別せずにコピーされた最後のテキスト( y )が含まれます。 つまり、通常のyankはテキストをレジスタ""および"0に入れ、 " myはレジスタの内容を変更します""および"mが、内容を" 0のままにします。
レジスタ「1」には、削除中にレジスタが指定されておらず、テキストに少なくとも1行が含まれている場合、最後に削除されたテキストが含まれます(そうでない場合、 「1 」の代わりに特殊レジスタが使用されます)。移動コマンド% 、 ( 、 ) 、 ` 、 / 、 ? 、 n 、 N 、 {および}を使用します。テキストが削除されるたびに、レジスタ" 1の古い内容はレジスタ"2に配置され、 " 2の内容は"3に配置されます。さらに、レジスター9の内容は失われ、削除前にレジスター8の内容に置き換えられます。
3.レジスタ'' -1行未満で、レジスタの登録時に明示的に指定されなかった場合、削除されたテキストが含まれます。
4.名前付きレジスタ" a- " zまたは"A- "Z。 同じテキストを頻繁に貼り付ける必要があり、コピーまたは削除操作で上書きしたくない場合は、名前付きレジスタ「a-」zを使用します。
また、名前付きレジスタを使用して、削除またはコピーされたテキストを「蓄積」できます。 これを行うには、レジスタ"A- " Zを使用します。
5.読み取り専用レジスタ": 、 "。 、 「%および」#
":コマンドラインの最後の内容が含まれています。
"。は最後に挿入されたテキストを含みます(このテキストはCtrl + Aを使用して貼り付けモードでも挿入できます)
「%には現在のファイルの名前が含まれます
「#には代替ファイル(現在のファイルの前に編集されたファイル)の名前が含まれます
6. Expression case "= 。テキストを保存するためではなく、式計算の結果を挿入するために特別なマジックケースが使用されます。たとえば、挿入モードで
7.選択のための登録とドラッグアンドドロップ"* 、 " +および"〜 。
レジスタ「*」および「+」は、外部との通信に使用されます。 たとえば、Winでは、これらのレジスタの内容はWindowsクリップボードの内容と一致します。 つまり、Vimから別のアプリケーションにテキストをコピーするには、テキストをレジスタ「*」にコピー(または切り取り)し、必要に応じて貼り付けます。外部アプリケーションからVimにテキストをコピーするには、外部アプリケーションでテキストをコピーして貼り付けますVimのレジスタ"*から 。 レジスタ「* 」と「+ 」の違いは、X11のみです。 これらについては、 help x11-selectionで詳しく説明しています。
読み取り専用レジスタ〜には、Vimウィンドウにドラッグされたテキストが含まれます。
8.「ブラックホール」レジスタ " _ 。これは書き込み専用のレジスタです。削除時にデフォルトレジスタ" "およびデジタルレジスタ" 1〜 "9の内容を変更しないために使用されます。このレジスタからは何も起こりません。
9.最後の検索の登録"/ 。これは、最後の検索で使用された式を保存します。内容は、 nおよびNコマンドでも使用され、 'hlsearch'オプションがオンのときにテキストを強調表示します。
レジスタの内容を表示するには、コマンドregを使用します。 :パラメーターなしのregは、すべてのレジスターの内容を表示します。 レジスタ「3 」と「f 」の内容のみを表示するには、 reg 3fと書きます 。
そして最後に。 次のコマンドを使用して、レジスタの内容を変更できます。 例えば、 「/ register 」に書き込むには、 let:/ / =「the 。 」 と書きます 。または、例えば、レジスタmの内容を、以前に「保存した」システムクリップボードに入れます。 、次のように書くことができます:let @ * = @ m 。
ハッピーバイミング!