Nvim の:help
ページ。 生成された ソースは こちら。 tree-sitter-vimdoc パーサーを使用。
<BS>
キーは既に説明しました。カーソル直前の文字を削除します。<Del>
キーは、カーソル下(後)の文字を削除します。単語全体を間違って入力した場合は、CTRL-W
を使用します。CTRL-W
CTRL-U
を使用して削除します。これにより、カーソル後のテキストとインデントが保持されます。最初の空白でない文字からカーソルまでのテキストのみが削除されます。次の行の「fallen」の「f」にカーソルを置いた状態でCTRL-U
を押すと、次のようになります。CTRL-U
<Esc>4blraA
<Esc>
4単語戻る 4b 「o」の上に移動 l 「a」に置換 ra 挿入モードを再開 A<C-Left><C-Left><C-Left><C-Left><Right><Del>a<End>
<C-Left>
<C-Left>
<C-Left>
<C-Left>
「o」の上に移動 <Right>
「o」を削除 <Del>
「a」を挿入 a 行末に移動 <End>
<End>
キーはキーボードを見ずに押すのが困難です)。これらの特別なキーは、挿入モードを終了しないマッピングを作成する場合に最も役立ちます。その場合、追加の入力は問題になりません。挿入モードで使用できるキーの概要を以下に示します。<C-Home>
ファイルの先頭へ <PageUp>
1画面分上へ <Home>
行の先頭へ <S-Left>
1単語左へ <C-Left>
1単語左へ <S-Right>
1単語右へ <C-Right>
1単語右へ <End>
行の末尾へ <PageDown>
1画面分下へ <C-End>
ファイルの末尾へ:set showmatchここで「(example)」のようなテキストを入力すると、)を入力した直後に、Vimはカーソルを対応する(に一時的に移動し、0.5秒間保持してから、入力位置に戻ります。対応する(がない場合、Vimはビープ音を鳴らします。(をどこかで忘れ、または)を多く入力した可能性があることを示しています。マッチは[]と{}のペアにも表示されます。次の文字を入力するまで待つ必要はありません。Vimがそれを認識するとすぐにカーソルが戻り、以前と同様に挿入が続きます。 'matchtime'オプションを使用して、Vimが待つ時間を変更できます。たとえば、Vimに1.5秒待たせるには
:set matchtime=15時間は10分の1秒単位で指定されます。
CTRL-P
を押すと、Vimが残り部分を推測します。たとえば、Cプログラムを作成していて、次のように入力するとします。CTRL-P
コマンドを使用してVimに単語の補完を指示します。Vimはカーソルの前にある文字で始まる単語を検索します。この場合は「ch_」で、単語ch_arrayと一致します。そのため、CTRL-Pを入力すると、次のようになります。CTRL-P
を入力すると、Vimはカーソルの前の単語を補完する単語を再度検索します。カーソルの前に何もないため、逆方向の最初の単語である「ch_array」が見つかります。CTRL-P
をもう一度入力すると、次の単語「total」が一致する単語として表示されます。3回目のCTRL-P
はさらに後ろを検索します。他に何もない場合、エディタは単語を使い果たすため、元のテキスト(何もない)に戻ります。4回目のCTRL-Pでエディタは「ch_array」から再開します。CTRL-N
を使用します。検索はファイルの末尾で折り返されるため、CTRL-N
とCTRL-P
は同じ一致を見つけることができますが、シーケンスは異なります。ヒント:CTRL-N
は次のマッチ、CTRL-P
は前のマッチです。CTRL-X
CTRL-F
ファイル名 CTRL-X
CTRL-L
行全体 CTRL-X
CTRL-D
マクロ定義(含まれているファイルにも) CTRL-X
CTRL-I
現在のファイルと含まれているファイル CTRL-X
CTRL-K
辞書の単語 CTRL-X
CTRL-T
類義語辞典の単語 CTRL-X
CTRL-]
タグ CTRL-X
CTRL-V
VimコマンドラインCTRL-N
を使用して次のマッチを見つけ、CTRL-P
を使用して前のマッチを見つけることができます。これらのコマンドの詳細については、ins-completionを参照してください。CTRL-X
CTRL-F
を取り上げます。これはファイル名を見つけます。現在のディレクトリでファイルがスキャンされ、カーソルの前の単語と一致するファイルがそれぞれ表示されます。たとえば、現在のディレクトリに次のファイルがあるとします。CTRL-X
CTRL-F
コマンドを入力します。Vimは、現在のディレクトリのファイルを参照して、現在の単語「sub」を補完します。最初のマッチはsub_count.cです。これは目的のものではないため、CTRL-N
を入力して次のファイルにマッチします。このマッチはsub_done.cです。CTRL-N
をもう一度入力すると、sub_exit.cになります。結果は次のとおりです。CTRL-X
CTRL-F
を入力します。これにより「/usr」と一致します(これはUnix上です)。CTRL-N
を押すと、「/u」に戻ります。「/usr/」を受け入れて1ディレクトリレベル深く移動するには、CTRL-X
CTRL-F
を再度使用します。CTRL-X
CTRL-O
です。明らかに、Oはオムニを表しており、覚えやすくなっています。Cソースの編集の例を使用してみましょう。{ struct foo *p; p->カーソルは「p->」の後です。ここで
CTRL-X
CTRL-O
を入力します。Vimは代替案のリストを提供します。これは「struct foo」に含まれるアイテムです。これは、任意の単語を補完するCTRL-P
を使用する場合とは大きく異なります。ここでは「struct foo」のメンバーのみが有効です。filetype plugin onまたは
filetype plugin indent onCコードの場合は、タグファイルを作成し、'tags'オプションを設定する必要があります。ft-c-omniで説明されています。他のファイルタイプでは、同様の処理が必要になる場合があります。compl-omni-filetypes以下を参照してください。特定のファイルタイプでのみ機能します。'omnifunc'オプションの値を確認して、機能するかどうかを確認してください。
CTRL-A
を押すと、最後に挿入モードにあったときにタイプしたテキストが挿入されます。たとえば、次のように始まるファイルがあるとします。"file.h" ~ /* Main program begins */ ~このファイルを編集して、最初の行の先頭に「#include 」を挿入します。
#include "file.h" ~ /* Main program begins */ ~「j^」コマンドを使用して次の行の先頭に移動します。ここで新しい「#include」行の挿入を開始します。そのため、次のように入力します。
i CTRL-A結果は次のようになります。
#include "file.h" ~ #include /* Main program begins */ ~
CTRL-A
は前の挿入のテキストを挿入するため、「#include 」が挿入されました。「main.h」<Enter>を入力して行を終了します。#include "file.h" ~ #include "main.h" ~ /* Main program begins */ ~
CTRL-@
コマンドはCTRL-A
を実行してから挿入モードを終了します。これは、まったく同じ挿入を再び実行する迅速な方法です。CTRL-Y
コマンドは、カーソルの上の文字を挿入します。これは、前の行を複製する場合に便利です。たとえば、次のCコードの行があるとします。CTRL-Y
を14回押して、「next」の「n」まで移動します。CTRL-Y
を押し続けます。CTRL-E
コマンドは、カーソル下の文字を挿入する点を除いて、CTRL-Y
コマンドと同様の動作をします。CTRL-R
{register}
コマンドは、レジスタの内容を挿入します。これは、長い単語を何度もタイプする手間を省くのに役立ちます。例えば、以下を入力する必要があるとします。"vyiw「v」はレジスタ指定、「yiw」はヤンク・インナワードです。新しい行を挿入するファイルを開き、最初の文字を入力します。
CTRL-R
vを使用して関数名を挿入します。CTRL-R
vをさらに2回使用します。補完機能でも同じことができます。レジスタの使用は、同じ文字で始まる単語が多数ある場合に便利です。<BS>
などの特殊文字が含まれている場合、キーボードから入力されたかのように解釈されます。これを避けたい場合(テキストに<BS>
を実際に挿入したい場合)、CTRL-R
CTRL-R
{register}
コマンドを使用します。:iabbrev ad advertisementこれで、「ad」と入力すると、テキストに「advertisement」という単語全体が挿入されます。これは、単語の一部になり得ない文字(例えば、スペース)を入力することでトリガーされます。
:iabbrev JB Jack Bennyプログラマーとして、私は2つのかなり珍しい省略語を使用しています。
:iabbrev #b /**************************************** :iabbrev #e <Space>****************************************/これらは、ボックス化されたコメントを作成するために使用されます。コメントは#bで始まり、上線が描画されます。次にコメントテキストを入力し、#eを使用して下線を引きます。#eの省略語はスペースで始まっていることに注意してください。つまり、最初の2文字はスペースとアスタリスクです。通常、Vimは省略語と展開の間のスペースを無視します。その問題を回避するために、スペースを7文字で記述します:<, S, p, a, c, e, >。
:abbreviate teh theこれらをいくつでも追加できます。よくあるミスを発見するたびに1つずつ追加してください。
:abbreviate i #e ****************************************/ i #b /**************************************** i JB Jack Benny i ad advertisement ! teh the最初の列の「i」は挿入モードを示します。これらの省略語は挿入モードでのみ有効です。他の可能性のある文字は次のとおりです。
:edit ad
:abbreviate @f freshこれはこのコマンドで削除できます。
:unabbreviate @fこれをタイプしている間、@fが「fresh」に展開されることに気付くでしょう。心配しないでください。Vimはそれを理解します(「fresh」の省略語がある場合を除きますが、それは非常にまれです)。すべての省略語を削除するには、
:abclear":unabbreviate"と":abclear"は、挿入モード(":iunabbreviate"と":iabclear")とコマンドラインモード(":cunabbreviate"と":cabclear")のバリアントも存在します。
:abbreviate @a adder :imap dd disk-doorここで@aと入力すると、「adisk-doorer」が表示されます。これは望ましい結果ではありません。これを回避するには、":noreabbrev"コマンドを使用します。これは":abbreviate"と同じ動作をしますが、結果の文字列がマッピングに使用されるのを防ぎます。
:noreabbrev @a adder幸いなことに、省略語の結果がマッピングされることはめったにありません。
CTRL-V
コマンドは、次の文字を文字通り挿入するために使用されます。つまり、文字が持つ特殊な意味は無視されます。例えばCTRL-V <Esc>エスケープ文字を挿入します。したがって、挿入モードを終了しません。(
CTRL-V
の後にスペースを入力しないでください。これは読みやすくするためだけです)。CTRL-V
はテキストを貼り付けるために使用されます。CTRL-V
の代わりにCTRL-Q
を使用してください。一方、Unixでは、CTRL-Q
は一部のターミナルでは機能しません。特殊な意味を持っているためです。CTRL-V
{digits}
コマンドを使用して、10進数{digits}
の文字を挿入することもできます。例えば、文字番号127は<Del>
文字です(ただし、必ずしも<Del>
キーではありません!)。<Del>
を挿入するには、次のように入力します。CTRL-V 127このようにして、最大255文字を入力できます。2桁未満の数字を入力すると、数字以外の文字がコマンドを終了します。数字以外の文字を入力する必要を回避するには、先頭に0を1つまたは2つ追加して3桁にします。次のコマンドはすべて
<Tab>
とドットを挿入します。CTRL-V
9. CTRL-V
09. CTRL-V
009.CTRL-V
の後に「x」を使用します。CTRL-V x7fこれも文字255までです(
CTRL-V
xff)。「o」を使用して文字を8進数で入力し、さらに2つの方法で最大16ビットと32ビットの番号を入力できます(Unicode文字など)。CTRL-V o123 CTRL-V u1234 CTRL-V U12345678
CTRL-K Co使用可能なダイグラフを確認するには、次のコマンドを使用します。
:digraphsVimはダイグラフテーブルを表示します。その3行を示します。
CTRL-K
Pdと入力することで得られるダイグラフは (£) 文字であることがわかります。これは163(10進数)の文字番号です。PdはPoundの略です。ほとんどのダイグラフは、生成する文字に関するヒントを与えるように選択されています。リストをよく見ると、その論理が理解できるでしょう。その組み合わせのダイグラフがない場合は、最初の文字と2番目の文字を入れ替えることができます。したがって、CTRL-K
dPも機能します。「dP」のダイグラフがないため、Vimは「Pd」ダイグラフも検索します。:digraph a" äこれにより、
CTRL-K
a"がä文字を挿入するように定義されます。10進数で文字を指定することもできます。これは同じダイグラフを定義します。:digraph a" 228ダイグラフに関する詳細は、digraphsを参照してください。特殊文字を挿入する別の方法は、キーマップを使用することです。詳細は45.5を参照してください。
<Esc>
で挿入モードを終了し、通常モードコマンドを実行してから、「i」または「a」で挿入モードを再開します。より速い方法があります。CTRL-O
{command}
を使用すると、挿入モードから任意の通常モードコマンドを実行できます。例えば、カーソルから行末までを削除するにはCTRL-O Dこのようにして、1つの通常モードコマンドのみを実行できます。ただし、レジスタまたはカウントを指定できます。より複雑な例
CTRL-O "g3dwこれにより、レジスタgに3番目の単語までが削除されます。