Nvim :help
ページは、ソースからtree-sitter-vimdocパーサーを使用して生成されています。
<Insert>
キーを使用して、文字の挿入と上書きを切り替えることができます。:cnoremap <C-A> <Home> :cnoremap <C-F> <Right> :cnoremap <C-B> <Left> :cnoremap <Esc>b <S-Left> :cnoremap <Esc>f <S-Right>(<> 記法 <>; すべてそのまま入力してください)
CTRL-V
は多くの場合、テキストの貼り付けにマップされています。その場合は、代わりに CTRL-Q
を使用してください。 c_CTRL-QCTRL-V
と同じです。ただし、一部の端末では制御フローに使用されるため、機能しません。CTRL-V
と同じように機能しますが、CTRL修飾子をキーに含めようとしないでください。<左>
カーソルを左に移動します。ワイルドメニュー補完モード中の動作については、'wildmenu' を参照してください。 c_<右> c_右 <右>
カーソルを右に移動します。ワイルドメニュー補完モード中の動作については、'wildmenu' を参照してください。 c_<S-左><S-左>
または <C-左>
c_<C-左><S-右>
または <C-右>
c_<C-右><Home>
c_CTRL-B c_<Home> c_Home カーソルをコマンドラインの先頭に移動 CTRL-E または <End>
c_CTRL-E c_<End> c_End カーソルをコマンドラインの末尾に移動します。ワイルドメニュー補完モード中の動作については、'wildmenu' を参照してください。<BS>
カーソルの前の文字を削除します。 c_<Del> c_Del <Del>
カーソル位置の文字を削除します(行末:カーソルの前の文字)。 c_CTRL-W:cnoremap <C-U> <C-E><C-U>
{char1}
<BS>
{char2}
または c_ダイグラフ{char1}
{char2}
c_CTRL-K{char1}
が特殊キーの場合、そのキーのコードが<>形式で挿入されます。{レジスタ}
c_CTRL-R c_<C-R> 番号付きまたは名前付きレジスタの内容を挿入します。 CTRL-R
と2番目の文字を入力する間に '"' が表示され、レジスタの名前を入力する必要があることを示します。テキストは入力したかのように挿入されますが、マッピングと省略形は使用されません。 'wildchar' によるコマンドライン補完はトリガーされません。また、コマンドラインを終了する文字は文字通り挿入されます(<Esc>
、<CR>
、<NL>
、<C-C>
)。ただし、<BS>
または CTRL-W
はコマンドラインを終了する可能性があり、残りの文字は別のモードで解釈されるため、意図したとおりにならない場合があります。特殊レジスタ: '"' 名前なしレジスタ。最後の削除またはヤンクのテキストが含まれています '%' 現在のファイル名 '#' 代替ファイル名 "*" クリップボードの内容(X11:プライマリセレクション) '+' クリップボードの内容 '/' 最後の検索パターン ':' 最後のコマンドライン '-' 最後の小規模(1行未満)削除 '.' 最後に挿入されたテキスト c_CTRL-R_=<C-R><C-R>=setcmdpos(2)[-1]<CR>
CTRL-R
CTRL-R
を使用します。CTRL-F
c_CTRL-R_CTRL-F c_<C-R>_<C-F> CTRL-R CTRL-P
c_CTRL-R_CTRL-P c_<C-R>_<C-P> CTRL-R CTRL-W
c_CTRL-R_CTRL-W c_<C-R>_<C-W> CTRL-R CTRL-A
c_CTRL-R_CTRL-A c_<C-R>_<C-A> CTRL-R CTRL-L
c_CTRL-R_CTRL-L c_<C-R>_<C-L> カーソル位置のオブジェクトを挿入します: CTRL-F
カーソル位置のファイル名 CTRL-P
カーソル位置のファイル名。gf のように 'path' で展開されます CTRL-W
カーソル位置の単語 CTRL-A
カーソル位置の WORD。 WORD を参照してください CTRL-L
カーソル位置の行CTRL-W
を使用すると、すでに入力されている単語の部分は再度挿入されません。CTRL-R
{レジスタ CTRL-F CTRL-P CTRL-W CTRL-A CTRL-L}
CTRL-R CTRL-O
{レジスタ CTRL-F CTRL-P CTRL-W CTRL-A CTRL-L}
カーソル位置のレジスタまたはオブジェクトを挿入します。 c_CTRL-R のように機能しますが、テキストをそのまま挿入します。たとえば、レジスタaに "xy^Hz"(^Hはバックスペース)が含まれている場合、"CTRL-R a" は "xz" を挿入しますが、"CTRL-R CTRL-R
a" は "xy^Hz" を挿入します。CTRL-\
e {expr}
c_CTRL-\_e{expr}
を評価し、コマンドライン全体を結果に置き換えます。式を入力するように求められます。終了するには <Enter>
を入力します。ただし、マッピングで最も役立ちます。 式 を参照してください。式の結果を挿入するには、c_CTRL-R_= を参照してください。便利な関数は getcmdtype()、getcmdline()、getcmdpos() です。カーソル位置は変更されません。ただし、カーソルが行末にあった場合は、行末に留まります。 setcmdpos() を使用してカーソル位置を設定できます。厄介な副作用を避けるため、サンドボックス を使用して式を評価します。例:cmap <F7> <C-\>eAppendSome()<CR> :func AppendSome() :let cmd = getcmdline() .. " Some()" :" place the cursor on the ) :call setcmdpos(strlen(cmd)) :return cmd :endfunc
CTRL-Y
は文字として挿入されます。ワイルドメニュー補完モード中の動作については、'wildmenu' を参照してください。CTRL-[
c_CTRL-[ c_<Esc> c_Esc <Esc>
入力後、'x' が 'cpoptions' に存在しない場合、コマンドラインモードを終了し、実行しません。マクロ内、または 'x' が 'cpoptions' に存在する場合、入力されたコマンドを実行開始します。 注意: キーボードの <Esc>
キーが押しにくい場合は、CTRL-[
を使用するようにしましょう。 c_META c_ALT ALT (META) は、コードがマップされていない場合、<Esc>
のように動作することがあります。たとえば、<A-x>
がコマンドラインモードのマッピングを持たない場合、<A-x>
は <Esc>
x のように動作します。 c_CTRL-C<Up>
現在の コマンドラインの先頭と一致する、履歴の古いコマンドラインを呼び出します(下記参照)。ワイルドメニュー補完モード中の動作については、'wildmenu' を参照してください。 c_<Down> c_Down <Down>
現在の コマンドラインの先頭と一致する、履歴の新しいコマンドラインを呼び出します(下記参照)。ワイルドメニュー補完モード中の動作については、'wildmenu' を参照してください。<S-Up>
または <PageUp>
履歴の古いコマンドラインを呼び出します c_<S-Down> c_<PageDown> <S-Down>
または <PageDown>
履歴の新しいコマンドラインを呼び出しますCTRL-^
言語 :lmap マッピングや入力メソッドの使用を切り替えます。検索コマンドのパターンを入力していて、'imsearch' が -1 でない場合、VAL は 'imsearch' の値です。そうでない場合、VAL は 'iminsert' の値です。言語マッピングが定義されている場合CTRL-^
で有効にした後、新しい状態は次のコマンドまたは検索パターンには再び使用されません。<Up>
キーと <Down>
キーは、現在の コマンドラインを検索文字列として使用します。次/前のコマンドラインの先頭がこの文字列と比較されます。一致する最初の行が新しいコマンドラインになります。これらの 2 つのキーを繰り返し入力すると、同じ文字列が再び使用されます。たとえば、これは以前の置換コマンドを見つけるために使用できます。":s" と入力してから <Up>
と入力します。目的のコマンドラインが表示されるまで <S-Up>
を何回か入力することによっても同じことができます。(注意:シフトされた矢印キーはすべての端末で機能するわけではありません){name}
] [{first}
][, [{last}
]] 履歴 {name}
の内容をリストします。{name}
は次のとおりです。 c[md] または : コマンドライン履歴 s[earch] または / または ? 検索文字列履歴 e[xpr] または = 式レジスタ履歴 i[nput] または @ 入力行履歴 d[ebug] または > デバッグコマンド履歴 a[ll] 上記のすべて{first}
や {last}
が指定されている場合、履歴の対応する範囲のエントリがリストされます。これらの番号は、次の形式で指定できます。 :history-indexing:history / 6,12
:history all -2
:history all -2,:keepp[atterns]
{command}
:keepp :keeppatterns 検索履歴に何も追加せずに {command}
を実行します。また、:s または :& の場合は、最後の置換パターンまたは置換文字列を変更しません。<Tab>
または <Esc>
はほとんどの場合 'wildchar' として使用され、これらは一部のマクロで特別な意味を持つためです。) 再び入力し、複数の一致があった場合、次の一致が挿入されます。最後の一致の後、最初の一致が再び使用されます(ラップアラウンド)。動作は 'wildmode' オプションで変更できます。 c_<S-Tab><S-Tab>
'wildchar' または <Tab>
と同様ですが、最後の一致から始まり、次に前の一致に進みます。 c_CTRL-NCTRL-L
は現在の一致の 끝에서 文字を 1 つ追加します。 'ignorecase' と 'smartcase' が設定されていて、コマンドラインに大文字がない場合、追加された文字は小文字に変換されます。 c_CTRL-G /_CTRL-G CTRL-G 'incsearch' が設定されている場合、"/" または "?" の検索パターンを入力し、現在の一致が表示された後、CTRL-G
は次の一致に移動します(search-offset を考慮しません)。 CTRL-T
を使用して前の一致に移動します。ヒント:通常のキーボードでは、T は G の上にあります。 c_CTRL-T /_CTRL-T CTRL-T 'incsearch' が設定されている場合、"/" または "?" の検索パターンを入力し、現在の一致が表示された後、CTRL-T
は前の一致に移動します(search-offset を考慮しません)。 CTRL-G
を使用して次の一致に移動します。ヒント:通常のキーボードでは、T は G の上にあります。<Tab>
です(Vi 互換モードでは CTRL-E
、以前のバージョンでは <Esc>
が使用されていました)。パターンでは、ファイル名を照合するときに標準の ワイルドカード が受け入れられます。CTRL-N
を繰り返すと、一致を巡回し、最終的には入力されたものに戻ります。最初の一致が目的のものでない場合は、<S-Tab>
または CTRL-P
を使用して、入力したものにすぐに戻ることができます。:cnoremap X <C-L><C-D>(ここで X は使用するコマンドキー、
<C-L>
は CTRL-L
、<C-D>
は CTRL-D
です) これにより、最長一致が見つかり、次に一致するすべてのファイルがリストされます。:set wildmode=longest,listこれにより、最初の 'wildchar' で最長一致が見つかり、次に次の 'wildchar' で一致するすべてのファイルがリストされます。
CTRL-N
、または CTRL-P
を入力することで、他の一致にアクセスできます。 'suffixes' オプションに一致する拡張子を持つファイルも含め、すべてのファイルが含まれます。:e *.c$これは ".cpp" で終わるファイルには一致しません。 "$" がなければ一致します。
<S-Tab>
を CTRL-P
として使用したい場合は、.cshrc に次のコマンドを追加します。xmodmap -e "keysym Tab = Tab Find"そして、vimrc にこれを追加します。
:cmap <Esc>[1~ <C-P>
:set ai "set 'autoindent' optionシェルコマンド ":!cmd" や ":map" コマンド、および '"' を引数の一部と見なす他のいくつかのコマンド (主に式を期待するコマンド) にコメントを追加することはできません
:execute 'r !ls' | '[例外が1つあります。 'cpoptions' に 'b' フラグが存在する場合、":map" および ":abbr" コマンドなどでは、'\' の代わりに
CTRL-V
を使用する必要があります。 "<Bar>" を代わりに使用することもできます。 map_bar も参照してください。:!ls | wc view the output of two commands :r !ls | wc insert the same output in the text :%g/foo/p|> moves all matching lines one shiftwidth :%s/foo/bar/|> moves one line one shiftwidth :map q 10^V| map "q" to "10|" :map q 10\| map \ l map "q" to "10\" and map "\" to "l" (when 'b' is present in 'cpoptions')'|' と同様に、
<NL>
を使用してコマンドを区切ることもできます。 <NL>
を挿入するには、CTRL-V
CTRL-J
を使用します。 "^@" が表示されます。 '|' を使用するのが推奨される方法です。 しかし、外部コマンドの場合、'|' は外部コマンドに含まれるため、<NL>
を使用する必要があります。 <NL>
の特別な意味を回避するには、その前にバックスラッシュを付ける必要があります。 例:r !date<NL>-joinこれは現在の日付をファイルに読み込み、前の行と結合します。
:| print current line (like ":p") :3| print line 3 (like ":3p") :3 goto line 3範囲とコマンド名の間にコロンを付けることができます。 これは無視されます (Vi と互換性があります)。 例えば
:1,$:s/pat/stringファイル名が予期される場所で文字 '%' または '#' が使用されると、それらは現在および代替のファイル名に展開されます (「ファイルの編集」の章を参照 :_% :_#)。
CTRL-V
でエスケープされていない限り、無視されます。 ":next" コマンドはスペースを使用してファイル名を区切ることに注意してください。 スペースをエスケープしてファイル名に含めます。 例:next foo\ bar goes\ to school\3つのファイル "foo bar"、"goes to"、"school " の編集を開始します。
5;/that line/
{number}
絶対行番号 E1247 . 現在の行 :.{pattern}
が一致する次の行 :/{pattern}
が一致する前の行 :? 以下の :range-pattern も参照してください \/ 前に使用した検索パターンが一致する次の行 \? 前に使用した検索パターンが一致する前の行 \& 前に使用した置換パターンが一致する次の行:3,4+2printこのテキストについて
:2,4-1printこのテキストについて
/pat1//pat2/ Find line containing "pat2" after line containing "pat1", without moving the cursor. 7;/pat2/ Find line containing "pat2", after line 7, leaving the cursor in line 7.
{number}
は 0 からファイルの行数までの間でなければなりません。0 を使用すると、ほとんどのコマンドでは 1 として解釈されます。カウントとして使用するコマンドは、0 をゼロとして使用します (:tag、:pop など)。 一部のコマンドは、ゼロを「最初の行の前」として解釈します (:read、検索パターンなど)。.+3 three lines below the cursor /that/+1 the line below the next line containing "that" .,$ from current line until end of file 0;/that the first line containing "that", also matches in the first line. 1;/that the first line after line 1 containing "that"一部のコマンドでは、コマンドの後にカウントを指定できます。このカウントは、最後の行指定子で指定された行 (デフォルトはカーソル行) から始まる、使用される行数として使用されます。カウントを受け入れるコマンドは、範囲を使用しますが、ファイル名引数を持たないコマンドです (ファイル名は数字にもなるため)。カウントは負の値にすることはできません。
:s/x/X/g 5 substitute 'x' by 'X' in the current line and four following lines :23d 4 delete lines 23, 24, 25 and 26折りたたみと範囲
:.,.+(count - 1)つまり、カーソル位置とその後の "カウント" 行です。例:3行を削除するには
3:d<CR> is translated into: .,.+2d<CR>
{Visual}
: ビジュアル選択された行を範囲としてコマンドラインを開始します。この範囲にはコード :'<,'>
が使用されます。これにより、コマンドライン履歴から同様の行を選択して、異なるビジュアル選択行でコマンドを繰り返すことができます。CTRL-R
コマンドを使用できます。たとえば、 "%" は現在のファイル名を表しますが、CTRL-R
% は現在のファイル名をすぐに挿入します。c_CTRL-R を参照してください。:!ls "%" :r !spell "%"'%' と '#' の特別な意味を回避するには、その前にバックスラッシュを挿入します。詳細: 特殊な意味は、前にバックスラッシュがある場合は常にエスケープされます。バックスラッシュの数に関係ありません。
<cword>
は、カーソル下の単語に置き換えられます (star のように)。 :<cWORD> <cWORD> <cWORD>
は、カーソル下の WORD に置き換えられます (WORD を参照)。 :<cexpr> <cexpr> <cexpr>
は、カーソル下の単語に置き換えられ、C式を形成するためにより多くのものが含まれます。たとえば、カーソルが "ptr->arg" の "arg" にある場合、結果は "ptr->arg" になります。カーソルが "list[idx]" の "]" にある場合、結果は "list[idx]" になります。 :<cfile> <cfile> <cfile>
は、カーソル下のパス名に置き換えられます (gf が使用するもののように)。 :<afile> <afile> <afile>
オートコマンドを実行する場合、操作対象のバッファのファイル名、または読み取りまたは書き込みのファイルに置き換えられます。 E495 :<abuf> <abuf> <abuf>
オートコマンドを実行する場合、現在有効なバッファ番号に置き換えられます。すべてのイベントに設定されているわけではありません。bufnr() も参照してください。 ":r file" と ":so file" の場合、これは現在のバッファであり、読み取り/ソースされているファイルはバッファにありません。 E496 :<amatch> <amatch> <amatch>
オートコマンドを実行する場合、このオートコマンドが実行された一致に置き換えられます。 E497 ファイル名が一致に使用されない場合 (FileType、Syntax、SpellFileMissing イベントの場合)、<afile>
とは異なります。一致がファイル名の場合、フルパスに展開されます。 :<sfile> <sfile> <sfile>
:source
コマンドを実行する場合、ソースファイルのファイル名に置き換えられます。 E498 関数を実行する場合、<stack>
と同様に、呼び出しスタックに置き換えられます (これは下位互換性のためです。<stack>
または <script>
を使用することをお勧めします)。<sfile>
がスクリプト内で使用されていない場合、ファイル名修飾子は役に立たないことに注意してください。 :<stack> <stack> <stack>
は呼び出しスタックに置き換えられます。関数行には "function {function-name}
[{lnum}
]"、スクリプト行には "script {file-name}
[{lnum}
]" を使用し、項目間には ".." を使用します。例: "function {function-name1}
[{lnum}
]..{function-name2}[{lnum}
]" 呼び出しスタックがない場合は、エラー E489 が発生します。 :<script> <script> <script>
:source
コマンドを実行する場合、ソースファイルのファイル名に置き換えられます。関数を実行する場合、それが定義されているスクリプトのファイル名に置き換えられます。ファイル名を判別できない場合は、エラー E1274 が発生します。 :<slnum> <slnum> <slnum>
:source
コマンドを実行する場合、行番号に置き換えられます。 E842 関数を実行する場合は、関数の開始からの相対行番号です。 :<sflnum> <sflnum> <sflnum>
スクリプトを実行する場合、行番号に置き換えられます。<slnum>
とは異なり、<sflnum>
はどのような状況でもスクリプトの行番号に置き換えられます。 E961:!dir <cfile>:S :call system('chmod +w -- ' . expand('%:S'))ファイル名が "src/version.c"、カレントディレクトリが "/home/mool/vim" の場合の例
:p /home/mool/vim/src/version.c :p:. src/version.c :p:~ ~/vim/src/version.c :h src :p:h /home/mool/vim/src :p:h:h /home/mool/vim :t version.c :p:t version.c :r src/version :p:r /home/mool/vim/src/version :t:r version :e c :s?version?main? src/main.c :s?version?main?:p /home/mool/vim/src/main.c :p:gs?/?\\? \home\mool\vim\src\version.cファイル名が "src/version.c.gz" の場合の例
:p /home/mool/vim/src/version.c.gz :e gz :e:e c.gz :e:e:e c.gz :e:e:r c :r src/version.c :r:e c :r:r src/version :r:r:r src/version
% current file name %< current file name without extension # alternate file name for current window #< idem, without extension #31 alternate file number 31 #31< idem, without extension <cword> word under the cursor <cWORD> WORD under the cursor (see |WORD|) <cfile> path name under the cursor <cfile>< idem, without extension注: ファイル名が予期される場合、ワイルドカード展開が行われます。Unix では、内部的に実行できる場合を除き (速度のため)、シェルが使用されます。以下のように、バッククォートも機能します
:n `echo *.c`ただし、展開は '%'、'#' などを展開する前にワイルドカードがある場合にのみ行われます。これにより、ファイル名内のワイルドカードの展開が回避されます。
<cfile>
の結果を展開する場合は、ワイルドカード文字を追加します。例: (代替ファイル名は "?readme?") コマンドは次のように展開されます:e # :e ?readme? :e `ls #` :e {files matching "?readme?"} :e #.* :e {files matching "?readme?.*"} :cd <cfile> :cd {file name under cursor} :cd <cfile>* :cd {file name under cursor plus "*" and then expanded}`= も参照してください。
<CR>
カーソルの下のコマンドラインを実行します。挿入モードとノーマルモードの両方で機能します。CTRL-C コマンドラインモードを続行します。カーソルの下のコマンドラインがコマンドラインとして使用されます。挿入モードとノーマルモードの両方で機能します。再描画がないため、ウィンドウは表示されたままになります。:quit コマンドラインを破棄し、ノーマルモードに戻ります。":close"、CTRL-W
c、":exit"、":xit"、CTRL-\
CTRL-N
も機能します。:qall バッファに変更がない限り、Vim を終了します。:qall! バッファへの変更を破棄して、Vim を終了します。<CR>
で実行される行以外の行への変更は失われます。:autocmd CmdwinEnter * map <buffer> <F5> <CR>q:
<Tab>
に設定されていて、Exコマンドにコマンドラインウィンドウが使用されている場合、コマンドラインウィンドウで補完に<Tab>
を使用するための2つのマッピングが以下のように追加されます。:inoremap <buffer> <Tab> <C-X><C-V> :nnoremap <buffer> <Tab> a<C-X><C-V>ノーマルモードで
<Tab>
を押すと、次の文字で補完が行われることに注意してください。この方法では、行末でも機能します。 これらのマッピングが不要な場合は、以下のように無効にしてください。au CmdwinEnter [:>] iunmap <buffer> <Tab> au CmdwinEnter [:>] nunmap <buffer> <Tab>これらの行をvimrcファイルに記述することができます。
autocmd CmdWinEnter [:>] syntax sync minlines=1 maxlines=1
:au CmdwinEnter : let b:cpt_save = &cpt | set cpt=. :au CmdwinLeave : let &cpt = b:cpt_saveこれは、i_CTRL-Nのために現在のウィンドウで補完を使用するように'complete'を設定します。 もう一つの例:
:au CmdwinEnter [/?] startinsertこれは、Vimをコマンドラインウィンドウで挿入モードで起動させます。
-
:insertまたは:appendのテキスト