オプション
Nvimの:help
ページは、生成されたもので、ソースをtree-sitter-vimdocパーサーを使って変換したものです。
オプション
Vimには、特別な効果を得るために設定できる内部変数とスイッチが多数あります。これらのオプションには、次の3つの形式があります。 boolean: オンまたはオフのみが可能なオプション
boolean toggle number: 数値を持つオプション string: 文字列を持つオプション
:se :set :se[t][!] デフォルト値と異なるすべてのオプションを表示します。[!] がある場合、すべてのオプションは別々の行に表示されます。
:se[t][!] all すべてのオプションを表示します。[!] がある場合、すべてのオプションは別々の行に表示されます。
:se[t] {option}
トグルオプション:設定、オンに切り替えます。数値オプション:値を表示します。文字列オプション:値を表示します。
:se[t] no{option} トグルオプション:リセット、オフに切り替えます。
:set-! :set-inv :se[t]
{option}
! または :se[t] inv{option} トグルオプション:値を反転します。
:se[t] all& すべてのオプションをデフォルト値に設定します。次のオプションの値は変更されません:
'columns' 'lines' 警告: これは多くの副作用を引き起こす可能性があります。
:se[t]
{option}
+={value}
:set+=数値オプションに
{value}
を追加するか、文字列オプションに
{value}
を追加します。オプションがコンマ区切りのリストの場合、値が空でない限り、コンマが追加されます。オプションがフラグのリストの場合、余分なフラグは削除されます。すでに存在していたフラグを追加した場合、オプションの値は変更されません。上記の
:set-argsも参照してください。
:se[t]
{option}
^={value}
:set^=数値オプションに
{value}
を乗算するか、文字列オプションの先頭に
{value}
を追加します。オプションがコンマ区切りのリストの場合、値が空でない限り、コンマが追加されます。上記の
:set-argsも参照してください。
:se[t]
{option}
-={value}
:set-=数値オプションから
{value}
を減算するか、文字列オプションから
{value}
を削除します(存在する場合)。
{value}
が文字列オプションに見つからない場合、エラーや警告はありません。オプションがコンマ区切りのリストの場合、オプションが空にならない限り、コンマが削除されます。オプションがフラグのリストの場合、
{value}
はオプションに表示されるものと正確に一致する必要があります。問題を避けるために、フラグを1つずつ削除してください。コンマ区切りのリストまたはフラグのリストからの個々の値は、
'wildchar'を入力することで挿入できます。
complete-set-optionを参照してください。上記の
:set-argsも参照してください。
":set"の
{option}
引数は繰り返すことができます。例:
:set ai nosi sw=3 ts=3
引数のいずれかでエラーが発生した場合、エラーメッセージが表示され、後続の引数は無視されます。
shiftwidth=4
最後に設定されたのはモデルライン1行目
cindent
最後に設定されたのは/usr/local/share/vim/vim60/ftplugin/c.vim 30行目
これは、特定のオプション値が要求された場合にのみ実行されます。引数なしの":verbose set all"または":verbose set"の場合には実行されません。オプションが手動で設定された場合、「最後に設定された」メッセージはありません。オプションが関数、ユーザーコマンド、または自動コマンドの実行中に設定された場合、それが定義されたスクリプトが報告されます。いくつかの特別なテキスト:
最後に設定されたのはモデルライン1行目
オプションは
モデルラインで設定されました。
最後に設定されたのは --cmd 引数
オプションはコマンドライン引数
--cmdまたは+で設定されました。
最後に設定されたのは -c 引数
オプションは、コマンドライン引数
-c、+、
-S、または
-qで設定されました。
最後に設定されたのは環境変数
オプションは$VIMINITから設定されました。
最後に設定されたのはエラーハンドラー
オプションを評価した結果、エラーが発生した場合、オプションはクリアされました。
option-backslash 文字列オプションの値に空白を含めるには、バックスラッシュを前に付ける必要があります。バックスラッシュを含めるには、2つ使用する必要があります。これは、オプション値のバックスラッシュの数が半分になる(切り捨てられる)ことを意味します。
'path'、
'cdpath'、および
'tags'オプションでは、スペースはコンマまたはスペースで区切ることができるため、代わりに3つのバックスラッシュを前に付ける必要があります。
'backupdir'や
'tags'などのコンマ区切りのオプションでは、コンマも2つのバックスラッシュでエスケープする必要がありますが、
'makeprg'などのコンマ区切りでないオプションでは必要ありません。
:letと
literal-stringを使用してオプションを設定する場合、バックスラッシュの階層を1つ減らす必要があります。いくつかの例:
:set makeprg=make\ file results in "make file"
:let &makeprg='make file' (same as above)
:set makeprg=make\\\ file results in "make\ file"
:set tags=tags\ /usr/tags results in "tags" and "/usr/tags"
:set tags=tags\\\ file results in "tags file"
:let &tags='tags\ file' (same as above)
:set makeprg=make,file results in "make,file"
:set makeprg=make\\,file results in "make\,file"
:set tags=tags,file results in "tags" and "file"
:set tags=tags\\,file results in "tags,file"
:let &tags='tags\,file' (same as above)
"|"文字は、":set"コマンドを後続のコマンドから区切ります。オプションの値に"|"を含めるには、代わりに"\|"を使用します。この例では、
'titlestring'オプションを"hi|there"に設定します。
:set titlestring=hi\|there
これにより、
'titlestring'オプションを"hi"に、
'iconstring'を"there"に設定します。
:set titlestring=hi|set iconstring=there
同様に、二重引用符文字はコメントを開始します。オプションの値に'"'を含めるには、代わりに'\"'を使用します。この例では、
'titlestring'オプションを"hi "there""に設定します。
:set titlestring=hi\ \"there\"
Win32の場合、ファイル名のバックスラッシュはほとんど削除されません。より正確に言うと、(環境変数が展開される)ファイル名を必要とするオプションの場合、通常のファイル名文字の前のバックスラッシュは削除されません。ただし、特殊文字(スペース、バックスラッシュ、コンマなど)の前のバックスラッシュは、上記のように使用されます。値が"\\"で始まる場合、特別な状況が1つあります。
:set dir=\\machine\path results in "\\machine\path"
:set dir=\\\\machine\\path results in "\\machine\path"
:set dir=\\path\\file results in "\\path\file" (wrong!)
最初の1つでは先頭が保持されますが、2番目の1つではバックスラッシュが半分になります。これにより、バックスラッシュが半分になると予想する場合と、バックスラッシュが保持されると予想する場合の両方で動作することが保証されます。3番目の例は、おそらく望ましくない結果になります。避けてください。
add-option-flags remove-option-flags E539一部のオプションはフラグのリストです。既存のフラグを変更せずに、そのようなオプションにフラグを追加する場合は、次のようにします。
:set guioptions+=a
オプションからフラグを削除するには、次のようにします。
:set guioptions-=a
これにより、
'guioptions'から'a'フラグが削除されます。一度に1つのフラグを追加または削除する必要があることに注意してください。
'guioptions'の値が"ab"の場合、"set guioptions-=ba"を使用しても機能しません。これは、文字列"ba"が表示されないためです。
:set_env expand-env expand-environment-var 特定の文字列オプションの環境変数は展開されます。環境変数が存在する場合、'$'とそれに続く環境変数名は、その値に置き換えられます。存在しない場合は、'$'と名前は変更されません。環境変数名の後には、ID以外の文字(文字、数字、または'_'以外)が続く場合があります。その文字とそれに続くものは、環境変数の値に追加されます。例:
:set term=$TERM.new
:set path=/usr/$INCLUDE,$HOME/include,.
":set opt-=val"または":set opt+=val"を使用してオプションから文字列を追加または削除する場合、展開は追加または削除の前に行われます。
オプションの一部は、ウィンドウまたはバッファーにのみ適用されます。各ウィンドウまたはバッファーには、このオプションの独自のコピーがあるため、それぞれが独自の値を持つことができます。これにより、あるウィンドウで
'list'を設定し、別のウィンドウで設定しないようにすることができます。また、あるバッファーで
'shiftwidth'を3に設定し、別のバッファーで4に設定することもできます。
以下に、特定の状況でこれらのローカルオプションに何が起こるかを説明します。Vimは、ほとんどの場合、予想されるオプション値を使用するため、これらすべてを知る必要はありません。残念ながら、ユーザーが期待することを実行するのは少し複雑です...
ウィンドウを分割すると、ローカルオプションは新しいウィンドウにコピーされます。したがって、分割直後は、2つのウィンドウの内容は同じように見えます。
新しいバッファを編集する際、そのローカルオプションの値は初期化される必要があります。現在のバッファのローカルオプションは、そのバッファに固有である可能性があるため、これらは使用されません。代わりに、バッファローカルオプションごとにグローバル値もあり、これは新しいバッファに使用されます。":set" を使用すると、ローカル値とグローバル値の両方が変更されます。"setlocal" を使用すると、ローカル値のみが変更されるため、新しいバッファを編集する際にはこの値は使用されません。
以前に編集されたバッファを編集する場合、最後に閉じられたウィンドウのオプションが再度使用されます。このバッファがこのウィンドウで編集されたことがある場合は、その時の値が使用されます。それ以外の場合は、バッファが最後に編集されたウィンドウの値が使用されます。
バッファの種類ごとにローカルウィンドウオプションを具体的に設定することが可能です。同じウィンドウで別のバッファを編集する場合、これらのローカルウィンドウオプションを使用し続けることは望ましくありません。そのため、Vim はローカルウィンドウオプションのグローバル値を保持し、別のバッファを編集する際に使用します。各ウィンドウにはこれらの値の独自のコピーがあります。したがって、これらはウィンドウに対してローカルですが、ウィンドウ内のすべてのバッファに対してグローバルです。これにより、次のことが可能になります。
:e one
:set list
:e two
これで、":set list" コマンドでグローバル値も設定したため、"two" でも
'list' オプションが設定されます。
:set nolist
:e one
:setlocal list
:e two
":set nolist" がグローバル値をリセットし、":setlocal list" がローカル値のみを変更し、":e two" がグローバル値を取得するため、
'list' オプションは設定されません。次にこれを実行すると、
:e one
最後に "one" を編集した時の
'list' の値が戻ります。ウィンドウにローカルなオプションは、バッファごとに記憶されます。これは、バッファがロードされていない場合でも発生しますが、バッファが
:bwipe で消去されると失われます。
次のローカルウィンドウオプションは、新しいウィンドウが作成されたときにコピーされないため、わずかに異なる動作をします。
特別なローカルバッファオプション
次のローカルバッファオプションは、新しいバッファが作成されたときにコピーされないため、わずかに異なる動作をします。
:setl :setlocal :setl[ocal][!] ... ":set" のように動作しますが、現在のバッファまたはウィンドウにローカルな値のみを設定します。すべてのオプションにローカル値があるわけではありません。オプションにローカル値がない場合は、グローバル値が設定されます。"all" 引数を使用した場合:すべてのローカルオプションのローカル値を表示します。引数なしの場合:デフォルトと異なるすべてのローカルオプションのローカル値を表示します。特定のローカルオプションを表示する場合、ローカル値を表示します。グローバル/ローカルなブール値オプションの場合、グローバル値が使用されている場合は、オプション名の前に "--" が表示されます。グローバルオプションの場合、グローバル値が表示されます(ただし、これは将来変更される可能性があります)。
:se[t]
{option}
<
{option}
の実効値をグローバル値に設定します。
グローバル-ローカル オプションの場合、ローカル値が削除され、グローバル値が使用されるようになります。その他のすべてのオプションの場合、グローバル値がローカル値にコピーされます。
:setl[ocal] {option}
< グローバル値をローカル値にコピーすることにより、{option}
の実効値をグローバル値に設定します。
グローバル-ローカル オプションの動作は、文字列ベースのオプションと数値ベースのオプションでわずかに異なることに注意してください。
:setg :setglobal :setg[lobal][!] ... ":set" のように動作しますが、ローカル値を変更せずに、ローカルオプションのグローバル値のみを設定します。オプションを表示する場合、グローバル値が表示されます。"all" 引数を使用した場合:すべてのローカルオプションのグローバル値を表示します。引数なしの場合:デフォルトと異なるすべてのローカルオプションのグローバル値を表示します。
バッファローカルおよびウィンドウローカルオプションの場合
コマンド グローバル値 ローカル値 条件
:set option=value 設定 設定 :setlocal option=value - 設定 :setglobal option=value 設定 - :set option? - ローカル値が設定されている場合に表示 :set option? 表示 - ローカル値が設定されていない場合 :setlocal option? - 表示 :setglobal option? 表示 -
ほとんどのバッファとウィンドウで1つの値を使用する場合は、オプションはグローバルです。一部のグローバルオプションでは、異なるローカル値を持つと便利な場合があります。":setlocal" でローカル値を設定できます。これにより、そのバッファまたはウィンドウはローカル値を使用しますが、他のバッファとウィンドウは引き続きグローバル値を使用します。
たとえば、Cソースコードの2つのウィンドウがあるとします。それらはグローバルな
'makeprg' オプションを使用しています。2つのウィンドウの1つでこれを実行すると、
:set makeprg=gmake
もう一方のウィンドウも同じ値に切り替わります。もう一方のCソースウィンドウでも
'makeprg' オプションを設定する必要はありません。ただし、新しいウィンドウでPerlファイルの編集を開始する場合は、Cソースファイルで使用される値を変更せずに、別の
'makeprg' を使用する必要があります。このコマンドを使用します。
:setlocal makeprg=perlmake
ローカル値を空にすることで、グローバル値の使用に戻ることができます。
:setlocal makeprg=
これは文字列オプションでのみ機能します。数値またはブールオプションの場合は、次のように "<" フラグを使用する必要があります。
:setlocal autoread<
ブール値以外のオプションおよび数値以外のオプションの場合、"<" を使用すると、グローバル値がローカル値にコピーされ、グローバル値の使用に戻らないことに注意してください(これは、後でグローバル値が変更された場合に重要になります)。次のように使用することもできます。
:set path<
これにより、
'path' のローカル値が空になり、グローバル値が使用されるようになります。したがって、次と同じことを行います。
:setlocal path=
注: 将来的には、より多くのグローバルオプションが
グローバル-ローカル になる可能性があります。グローバルオプションで ":setlocal" を使用すると、動作が異なる場合があります。
'foldexpr' など、いくつかのオプションの値は、値を計算するために評価される式です。評価にはかなりのオーバーヘッドがかかる場合があります。オーバーヘッドを最小限に抑え、オプション値を非常にシンプルに保つ1つの方法は、関数を定義し、引数なしで呼び出すようにオプションを設定することです。
v:lua-call も使用できます。例:
lua << EOF
function _G.MyFoldFunc()
-- ... compute fold level for line v:lnum
return level
end
EOF
set foldexpr=v:lua.MyFoldFunc()
ファイルタイプの設定
:setf[iletype] [FALLBACK]
{filetype}
:setf :setfiletype 'filetype' オプションを
{filetype}
に設定しますが、(ネストされた) オートコマンドのシーケンスでまだ設定されていない場合のみ設定します。これは次の省略形です。
:if !did_filetype()
: setlocal filetype={filetype}
:endif
このコマンドは、
'filetype' オプションが2回設定されるのを防ぎ、異なる設定と構文ファイルがロードされるのを防ぐために、filetype.vim ファイルで使用されます。
オプションの FALLBACK 引数が存在する場合、後続の :setfiletype コマンドは
'filetype' を上書きします。これは、単なる推測にすぎないファイルタイプ検出に使用されます。
did_filetype() は、このコマンドの後で false を返します。
option-window optwin :bro[wse] se[t]
:set-browse :browse-set :opt :options :opt[ions] すべてのオプションを表示および設定するためのウィンドウを開きます。オプションは機能ごとにグループ化されます。各オプションの簡単なヘルプを提供します。オプションの詳細なヘルプを含むヘルプウィンドウを開くには、簡単なヘルプで
<CR>
を押します。オプションの値を変更し、"set" 行で
<CR>
を押して新しい値を設定します。ウィンドウとバッファ固有のオプションの場合、最後にアクセスしたウィンドウを使用してオプション値を設定します。ただし、これがヘルプウィンドウである場合、(オプションウィンドウをスキップして) ヘルプウィンドウの下にあるウィンドウが使用されます。
$HOME "~" を使用することは "$HOME" を使用することに似ていますが、オプションの先頭、およびスペースまたはカンマの後でのみ認識されます。
Unix システムでは、"~user" も使用できます。これは、ユーザー "user" のホームディレクトリに置き換えられます。例:
:set path=~mool/include,/usr/include,.
Unix システムでは、"${HOME}" という形式も使用できます。{} の間の名前には、ID ではない文字を含めることができます。これを "gf" コマンドに使用する場合は、'{' および '}' 文字を
'isfname' に追加する必要があることに注意してください。
注: 環境変数と "~/" の展開は、":set" コマンドでのみ行われ、":let" を使用してオプションに値を割り当てる場合は行われません。
$HOME-windows MS-Windows では、$HOME が環境変数として定義されていない場合、実行時に Vim は $HOMEDRIVE$HOMEPATH の展開に設定します。$HOMEDRIVE が設定されていない場合は、$USERPROFILE が使用されます。
この展開された値は環境にエクスポートされません。これは外部コマンドを実行する場合に重要です。
:echo system('set | findstr ^HOME=')
と
:echo luaeval('os.getenv("HOME")')
exists('$HOME') が true であっても、何も (空の文字列) をエコー出力しないはずです。$HOME を空でない文字列に設定すると、サブプロセスにエクスポートされます。
展開されたオプションの最大長には制限があることに注意してください。その量はシステムに依存しますが、ほとんどの場合、256文字または1024文字のようになります。
":set" コマンドでオプションを変更するだけでなく、さまざまな方法でオプションを自動的に設定できます。
[text{white}] 空、または少なくとも1つの空白文字 (<Space>
または <Tab>
) が続く任意のテキスト。 "ex:" は常に少なくとも1つの空白文字を必要とします {vi:|vim:|ex:}
文字列 "vi:"、"vim:" または "ex:" [white] オプションの空白 {options}
空白または ':' で区切られたオプション設定のリスト。ここで、':' の間の各部分は ":set" コマンドの引数になります (空にすることができます)。
例:
vi:noai:sw=3 ts=6
vim: tw=77
2番目の形式 (これは一部のバージョンの Vi と互換性があります)
[text{white}]{vi:|vim:|Vim:|ex:}[white]se[t] {options}
:[text]
[text{white}] 空または、少なくとも1つの空白文字 (<Space>
または <Tab>
) が後に続く任意のテキスト。 "ex:" の場合は、常に少なくとも1つの空白文字が必要。{vi:|vim:|Vim:|ex:}
文字列 "vi:", "vim:", "Vim:", または "ex:" [white] オプションの空白文字。se[t] 文字列 "set " または "se " (スペースに注意)。"Vim" が使用される場合は、"set" でなければならない。{options}
":set" コマンドの引数となる、空白で区切られたオプションのリスト。 コロン [text] 任意のテキストまたは空。
例:
/* vim: set ai tw=75: */
/* Vim: set ai tw=75: */
{vi:|vim:|Vim:|ex:}
の前の空白文字は必須です。これにより、"lex:" のような通常の単語が誤って認識される可能性を最小限に抑えます。ただし、1つの例外があります。"vi:" と "vim:" は、行の先頭にも記述できます (バージョン 3.0 との互換性のため)。行の先頭で "ex:" を使用すると無視されます (これは "example:" の省略形である可能性があります)。
モデルライン内でモデルラインが無効になっている場合、後続のモデルラインは無視されます。これは、ファイル単位でモデルラインをオフにできるようにするためです。これは、行がモデルラインのように見えるが、実際はそうではない場合に便利です。たとえば、"vim:" のような文字列を含む YAML ファイルを開始する場合は、次の記述が良いでしょう。
# vim: nomodeline
モデルラインの無効化後に同じ行に続くオプション (もしあれば) は、引き続き評価されます (ただし、通常は何もないでしょう)。
modeline-local オプションは、":setlocal" のように設定されます。つまり、新しい値は、そのファイルを含むバッファとウィンドウにのみ適用されます。モデルラインからグローバルオプションを設定することもできますが、これは一般的ではありません。2つのウィンドウが開いていて、それぞれのファイルが同じグローバルオプションに異なる値を設定した場合、結果はどちらが最後に開かれたかによって決まります。
既にロードされたファイルを編集する場合、モデルラインからのウィンドウローカルオプションのみが使用されます。したがって、ファイルを開いた後にバッファローカルオプションを手動で変更した場合、別のウィンドウで同じバッファを編集しても変更は反映されません。ただし、ウィンドウローカルオプションは設定されます。
modeline-version モデルラインを特定のバージョンの Vim でのみ使用する場合は、"vim:" または "Vim:" が使用される場所でバージョン番号を指定できます。vim{vers}: バージョン
{vers}
以降。vim<{vers}: バージョン
{vers}
より前。vim={vers}: バージョン
{vers}
。vim>{vers}: バージョン
{vers}
より後。
{vers}
は、Vim 7.0 の場合は 700 (メジャーバージョンにマイナーバージョンを 100 倍した値) です。たとえば、Vim 7.0 でのみモデルラインを使用するには
/* vim700: set foldmethod=marker */
バージョン 7.2 以降の Vim でモデルラインを使用するには
/* vim>702: set cole=2: */
"vim" と ":" の間に空白文字を入れることはできません。
{vers}
が整数に適合しない場合、モデルラインは無視されます。
最初の形式では、行の残りの部分がすべて使用されることに注意してください。したがって、次のような行
/* vi:ts=4: */
は、末尾の "*/" でエラーメッセージが表示されます。この行は OK です。
/* vi:set ts=4: */
エラーが検出された場合、残りの行はスキップされます。
set コマンドに ':' を含めたい場合は、'\' でエスケープします。':' の前のバックスラッシュは削除されます。例
/* vi:set fillchars=stl\:^,vert\:\|: */
これは、
'fillchars' オプションを "stl:^,vert:\|" に設定します。':' の前のバックスラッシュは 1 つだけ削除されます。したがって、"\:" を含めるには、"\\:" と指定する必要があります。
E992セキュリティ上の理由から、"set" 以外のコマンドはサポートされていません (誰かがモデルラインを含むトロイの木馬テキストファイルを作成する可能性があるため)。また、すべてのオプションを設定できるわけではありません。一部のオプションにはフラグが設定されており、値が使用されるときに
サンドボックス が有効になります。一部のオプションは、
'modelineexpr' が設定されている場合にのみモデルラインから設定できます (デフォルトはオフ)。
それでも、モデルラインが問題を引き起こすリスクは常にわずかに存在します。たとえば、誰かが
'textwidth' を 5 に設定すると、すべての行が予期せずに折り返されます。したがって、信頼できないテキストを編集する前にモデルラインを無効にしてください。たとえば、mail ftplugin がこれを行います。
ヒント: オプションを設定する以外に何かを行いたい場合は、特定の文字列をファイルでチェックする自動コマンドを定義できます。例えば
au BufReadPost * if getline(1) =~ "VAR" | call SetVar() | endif
そして、"VAR" を含む行で何かを行う関数 SetVar() を定義します。
以下のリストでは、すべてのオプションが完全な名前と、省略形がある場合は省略形とともに記載されています。どちらの形式も使用できます。
このドキュメントでは、ブール値オプションが "set" されている場合は、":set option" が入力されていることを意味します。オプションが "reset" されている場合は、":set nooption" が使用されます。
ほとんどのオプションは、すべてのウィンドウとバッファで同じです。ウィンドウ内のテキストの表示方法に固有のものがいくつかあります。これらは、各ウィンドウで異なる値に設定できます。たとえば、
'list' オプションは、同じテキストに対して一方のウィンドウで設定し、もう一方のウィンドウでリセットできます。これにより、両方のタイプのビューを同時に表示できます。特定のファイルに固有のオプションもいくつかあります。これらは、ファイルまたはバッファごとに異なる値を持つことができます。たとえば、
'textwidth' オプションは、通常のテキストファイルの場合は 78、C プログラムの場合は 0 にすることができます。
global すべてのバッファとウィンドウで1つのオプション。 local to window 各ウィンドウには、このオプションの独自のコピーがあります。 local to buffer 各バッファには、このオプションの独自のコピーがあります。
新しいウィンドウを作成すると、現在アクティブなウィンドウのオプション値が、ウィンドウ固有のオプションのデフォルト値として使用されます。バッファ固有のオプションの場合、これは
'cpoptions' オプションの 's' フラグと 'S' フラグによって異なります。's' が含まれている場合 (これはデフォルトです)、バッファが最初に読み込まれるときに、バッファオプションの値が現在アクティブなバッファからコピーされます。'S' が存在する場合、バッファが読み込まれるたびにオプションがコピーされます。これは、グローバルオプションを持っているのとほぼ同じです。's' と 'S' が存在しない場合、バッファが作成されるときに、オプションが現在アクティブなバッファからコピーされます。
すべてのオプションがすべてのバージョンでサポートされているわけではありません。これは、サポートされている機能や、システムによって異なる場合があります。これに関する備考は、以下の中括弧の中に記載されています。オプションがサポートされていない場合でも、エラーが発生することなく設定できる場合があります。これは非表示オプションと呼ばれます。ただし、非表示オプションの値を取得することはできず、保存もされません。
オプション "foo" が ":set" で使用できるかどうかをテストするには、次のようなものを使用します。
if exists('&foo')
これは非表示オプションの場合にも true を返します。オプション "foo" が実際にサポートされているかどうかをテストするには、次のようなものを使用します。
if exists('+foo')
現在、2つの可能な値があります。"single": US-ASCII の文字と同じ幅を使用します。これはほとんどのユーザーが期待するものです。"double": ASCII 文字の2倍の幅を使用します。
E834 E835 'listchars' または
'fillchars' に、倍幅になる文字が含まれている場合、値 "double" を使用することはできません。これらのエラーは、setcellwidths() を呼び出すときにも発生する可能性があります。
これらの文字のグリフの幅が、従来の/伝統的な CJK エンコーディングで何オクテットを占めるかにのみ基づいている CJK フォントがいくつかあります。これらのエンコーディングでは、ユーロ、登録商標記号、ギリシャ/キリル文字は2オクテットで表されるため、これらのフォントにはそれらの文字の「幅広」グリフがあります。これは、テキストファイルでテーブルを作成するために使用される一部の線画文字にも当てはまります。したがって、CJK フォントが GUI Vim に使用されている場合、または CJK フォントを使用するターミナル (エミュレーター) 内で Vim が実行されている場合 (または、"-cjkwidth" オプションで起動された xterm 内で Vim が実行されている場合)、Vim が認識する幅とフォント内のグリフの幅を一致させるには、このオプションを "double" に設定する必要があります。システムロケールが CJK ロケールの1つに設定されている場合、CJK MS-Windows でも "double" に設定する必要がある可能性があります。Unicode Standard Annex #11 (
https://www.unicode.org/reports/tr11) を参照してください。
'autochdir' 'acd' 'noautochdir' 'noacd' 'autochdir' 'acd' ブール値 (デフォルト: 無効) グローバル このオプションが有効の場合、Vim はファイルを開く、バッファを切り替える、バッファを削除する、またはウィンドウを開閉するたびに現在の作業ディレクトリを変更します。開かれたファイルまたは選択されたファイルを含むディレクトリに変更されます。バッファに名前がない場合、ディレクトリもないため、そのバッファに移動しても現在のディレクトリは変更されません。
注意: このオプションが有効になっていると、一部のプラグインが動作しない場合があります。
'autowrite' 'aw' 'noautowrite' 'noaw' 'autowrite' 'aw' ブール値 (デフォルト: 無効) グローバル ファイルの内容が変更されている場合、
:next
、
:rewind
、
:last
、
:first
、
:previous
、
:stop
、
:suspend
、
:tag
、
:!
、
:make
、
CTRL-]
、および
CTRL-^
コマンドのたびに、ファイルの内容を書き込みます。また、
:buffer
、
CTRL-O
、
CTRL-I
、'
{A-Z0-9}
, or{A-Z0-9} コマンドによって別のファイルに移動した場合にも書き込まれます。バッファが非表示になった場合、例えば
'bufhidden' が "hide" に設定され、
:next
が使用された場合、バッファは書き込まれません。一部のコマンドでは
'autowrite' オプションが使用されないことに注意してください。それについては
'autowriteall' を参照してください。一部のバッファは、特に
'buftype' が "nowrite"、"nofile"、"terminal"、または "prompt" の場合は書き込まれません。注意して使用してください: 保存したくない一時的な変更をバッファに加えた場合、このオプションが原因で保存されてしまう可能性があります。":file
{name}
" でバッファの名前を変更すると、これを回避できる場合があります。
このオプションは背景色を変更するのではなく、"継承された" (ターミナル/GUI) 背景がどのように見えるかを Nvim に伝えます。背景色を明示的に設定したい場合は、
:hi-normal を参照してください。
g:colors_nameカラースキームがロードされると ("g:colors_name" 変数が設定される)、
'background' を変更すると、カラースキームが再ロードされます。カラースキームが
'background' の値に合わせて調整される場合、これは機能します。ただし、カラースキーム自体が
'background' を設定する場合、効果が取り消される可能性があります。必要に応じて、最初に "g:colors_name" 変数を削除してください。
通常、このオプションは vimrc ファイルで設定されます。おそらくターミナル名に依存します。例
if $TERM ==# "xterm"
set background=dark
endif
このオプションが変更されると、ハイライトグループのデフォルト設定が変更されます。他の設定を使用するには、
'background' オプションの設定後に ":highlight" コマンドを配置します。
'backspace' 'bs' 'backspace' 'bs' 文字列 (デフォルト: "indent,eol,start") グローバル 挿入モードでの
<BS>
、
<Del>
、
CTRL-W
、および
CTRL-U
の動作に影響を与えます。これは、コンマで区切られた項目のリストです。各項目は、何かをバックスペースで削除する方法を許可します。
値 効果
indent 自動インデントのバックスペースを許可する eol 改行のバックスペースを許可する (行を結合する) start 挿入の開始位置を超えるバックスペースを許可する;
CTRL-W
と
CTRL-U
は挿入の開始位置で一度停止します。nostop start と同様ですが、
CTRL-W
と
CTRL-U
は挿入の開始位置で停止しません。
値が空の場合、Vi 互換のバックスペースが使用され、上記の項目で言及されたいずれの方法も使用できません。
主な値は次のとおりです: "yes" ファイルのコピーを作成し、元のファイルを上書きする "no" ファイルの名前を変更し、新しいファイルを書き込む "auto" 上記のいずれか、最適な動作を行うもの
上記の値と組み合わせて使用できる追加の値は次のとおりです: "breaksymlink" 書き込み時に常にシンボリックリンクを中断する "breakhardlink" 書き込み時に常にハードリンクを中断する
コピーを作成して元のファイルを上書きする
ファイルのコピーには余分な時間がかかります。+ ファイルに特別な属性、(ハード/シンボリック) リンク、またはリソースフォークがある場合、これらはすべて保持されます。
ファイルがリンクの場合、バックアップには実際のファイルではなくリンクの名前が付けられます。
ファイルの名前を変更して新しいファイルを書き込む: + 高速です。
ファイルの一部の属性を新しいファイルにコピーできない場合があります。
ファイルがリンクの場合、新しいファイルはリンクになりません。
"auto" 値は中間的な方法です: Vim がファイルの名前変更が副作用なしに可能である (属性が渡され、ファイルがリンクではない) ことを確認した場合、それが使用されます。問題が予想される場合は、コピーが作成されます。
"breaksymlink" および "breakhardlink" 値は、"yes"、"no"、および "auto" のいずれかと組み合わせて使用できます。これらが含まれている場合、Vim は常にシンボリックまたはハードリンクを中断するように強制します。元のファイルの名前をバックアップになるように変更し、その場所に新しいファイルを書き込むことで、"no" オプションが実行するのと同じことを正確に行います。これは、すべてのファイルがシンボリックまたはハードリンクであり、変更はローカルソースツリーに残り、元のソースに伝播されるべきではないソースツリーなどで役立ちます。
crontab"no" および "auto" が問題を引き起こす可能性がある状況の1つ: ファイルを開き、そのファイルを編集するために Vim を呼び出し、次に開いたファイルが変更されたかどうかをテストする (ファイル記述子を介して) プログラムは、新しく作成されたファイルではなくバックアップファイルをチェックします。"crontab -e" がその一例であり、inotify のような
ファイルウォッチャーデーモンも同様です。その場合は、このオプションを切り替えることをお勧めします。
コピーを作成する場合、元のファイルは切り詰められ、新しいテキストで上書きされます。これは、元のファイルの保護ビット、所有者、シンボリックリンクが変更されないことを意味します。しかし、バックアップファイルは、ファイルを編集したユーザーが所有する新しいファイルです。バックアップのグループは、元のファイルのグループに設定されます。これが失敗した場合、グループの保護ビットは他のユーザーと同じにされます。
ファイルの名前を変更する場合、これは逆になります。バックアップは元のファイルと同じ属性を持ち、新しく書き込まれたファイルは現在のユーザーが所有します。ファイルが(ハード/シンボリック)リンクであった場合、新しいファイルはリンクになりません!そのため、ファイルがリンクの場合、「auto」の値は名前を変更しません。新しく書き込まれたファイルの所有者とグループは元のファイルと同じものに設定されますが、システムがこれを拒否する可能性があります。その場合、「auto」の値は再度ファイルの名前を変更しません。
'backupdir' 'bdir' 'backupdir' 'bdir' string (デフォルト ".,$XDG_STATE_HOME/nvim/backup//") グローバル バックアップファイルのディレクトリのリストをカンマ区切りで指定します。
バックアップファイルは、リスト内で作成可能な最初のディレクトリに作成されます。どのディレクトリも存在しない場合、Nvimはリストの最後のディレクトリを作成しようとします。
空の場合は、バックアップファイルは作成されません(
'patchmode'は使用できません!)。このため、書き込みが失敗する可能性があります。
ディレクトリ "." は、バックアップファイルを編集中のファイルと同じディレクトリに配置することを意味します。
"./" (またはMS-Windowsの場合は".\")で始まるディレクトリは、バックアップファイルを編集中のファイルの相対位置に配置することを意味します。先頭の"."は、編集中のファイルのパス名に置き換えられます。(ディレクトリ名の中の"."には特別な意味はありません)。
カンマ後のスペースは無視されますが、他のスペースはディレクトリ名の一部と見なされます。ディレクトリ名の先頭にスペースを入れるには、バックスラッシュを前に付けます。
ディレクトリ名にカンマを含めるには、バックスラッシュを前に付けます。
ディレクトリ名は '/' で終わる場合があります。
UnixおよびWin32の場合、ディレクトリが2つのパス区切り文字"//"で終わる場合、スワップファイル名は、すべてのパス区切り文字をパーセント'%'記号に変更したファイルの完全なパスから作成されます。これにより、バックアップディレクトリ内でのファイル名の一意性が保証されます。Win32では、"\\"で終わることも可能です。ただし、区切りカンマが続く場合は、"//"を使用する必要があります。なぜなら、"\\"はファイル名にカンマを含めるからです。したがって、"\\"ではなく'//'を使用することをお勧めします。
バックスラッシュ'\'文字には注意が必要です。スペースの前に1つ、オプションで1つ取得するには2つ入力してください(
option-backslashを参照)、例:
set bdir=c:\\tmp,\ dir\\,with\\,commas,\\\ dir\ with\ spaces
'backup' および
'writebackup' オプションも参照してください。Unixでバックアップファイルを非表示にしたい場合は、次の値を検討してください。
set backupdir=./.backup,~/.backup,.,/tmp
これが正しく機能するには、各ディレクトリとホームディレクトリに ".backup" ディレクトリを作成する必要があります。リストからディレクトリを追加または削除する場合は、
:set+= および
:set-= を使用することをお勧めします。これにより、将来のバージョンが別のデフォルトを使用する場合の問題を回避できます。このオプションは、セキュリティ上の理由から、
modeline または
sandbox から設定することはできません。
'backupext' 'bex' E589 'backupext' 'bex' string (デフォルト "~") グローバル バックアップファイルの名前を作成するためにファイル名に追加される文字列。デフォルトは、バックアップファイルで既存のファイルを誤って上書きすることを避けるため、非常に一般的ではありません。".bak"を使用することもできますが、保持したい".bak"ファイルがないことを確認してください。通常のファイル名文字のみを使用できます。
/\*?[|<>
は無効です。
多数のバックアップを保持したい場合は、ファイルを書き込む直前にタイムスタンプを含めるように
'backupext' を変更する BufWritePre オートコマンドを使用できます。
au BufWritePre * let &bex = '-' .. strftime("%Y%b%d%X") .. '~'
'backupskip' 'bsk' 'backupskip' 'bsk' string (デフォルト "$TMPDIR/*,$TMP/*,$TEMP/*" Unix: "/tmp/*,$TMPDIR/*,$TMP/*,$TEMP/*" Mac: "/private/tmp/*,$TMPDIR/*,$TMP/*,$TEMP/*") グローバル ファイルパターンのリスト。パターンの1つが書き込まれるファイルの名前と一致する場合、バックアップファイルは作成されません。指定されたファイル名とファイルのフルパス名の両方が使用されます。パターンは
:autocmd と同様に使用されます。
autocmd-pattern を参照してください。特殊文字に注意してください。
option-backslash を参照してください。$TMPDIR、$TMP、または$TEMPが定義されていない場合、デフォルト値には使用されません。 "/tmp/*"はUnixでのみ使用されます。
警告: バックアップファイルがないということは、Vimがバッファを正しく書き込めず、何らかの理由でVimが終了した場合、元のファイルと記述していた内容の両方が失われることを意味します。ファイルを失うことを気にしない場合にのみ、バックアップを無効にしてください。
環境変数は展開されないことに注意してください。$HOMEを使用する場合は、明示的に展開する必要があります。例:
let &backupskip = escape(expand('$HOME'), '\') .. '/tmp/*'
また、デフォルトでは "crontab -e" が機能することも確認してください(元のファイルの名前を変更してバックアップを作成する場合、crontabは新しく作成されたファイルを確認しません)。
'backupcopy' および
crontab も参照してください。
項目 存在する場合の意味
all すべてのイベント。 backspace
<BS>
または
<Del>
を押して削除した結果、エラーが発生した場合。 cursor カーソルキーまたは
<PageUp>
/<PageDown> を使用して
挿入モード で移動に失敗した場合。 complete
i_CTRL-X_CTRL-K または
i_CTRL-X_CTRL-T を使用したときにエラーが発生した場合。 copy
i_CTRL-Y または
i_CTRL-E を使用して挿入モードから文字をコピーできない場合。 ctrlg 挿入モードで
<C-G>
の後に不明な文字が入力された場合。 error その他のエラーが発生した場合(例:最後の行を結合しようとした場合)(主に
ノーマルモード または
コマンドラインモードで使用されます)。 esc
ノーマルモード で
<Esc>
を押した場合。 hangul 無視されます。 lang Lua/Mzscheme/TCLのbeepモジュールを呼び出した場合。 mess
g< で出力が利用できない場合。 showmatch
'showmatch' 関数でエラーが発生した場合。 operator 空の領域エラー
cpo-E。 register
挿入モード で
<C-R>
の後に不明なレジスタが入力された場合。 shell シェル出力
:! からのベル。 spell スペルサジェストでエラーが発生した場合。 term
:terminal 出力からのベル。 wildmode
コマンドライン補完 で使用可能なより多くのマッチ(
'wildmode' 設定によって異なります)。
これは、挿入モードでベルを鳴らすタイミングを細かく調整するのに最も役立ちます。ノーマルモードおよびExコマンドの場合、エラーが発生したことを示すためにベルが鳴ることがよくあります。「error」キーワードを追加することで、消音できます。
'bomb' 'nobomb' 'bomb' boolean (デフォルト off) バッファローカル ファイルを書き込むときに、次の条件が満たされる場合、BOM(Byte Order Mark)がファイルの先頭に追加されます。
このオプションがオン
'fileencoding' が "utf-8"、"ucs-2"、"ucs-4"、またはリトル/ビッグエンディアンのいずれかのバリアントである場合。一部のアプリケーションでは、BOMを使用してファイルのエンコーディングを認識します。MS-WindowsでUCS-2ファイルによく使用されます。他のアプリケーションでは、たとえば、"cat file1 file2"を実行すると、file2のBOMが結果のファイルの途中に表示されるため、問題が発生します。GccはBOMを受け入れません。Vimがファイルを読み込み、
'fileencodings' が "ucs-bom" で始まる場合、BOMの存在を確認し、それに応じて
'bomb' を設定します。
'binary' が設定されていない限り、編集時に表示されないように、最初の行から削除されます。オプションを変更しないと、ファイルを書き込むときにBOMが復元されます。
注意: "unload"、"delete"、"wipe" が使用されている場合、バッファ内の変更は警告なしに失われます。また、これらの値は、一時的にバッファを切り替える自動コマンドを中断させる可能性があります。このオプションは、
'buftype'および
'swapfile'と共に、特別な種類のバッファを指定するために使用されます。
特殊なバッファを参照してください。
'buflisted' 'bl' 'nobuflisted' 'nobl' E85 'buflisted' 'bl' boolean (デフォルト: on) バッファローカル。このオプションが設定されている場合、バッファはバッファリストに表示されます。リセットされている場合は、":bnext"、"ls"、バッファメニューなどには使用されません。このオプションは、ファイル名やマークを記憶するためだけに使用されるバッファの場合、Vimによってリセットされます。Vimはバッファを編集し始めるときにそれを設定します。しかし、":buffer"でバッファに移動するときは設定しません。
このオプションを変更する場合は注意してください。多くの副作用が発生する可能性があります。このような副作用の1つは、ファイルが別のプログラムによって変更された場合、Vimはファイルのタイムスタンプをチェックしないことです。
"quickfix"バッファは、エラーリストとロケーションリストにのみ使用されます。この値は、
:cwindowおよび
:lwindowコマンドによって設定され、変更することは想定されていません。
"nofile"バッファと"nowrite"バッファは似ています: 両方: バッファはディスクに書き込まれません。":w"は機能しません (ただし、":w filename"は機能します)。両方: バッファは決して
'modified'であるとは見なされません。Vimを終了するなど、変更が失われる場合でも警告はありません。両方: スワップファイルは、メモリを使いすぎている場合(
'swapfile'がリセットされている場合は、スワップファイルは作成されません)にのみ作成されます。nofileのみ: バッファ名は固定されており、ファイル名のように処理されません。
:cdコマンドに応じて変更されることはありません。両方: ":e bufname"を使用し、すでに"bufname"を編集している場合、バッファは空になり、
:editの場合と同様に自動コマンドがトリガーされます。
E676"acwrite"は、バッファ名が"nofile"のようにファイルに関連付けられていないが、書き込まれることを意味します。したがって、"nofile"および"nowrite"とは対照的に、":w"は機能し、変更されたバッファを保存せずに破棄することはできません。書き込みには、一致する
BufWriteCmd、
FileWriteCmd、または
FileAppendCmd自動コマンドが必要です。
'casemap' 'cmp' 'casemap' 'cmp' string (デフォルト: "internal,keepascii") グローバル。文字の大文字と小文字の変更に関する詳細を指定します。次の単語をコンマで区切って含めることができます: internal 内部の大文字/小文字変換関数を使用します。現在のロケールは、大文字/小文字変換を変更しません。"internal"が省略されている場合、towupper()およびtowlower()システムライブラリ関数が利用可能な場合は使用されます。keepascii ASCII文字(0x00から0x7f)の場合、US大文字/小文字変換を使用します。現在のロケールは有効ではありません。これはおそらくトルコ語でのみ重要です。
'cdpath' 'cd' E344 E346 'cdpath' 'cd' string (デフォルト: $CDPATHまたは ",,"と同等) グローバル。これは、
:cd、
:tcd、および
:lcdコマンドを使用するときに検索されるディレクトリのリストです。検索対象のディレクトリに、"/"、"./"、または"../"で始まる絶対パスではなく相対パスがある場合、
'cdpath'オプションは使用されません。
'cdpath'オプションの値は、
'path'と同じ形式とセマンティクスを持ちます。また、
ファイル検索も参照してください。デフォルト値は$CDPATHから取得され、現在のディレクトリを最初に検索するために","が前に付加されます。$CDPATHから取得したデフォルト値が望ましくない場合は、それをオーバーライドするために、次のコマンドの変更バージョンをvimrcファイルに含めてください。
let &cdpath = ',' .. substitute(substitute($CDPATH, '[, ]', '\\\0', 'g'), ':', ',', 'g')
'cedit'
'cedit' string (デフォルト:
CTRL-F
) グローバル。コマンドラインウィンドウを開くために、コマンドラインモードで使用されるキー。印刷不可能なキーのみが許可されています。キーは単一の文字として指定できますが、入力は困難です。推奨される方法は、
キー表記 (例:
<Up>
,
<C-F>
) またはキャレットが前に付いた文字 (例:
^F
は
CTRL-F
) を使用することです。例
set cedit=^Y
set cedit=<Esc>
Nviにもこのオプションがありますが、最初の文字のみを使用します。
cmdwinを参照してください。
'charconvert' 'ccv' E202 E214 E513 'charconvert' 'ccv' string (デフォルト: "") グローバル。文字エンコーディング変換に使用される式。読み込まれるファイルまたは書き込まれたファイルのエンコーディングが、目的のエンコーディングと異なる場合に評価されます。
'charconvert'は、内部iconv()関数がサポートされており、変換を実行できる場合には使用されません。iconv()を使用することをお勧めします。はるかに高速であるためです。
'charconvert'は、stdin
--を読み込むときには使用されません。変換元のファイルがないためです。最初にテキストをファイルに保存する必要があります。式は、成功の場合はゼロ、false、または空の文字列を、失敗の場合はゼロ以外またはtrueを返す必要があります。
エンコーディング名で、使用可能なエンコーディング名を参照してください。さらに、
'fileencodings'および
'fileencoding'で指定された名前が使用されます。"latin1"、"unicode"、"ucs-2"、"ucs-4"、"utf-8"間の変換は、Vimによって内部的に行われ、
'charconvert'はこれには使用されません。Unicode変換にも使用されます。例
set charconvert=CharConvert()
fun CharConvert()
system("recode "
\ .. v:charconvert_from .. ".." .. v:charconvert_to
\ .. " <" .. v:fname_in .. " >" .. v:fname_out)
return v:shell_error
endfun
関連するVim変数は次のとおりです: v:charconvert_from 現在のエンコーディングの名前 v:charconvert_to 目的のエンコーディングの名前 v:fname_in 入力ファイルの名前 v:fname_out 出力ファイルの名前。 v:fname_inとv:fname_outは決して同じにならないことに注意してください。
'charconvert' の式が s: または
<SID> で始まる場合、スクリプト ID (
ローカル関数) に置き換えられます。例
set charconvert=s:MyConvert()
set charconvert=<SID>SomeConvert()
そうでない場合、式はオプションが設定されたスクリプトのコンテキストで評価されるため、スクリプトローカルの項目が利用可能です。
'cinscopedecls' 'cinsd' 'cinscopedecls' 'cinsd' string (デフォルト: "public,protected,private") バッファローカル
cino-g によって C++ スコープ宣言として解釈されるキーワード。例えば、「signals」、「public slots」、「private slots」などの追加のスコープ宣言を定義する Qt フレームワークを扱う場合に便利です。
set cinscopedecls+=signals,public\ slots,private\ slots
clipboard-unnamed unnamed これが含まれている場合、Vim は、通常は無名レジスタに送られるすべてのヤンク、削除、変更、および貼り付け操作に、クリップボードレジスタ "*" を使用します。レジスタが明示的に指定されている場合は、"unnamed" が
'clipboard' に含まれているかどうかに関係なく、常に使用されます。クリップボードレジスタは、常に "*" 表記を使用して明示的にアクセスできます。
クリップボードも参照してください。
clipboard-unnamedplus unnamedplus "unnamed" フラグのバリアントで、通常は無名レジスタに送られるすべてのヤンク、削除、変更、および貼り付け操作に、レジスタ "*" の代わりにクリップボードレジスタ "+" (
quoteplus) を使用します。"unnamed" もオプションに含まれている場合、ヤンクおよび削除操作 (貼り付けは除く) は、テキストをレジスタ "*" にもコピーします。
クリップボードを参照してください。
'cmdheight' がゼロの場合、コマンドラインが使用されている場合を除き、コマンドラインは表示されません。コマンドラインは、表示されると画面の最後の行をカバーします。
警告: cmdheight=0
は実験的機能です。望ましくない動作が発生する可能性があります。一部の
'shortmess' フラグや同様のメカニズムが有効にならず、望ましくない hit-enter プロンプトが発生する可能性があります。Nvim 自体とプラグインの両方からのいくつかの情報メッセージが表示されません。
'colorcolumn' 'cc' 'colorcolumn' 'cc' string (デフォルト: "") ウィンドウローカル
'colorcolumn' は、ColorColumn
hl-ColorColumn で強調表示される画面列のカンマ区切りリストです。テキストを揃えるのに便利です。画面の再描画が遅くなります。画面列は絶対数、または
'textwidth' に加算または減算される '+' または '-' が前に付いた数値にできます。
set cc=+1 " highlight column after 'textwidth'
set cc=+1,+2,+3 " highlight three columns after 'textwidth'
hi ColorColumn ctermbg=lightgrey guibg=lightgrey
'textwidth' がゼロの場合、'-' および '+' 付きの項目は使用されません。最大 256 列が強調表示されます。
'columns' 'co' E594 'columns' 'co' number (デフォルト: 80 または端末の幅) グローバル 画面の列数。通常、これは端末の初期化によって設定されるため、手動で設定する必要はありません。Vim が GUI またはサイズ変更可能なウィンドウで実行されている場合、このオプションを設定すると、ウィンドウサイズが変更されます。GUI のサイズのみを使用する場合は、
ginit.vim ファイルにコマンドを記述します。このオプションを設定し、Vim がディスプレイの物理的な列数を変更できない場合、ディスプレイが乱れる可能性があります。GUI の場合、常に可能であり、Vim は画面に収まる列数に制限します。このコマンドを使用すると、可能な限り広いウィンドウを取得できます。
set columns=9999
最小値は 12、最大値は 10000 です。
'complete' 'cpt' E535 'complete' 'cpt' string (デフォルト: ".,w,b,u,t") バッファローカル このオプションは、
CTRL-P
または
CTRL-N
が使用された場合に、キーワード補完
ins-completion がどのように機能するかを指定します。また、全行補完
i_CTRL-X_CTRL-L にも使用されます。これは、補完の種類とスキャンする場所を示します。これは、フラグのカンマ区切りリストです: . 現在のバッファをスキャンします(
'wrapscan' は無視されます) w 他のウィンドウのバッファをスキャンします b バッファリストにある他のロードされたバッファをスキャンします u バッファリストにあるアンロードされたバッファをスキャンします U バッファリストにないバッファをスキャンします k
'dictionary' オプションで指定されたファイルをスキャンします kspell 現在アクティブなスペルチェック
spell を使用します k{dict} ファイル
{dict}
をスキャンします。複数の "k" フラグを指定できます。パターンも有効です。例
set cpt=k/usr/dict/*,k~/spanish
s
'thesaurus' オプションで指定されたファイルをスキャンします s{tsr} ファイル
{tsr}
をスキャンします。複数の "s" フラグを指定できます。パターンも有効です。 i 現在のファイルとインクルードファイルをスキャンします d 現在のファイルとインクルードファイルで定義された名前またはマクロをスキャンします
i_CTRL-X_CTRL-D ] タグ補完 t "]" と同じ f バッファの内容ではなくバッファ名をスキャンします
アンロードされたバッファはロードされないため、それらの autocmd
:autocmd は実行されません。これにより、一部のファイル (たとえば、gzip ファイル) から予期しない補完が行われる可能性があります。アンロードされたバッファは、全行補完ではスキャンされません。
menuone 候補が1つしかない場合でも、ポップアップメニューを使用します。候補に関する追加情報(例:どのファイルから来たか)がある場合に役立ちます。
longest 候補の最長共通テキストのみを挿入します。メニューが表示されている場合は、
CTRL-L
を使用して文字を追加できます。大文字小文字が無視されるかどうかは、補完の種類によって異なります。バッファテキストの場合、
'ignorecase' オプションが使用されます。
preview 現在選択されている補完に関する追加情報をプレビューウィンドウに表示します。"menu"または"menuone"との組み合わせでのみ機能します。
popup 現在選択されている補完に関する追加情報をポップアップウィンドウに表示します。"menu"または"menuone"との組み合わせでのみ機能します。"preview"よりも優先されます。
noinsert ユーザーがメニューから候補を選択するまで、候補のテキストを挿入しません。"menu"または"menuone"との組み合わせでのみ機能します。"longest"がある場合は無効です。
noselect メニューで候補を選択せず、ユーザーにメニューから選択させるように強制します。"menu"または"menuone"との組み合わせでのみ機能します。
fuzzy 補完候補に対して
ファジーマッチングを有効にします。これにより、より柔軟で直感的なマッチングが可能になり、文字をスキップしたり、正確な順序で入力されていなくてもマッチを見つけることができます。候補がどのように収集されるか(さまざまな補完タイプを使用)ではなく、候補リストから候補がどのように絞り込まれるかにのみ影響します。
'completeslash' 'csl' 'completeslash' 'csl' 文字列 (デフォルト "") MS-Windows のみでバッファローカル このオプションが設定されている場合、補完のために
'shellslash' が上書きされます
このオプションが "slash" に設定されている場合、インサートモードでのパス補完にスラッシュが使用されます。これは、MS-Windows で
'noshellslash' がオンになっている場合に HTML タグや Makefile を編集する際に役立ちます。
このオプションが "backslash" に設定されている場合、バックスラッシュが使用されます。これは、MS-Windows で
'shellslash' が設定されている場合にバッチファイルを編集する際に役立ちます。
このオプションが空の場合、
'shellslash' と同じ文字が使用されます。インサートモード補完ではバッファローカルの値が使用されます。コマンドライン補完ではグローバル値が使用されます。
'v' はカーソルだけでなく、ビジュアルエリアのすべての行に適用されます。便利な値は "nc" です。これはヘルプファイルで使用されています。テキストを移動している限り、テキストは隠蔽されますが、テキストの挿入を開始したり、ビジュアルエリアを選択したりすると、隠蔽されたテキストが表示され、何をしているかを確認できます。カーソルの位置は、常に表示される場所にあるとは限りません。例えば、垂直に移動すると、列が変更される場合があります。
値 効果
0 テキストは通常どおりに表示されます。 1 隠蔽されたテキストの各ブロックは1文字に置き換えられます。シンタックス項目にカスタム置換文字が定義されていない場合(
:syn-cchar を参照)、
'listchars' で定義された文字が使用されます。"Conceal" ハイライトグループでハイライト表示されます。2 カスタム置換文字が定義されている場合を除き(
:syn-cchar を参照)、隠蔽されたテキストは完全に非表示になります。3 隠蔽されたテキストは完全に非表示になります。
注意: カーソル行では隠蔽されたテキストは非表示になりません。そのため、テキストを編集およびコピーできます。これは
'concealcursor' オプションで変更できます。
動作が含まれています
cpo-a a これが含まれている場合、ファイル名引数付きの ":read" コマンドは、現在のウィンドウの代替ファイル名を設定します。
cpo-AA これが含まれている場合、ファイル名引数付きの ":write" コマンドは、現在のウィンドウの代替ファイル名を設定します。
cpo-bb ":map" コマンドの "\|" はマップコマンドの終わりとして認識されます。'\' はマッピングに含まれ、'|' の後のテキストは次のコマンドとして解釈されます。マッピングに '|' を含めるには、バックスラッシュの代わりに
CTRL-V
を使用します。すべてのマッピング、省略形、メニュー、および自動コマンドに適用されます。
map_bar も参照してください。
cpo-BB バックスラッシュは、マッピング、省略形、ユーザーコマンド、およびメニューコマンドの "to" 部分で特別な意味を持ちません。このフラグを削除すると、バックスラッシュを
CTRL-V
のように使用できます。たとえば、コマンド ":map X \<Esc>" は、次の結果になります。'B' が含まれている場合:X は "\^[" (^[ は実際の
<Esc>
)にマップされます 'B' が除外されている場合:X は "<Esc>" (5文字)にマップされます
cpo-cc 検索は、カーソル位置での一致の末尾から継続されますが、次の行の先頭よりも先には進みません。存在しない場合、検索はカーソル位置から1文字継続されます。'c' があると、"abababababab" は "/abab" を繰り返すと3つの一致のみを取得しますが、'c' がないと、5つの一致があります。
cpo-CC バックスラッシュで始まるソース行を連結しないでください。
line-continuation を参照してください。
cpo-dd
'tags' オプションで "./" を使用しても、現在のファイルに関連するタグファイルを使用するのではなく、現在のディレクトリのタグファイルを使用することを意味します。
cpo-DD
r、
f、
t のように文字引数を持つノーマルモードコマンドの後で、
CTRL-K
を使用してダイグラフを入力することはできません。
cpo-ee ":@r" でレジスタを実行する場合、レジスタが行単位ではない場合でも、常に最後の行に
<CR>
を追加します。このフラグが存在せず、レジスタが行単位ではなく、最後の行が
<CR>
で終わっていない場合、最後の行はコマンドラインに配置され、
<CR>
を押す前に編集できます。
cpo-EE 空の領域で "y"、"d"、"c"、"g~"、"gu"、または "gU" を使用するとエラーになります。演算子は、少なくとも1文字が操作対象になる場合にのみ機能します。例:これにより、最初の列で "y0" が失敗します。
cpo-ff これが含まれている場合、ファイル名引数付きの ":read" コマンドは、現在のバッファにファイル名がまだない場合、現在のバッファのファイル名を設定します。
cpo-FF これが含まれている場合、ファイル名引数付きの ":write" コマンドは、現在のバッファにファイル名がまだない場合、現在のバッファのファイル名を設定します。
cpo-P も参照してください。
cpo-ii これが含まれている場合、ファイルの読み取りを中断すると、変更されたままになります。
cpo-II
'autoindent' のインデントを挿入した直後にカーソルを上下に移動する場合、インデントを削除しないでください。
cpo-JJ
文は、'.'、'!'、または'?' の後に2つのスペースが続く必要があります。
<Tab>
は空白として認識されません。
cpo-KK マッピングの途中で、キーコードが完了するのを待たないでください。これにより、2番目の
<F1>
の一部のみが読み取られた場合、マッピング
<F1>
<F1>
が中断されます。
<F1>
<Esc>
を入力してマッピングをキャンセルできます。
cpo-ll 検索パターンの [] 範囲のバックスラッシュは文字どおりに解釈されます。"\]"、"\^"、"\-"、および "\\" のみが特別です。
/[] を参照してください 'l' が含まれている場合: "/[ \t]" は
<Space>
、'\'、および 't' を検索します 'l' が除外されている場合: "/[ \t]" は
<Space>
および
<Tab>
を検索します
cpo-LL
'list' オプションが設定されている場合、
'wrapmargin'、
'textwidth'、
'softtabstop'、および仮想置換モード(
gR を参照)では、
<Tab>
は通常の
<Tab>
の動作ではなく、2文字としてカウントされます。
cpo-mm これが含まれている場合、showmatch は常に0.5秒待ちます。含まれていない場合、showmatch は0.5秒待つか、文字が入力されるまで待ちます。
'showmatch'cpo-MM 除外すると、"%"マッチングはバックスラッシュを考慮します。したがって、"( \( )" と "\ ( ( \)" では、外側の括弧がマッチします。含めると、"%"はバックスラッシュを無視し、Vi互換になります。
cpo-nn 含めると、
'number' と
'relativenumber' に使用される列は、折り返し行のテキストにも使用されます。
cpo-oo 検索コマンドの行オフセットは、次の検索のために記憶されません。
cpo-OO 編集時に存在しなかった場合でも、ファイルを上書きしても文句を言いません。これは、誰かによって予期せず作成されたファイルに対する保護です。Vi はこれについて文句を言いませんでした。
cpo-PP 含めると、ファイルに追記する ":write" コマンドは、現在のバッファにまだファイル名がなく、'F' フラグも含まれている場合、現在のバッファのファイル名を設定します
cpo-F。
cpo-qq 複数の行を結合するとき、2つの行を結合するときと同じ位置にカーソルを残します。
cpo-rr やり直し("."コマンド)は、実際に使用された検索文字列の代わりに、検索コマンドを繰り返すために"/"を使用します。
cpo-RR フィルタリングされた行からマークを削除します。このフラグがない場合、マークは
:keepmarks が使用されたように保持されます。
cpo-ss バッファに初めて入るときにバッファオプションを設定します。これは Vim バージョン 3.0 の場合と同じです。そして、これがデフォルトです。存在しない場合、オプションはバッファが作成されたときに設定されます。
cpo-SS バッファに入るときに常にバッファオプションを設定します(
'readonly'、
'fileformat'、
'filetype' および
'syntax' を除く)。これは(最も)Vi互換の設定です。オプションは、現在のバッファの値に設定されます。オプションを変更して別のバッファに移動すると、値がコピーされます。事実上、バッファオプションをすべてのバッファに対してグローバルにします。
's' 'S' バッファオプションをコピー バッファ作成時 no no バッファに最初に入った時 yes no (デフォルト) X バッファに入った時毎回 yes (vi互換)
cpo-tt タグコマンドの検索パターンは "n" コマンドのために記憶されます。それ以外の場合、Vim は検索パターンの履歴にパターンを入れるだけで、最後に使用された検索パターンを変更しません。
cpo-uu 取り消しは Vi 互換です。
undo-two-ways を参照してください。
cpo-vv バックスペースで削除された文字は、挿入モードで画面に表示されたままになります。このフラグがない場合、文字はすぐに画面から消去されます。このフラグを使用すると、画面に新しく入力されたテキストがバックスペースで削除された文字を上書きします。
cpo-WW 読み取り専用ファイルを上書きしません。省略すると、":w!"は可能であれば読み取り専用ファイルを上書きします。
cpo-xx コマンドラインで
<Esc>
を押すと、コマンドラインが実行されます。Vim のデフォルトはコマンドラインを破棄することです。なぜなら、
<Esc>
は通常コマンドを中断するからです。
c_<Esc> cpo-XX "R" でカウントを使用する場合、置換されたテキストは 1 回だけ削除されます。"R" を "." とカウントで繰り返す場合も同様です。
cpo-yy ヤンクコマンドは "." でやり直すことができます。本当にこれを使用したいかどうかをよく考えてください。ほとんどの人は "." が変更を繰り返すだけだと予想するため、一部のプラグインが破損する可能性があります。
cpo-ZZ
'readonly' オプションが設定されているときに "w!" を使用する場合、
'readonly' をリセットしないでください。
cpo-!! フィルタコマンドをやり直すとき、それが何であれ、最後に使用された外部コマンドを使用します。それ以外の場合は、最後に使用された -filter- コマンドが使用されます。
cpo-$$ 1 行を変更するとき、行を再表示するのではなく、変更されたテキストの最後に '$' を配置します。新しいテキストを入力すると、変更されたテキストが上書きされます。挿入点からカーソルを移動するコマンドを入力すると、行が再表示されます。
cpo-%% Vi互換のマッチングは "%" コマンドに対して実行されます。 "#if"、"#endif" などを認識しません。"/*" と "*/" を認識しません。一重引用符と二重引用符の内側の括弧もカウントされ、括弧を含む文字列がマッチングを妨げます。たとえば、「if (strcmp("foo(", s))」のような行では、最初の括弧は最後の括弧と一致しません。このフラグが含まれていない場合、一重引用符と二重引用符の内側の括弧は特別に扱われます。引用符の外側の括弧をマッチングする場合、引用符の内側のすべてが無視されます。引用符の内側の括弧をマッチングする場合、マッチングする括弧(存在する場合)を見つけます。これは C プログラムで非常にうまく機能します。このフラグは、C インデントなどの他の機能にも使用されます。
cpo-++ 含めると、":write file" コマンドは、バッファ自体がファイルと異なる可能性がある場合でも、バッファの
'modified' フラグをリセットします。
cpo->> レジスタに追加する場合、追加されたテキストの前に改行を入れます。
cpo-;; 最後に
t 検索を繰り返すために
, または
; を使用し、カーソルが検索された文字のすぐ前にある場合、カーソルは移動しません。含まれていない場合、カーソルはそれをスキップして、次の出現にジャンプします。
cpo-__ 単語で
cw を使用する場合、モーションに単語に続く空白を含めないでください。
特殊値: "both" 値 "line,number" のエイリアス。
"line" と "screenline" は一緒に使用できません。
スペースまたはバックスラッシュを含めるためのバックスラッシュの挿入については、
option-backslash を参照してください。C++ の場合、const 型宣言を含めるためにこの値が役立ちます
^\(#\s*define\|[a-z]*\s*const\s*[a-z]*\)
また、名前の直前に "\ze" を使用して、それに続くものをチェックするためにパターンを続けることもできます。たとえば、Javascript の場合、関数が
func_name = function(args)
で定義されている場合
^\s*\ze\i\+\s*=\s*function(
関数が
func_name : function() {...
で定義されている場合
^\s*\ze\i\+\s*[:]\s*(*function\s*(
":set" コマンドを使用するときは、バックスラッシュを二重にする必要があります。それを避けるには、一重引用符文字列で
:let
を使用します
let &l:define = '^\s*\ze\k\+\s*=\s*function('
これは、ベース文字の上に結合文字を持つ可能性のあるアラビア語、ヘブライ語、その他多くの言語で、結合文字のみを削除したい場合に役立ちます。
このオプションが空の場合、または "spell" エントリが存在し、スペルチェックが有効な場合、現在アクティブな
'spelllang' の単語リスト内の単語が使用されます。
spellを参照してください。
ファイル名にコンマを含めるには、コンマの前にバックスラッシュを付けます。コンマの後のスペースは無視されます。それ以外のスペースはファイル名に含まれます。バックスラッシュの使用については
option-backslashを参照してください。これは
Dictionary変数型とは関係ありません。単語のリストはどこで見つけられますか?
BSD/macOSには "/usr/share/dict/words" ファイルが含まれています。
apt管理システム (Debian/Ubuntu) で "/usr/share/dict/words" ファイルを入手するには "apt install spell" を試してください。リストへのディレクトリの追加や削除の際には、
:set+= および
:set-= を使用することをお勧めします。これにより、将来のバージョンで別のデフォルトが使用される場合の問題を回避できます。セキュリティ上の理由から、このオプションではバッククォートを使用できません。
filler テキストを、同じ位置に行が挿入されたウィンドウと同期させるために、フィラー行を表示します。主にウィンドウが左右に並んでおり、
'scrollbind'が設定されている場合に役立ちます。
context:{n} 変更と変更されていない行を含む折りたたみの間に
{n}
行のコンテキストを使用します。省略した場合、6行のコンテキストが使用されます。ゼロを使用する場合、折りたたみの間には行が必要なため、実際にはコンテキストは1つになります。これは削除された行の場合も同様です。完全に折りたたみを無効にするには、非常に大きな値 (999999) に設定してください。
fold-diffを参照してください。
iblank 行がすべて空白の場合の変更を無視します。
'diffexpr'が空の場合、"diff" コマンドに "-B" フラグを追加します。これが正確に何をするかについては、"diff" コマンドのドキュメントを確認してください。
注: 空白行の間の差異は考慮されないため、差分ウィンドウは同期しなくなります。
icase テキストの大文字小文字の変更を無視します。「a」と「A」は同じと見なされます。
'diffexpr'が空の場合、"diff" コマンドに "-i" フラグを追加します。
iwhite 空白の量の変更を無視します。
'diffexpr'が空の場合、"diff" コマンドに "-b" フラグを追加します。これが正確に何をするかについては、"diff" コマンドのドキュメントを確認してください。末尾の空白の追加は無視されますが、先頭の空白は無視されません。
iwhiteall すべての空白の変更を無視します。
'diffexpr'が空の場合、"diff" コマンドに "-w" フラグを追加します。これが正確に何をするかについては、"diff" コマンドのドキュメントを確認してください。
iwhiteeol 行末の空白の変更を無視します。
'diffexpr'が空の場合、"diff" コマンドに "-Z" フラグを追加します。これが正確に何をするかについては、"diff" コマンドのドキュメントを確認してください。
horizontal (特に指定がない限り) 水平分割で diff モードを開始します。
vertical (特に指定がない限り) 垂直分割で diff モードを開始します。
closeoff
'diff'が設定されているウィンドウが閉じられ、同じタブページに残っている
'diff'が設定されているウィンドウが1つだけの場合、そのウィンドウで
:diffoff
を実行します。これにより、
:diffsplit
コマンドが取り消されます。
hiddenoff バッファが非表示になったときに、差分モードを使用しないでください。
foldcolumn:{n} 差分モードを開始するときに、
'foldcolumn'オプションを
{n}
に設定します。これがない場合、2が使用されます。
followwrap
'wrap'オプションに従い、そのままにします。
internal 内部diffライブラリを使用します。
'diffexpr'が設定されている場合は無視されます。
E960 バッファの書き込み時にメモリが不足した場合、そのバッファに関連するdiffについては、この項目は無視されます。これが発生したときに確認するには、
'verbose'オプションを設定してください。
indent-heuristic 内部diffライブラリにインデントヒューリスティックを使用します。
linematch:{n} 生成された各hunkで、行を整列させるために2段階目のdiffを有効にします。hunk内の行の合計数が{n}
を超える場合、非常に大きなhunkは著しい遅延を引き起こす可能性があるため、2段階目のdiffは実行されません。推奨設定は "linematch:60" です。これにより、最大30行のhunkを持つ2つのバッファの差分、または最大20行のhunkを持つ3つのバッファの差分で整列が有効になります。
algorithm:{text} 内部diffエンジンで指定されたdiffアルゴリズムを使用します。現在サポートされているアルゴリズムは次のとおりです。myers デフォルトのアルゴリズム minimal 可能な限り小さい差分を生成するために追加の時間を費やす patience Patience diffアルゴリズム histogram ヒストグラムdiffアルゴリズム
例:
set diffopt=internal,filler,context:4
set diffopt=
set diffopt=internal,filler,foldcolumn:3
set diffopt-=internal " do NOT use the internal diff parser
可能な項目
スワップファイルは、作成可能な最初のディレクトリに作成されます。どのディレクトリでも作成できない場合でも、オプションにリストされている最後のディレクトリが存在しない場合は、作成されます。
空の場合、スワップファイルは使用されません (リカバリは不可能!)
E303 エラーも表示されません。
ディレクトリ "." は、編集されたファイルと同じディレクトリにスワップファイルを配置することを意味します。Unixでは、ファイル名の前にドットが付くため、ディレクトリ一覧には表示されません。MS-Windowsでは、「隠し」属性が設定され、可能であればドットが付加されます。
"./" (またはMS-Windowsの場合は "\.") で始まるディレクトリは、編集されたファイルの場所を基準としてスワップファイルを配置することを意味します。先頭の "." は、編集されたファイルのパス名に置き換えられます。
UnixおよびWin32の場合、ディレクトリが2つのパス区切り文字 "//" で終わる場合、スワップファイル名は、ファイルへの完全パスから構築され、すべてのパス区切り文字はパーセント '%' 記号に置き換えられます (Win32の場合はドライブ文字に続くコロンを含む)。これにより、保存ディレクトリ内のファイル名の一意性が保証されます。Win32では、"\\" で終わることも可能です。ただし、区切りコンマが続く場合は、"//"を使用する必要があります。これは、"\\" がファイル名にコンマを含めるためです。したがって、'\\'の代わりに'//'を使用することをお勧めします。
カンマ後のスペースは無視されますが、他のスペースはディレクトリ名の一部と見なされます。ディレクトリ名の先頭にスペースを入れるには、バックスラッシュを前に付けます。
ディレクトリ名にカンマを含めるには、バックスラッシュを前に付けます。
ディレクトリ名は、':' または '/' で終わる場合があります。
バックスラッシュ'\'文字には注意が必要です。スペースの前に1つ、オプションで1つ取得するには2つ入力してください(
option-backslashを参照)、例:
set dir=c:\\tmp,\ dir\\,with\\,commas,\\\ dir\ with\ spaces
同じファイルを2回編集すると、警告が表示されます。 "/tmp" を使用することは推奨されません。システムがクラッシュするとスワップファイルが失われます。また、コンピュータ上の他の人がファイルを見ることができる可能性があります。リストへのディレクトリの追加や削除の際は、
:set+= および
:set-= を使用してください。これにより、Nvimのデフォルトが変更された場合に発生する問題を回避できます。
'display' 'dy' 'display' 'dy' 文字列 (デフォルト "lastline") グローバル テキストの表示方法を変更します。これはコンマ区切りのフラグのリストです。lastline これが含まれる場合、ウィンドウの最後の行が可能な限り表示されます。行の残りの部分が表示されないことを示すために、最後の画面行の最後の列に "@@@" が配置されます。truncate "lastline" と同様ですが、"@@@" は最後の画面行の最初の列に表示されます。"lastline" をオーバーライドします。uhex 表示不可能な文字を、^C や ~C を使用する代わりに、16進数の
<xx>
で表示します。msgsep 非推奨フラグ。許可されていますが、効果はありません。
msgsep
"lastline" と "truncate" のどちらも含まれていない場合、収まらない最後の行は "@" 行に置き換えられます。
残念ながら、これに関する適切な仕様はなく、試行錯誤に基づいて決定されています。動作を変更するには、
setcellwidths()関数を使用してください。
'eventignore' 'ei' 'eventignore' 'ei' 文字列 (デフォルト: "") グローバル 無視する自動コマンドイベント名のリスト。"all" に設定した場合、または "all" がアイテムの 1 つである場合、すべての自動コマンドイベントは無視され、自動コマンドは実行されません。それ以外の場合、これはカンマで区切られたイベント名のリストです。例
set ei=WinEnter,WinLeave
'fileencoding' が UTF-8 でない場合、ファイルの書き込み時に変換が行われます。読み込みについては以下を参照してください。
'fileencoding' が空の場合、ファイルは UTF-8 エンコーディングで保存されます (ファイルの読み書き時に変換はありません)。
警告: Unicode 以外のエンコーディングに変換すると、情報が失われる可能性があります!
"8bit-" と "2byte-" を先頭に付加しても意味はなく、無視されます。オプションが設定されると、値は小文字に変換されます。したがって、大文字の値で設定することもできます。'_' 文字は '-' に置き換えられます。名前が
encoding-names のリストから認識される場合、標準名に置き換えられます。たとえば、"ISO8859-2" は "iso-8859-2" になります。
このオプションが設定されている場合、ファイルの編集を開始した後、
'modified' オプションが設定されます。これは、ファイルが書き込まれるときに変更されるためです。
modeline から
'fenc' を変更すると、テキストが読み込まれた後に行われることに注意してください。したがって、ファイルが書き込まれるときに適用されます。modeline で
'fenc' を設定する場合は、":q" で終了できなくなるのを避けるために
'nomodified' を設定するとよいでしょう。
'fileencodings' 'fencs' 'fileencodings' 'fencs' 文字列 (デフォルト "ucs-bom,utf-8,default,latin1") グローバル これは、既存のファイルの編集を開始する際に考慮される文字エンコーディングのリストです。ファイルを読み込む際、Vim は最初にリストされている文字エンコーディングを使用しようとします。エラーが検出された場合、リストの次のエンコーディングが試されます。動作するエンコーディングが見つかると、
'fileencoding' がそのエンコーディングに設定されます。すべて失敗した場合、
'fileencoding' は空の文字列に設定され、UTF-8 が使用されることを意味します。
警告: 変換によって情報が失われる可能性があります!変換できない文字の処理方法を指定するには、
++bad 引数を使用できます。空のファイルまたは ASCII 文字のみを含むファイルの場合、ほとんどのエンコーディングが機能し、
'fileencodings' の最初のエントリが使用されます (BOM が存在する必要がある "ucs-bom" を除く)。別のエンコーディングを優先する場合は、BufReadPost 自動コマンドイベントを使用して、優先するエンコーディングを使用するかどうかをテストしてください。例
au BufReadPost * if search('\S', 'w') == 0 |
\ set fenc=iso-2022-jp | endif
これは、存在しないファイルが空のファイルとは異なるエンコーディングになる可能性があることを意味します。特別な値 "ucs-bom" を使用して、ファイルの先頭にある Unicode BOM (Byte Order Mark) を確認できます。これが正しく機能するためには、"utf-8" や別の Unicode エンコーディングが前にあってはなりません。8 ビットエンコーディング (例: "latin1") のエントリは、Vim がエラーを検出できないため、常に受け入れられるため、最後にする必要があります。特殊な値 "default" は、環境からのエンコーディングに使用できます。これは、環境がロシア語など、非 latin1 エンコーディングを使用している場合に便利です。ファイルに不正な UTF-8 バイトシーケンスが含まれている場合、"utf-8" として認識されません。不正なバイトシーケンスを見つけるには、
8g8 コマンドを使用できます。間違った値: 何が間違っているか: latin1,utf-8 "latin1" が常に使用される utf-8,ucs-bom,latin1 BOM は utf-8 ファイルで認識されない cp1250,latin1 "cp1250" が常に使用される
'fileencodings' が空の場合、
'fileencoding' は変更されません。可能な値については、
'fileencoding' を参照してください。このオプションを設定しても、次にファイルを読み込むまで効果はありません。
'fileformats' 'ffs' 'fileformats' 'ffs' 文字列 (デフォルト Windows: "dos,unix", Unix: "unix,dos") グローバル これは、新しいバッファーの編集を開始するとき、および既存のバッファーにファイルを読み込むときに試行される改行 (
<EOL>
) 形式を示します。
コンマで区切られた複数の名前が存在する場合、ファイルの読み込み時に自動
<EOL>
検出が行われます。ファイルの編集を開始するときに、
<EOL>
のチェックが行われます。 1. すべての行が
<CR>
<NL>
で終わっており、
'fileformats' に "dos" が含まれている場合、
'fileformat' は "dos" に設定されます。 2.
<NL>
が見つかり、
'fileformats' に "unix" が含まれている場合、
'fileformat' は "unix" に設定されます。先行する
<CR>
なしで
<NL>
が見つかった場合、"dos" よりも "unix" が優先されることに注意してください。 3.
'fileformat' がまだ設定されておらず、
<CR>
が見つかり、
'fileformats' に "mac" が含まれている場合、
'fileformat' は "mac" に設定されます。これは、"mac" が選択されるのは、"unix" が存在しないか、ファイルに
<NL>
が見つからない場合、および "dos" が存在しないか、ファイルに
<CR>
<NL>
が見つからない場合のみであることを意味します。例外: "unix" が選択されたが、最初の
<NL>
の前に
<CR>
があり、最初の数行に
<NL>
よりも多くの
<CR>
があるように見える場合は、"mac" が使用されます。 4.
'fileformat' がまだ設定されていない場合は、
'fileformats' の最初の名前が使用されます。ファイルを既存のバッファーに読み込む場合も同様の処理が行われますが、これは
'fileformat' がそのファイルに対してのみ適切に設定されたかのように発生し、オプションは変更されません。
'binary' が設定されている場合、
'fileformats' の値は使用されません。
Vim が空のバッファーで起動する場合、最初の項目が使用されます。これは、.vimrc で
'fileformat' を設定することで上書きできます。
Dos ライクな
<EOL>
(
<CR>
<NL>
) を持つシステムの場合、":source" されたファイルや vimrc ファイルの読み込み時に、自動
<EOL>
検出が行われる場合があります。
'fileformats' が 1 つ以上の名前に設定されている場合、自動検出が行われます。これは、ファイルの最初の
<NL>
に基づいています。その前に
<CR>
がある場合は Dos 形式が使用され、それ以外の場合は Unix 形式が使用されます。
ファイル形式 も参照してください。
'filetype' 'ft' 'filetype' 'ft' 文字列 (デフォルト "") バッファーローカル
ローカル-グローバルではない このオプションが設定されると、FileType 自動コマンドイベントがトリガーされます。このオプションの値と一致するすべての自動コマンドが実行されます。したがって、
'filetype' の値は、ファイル名の代わりに使用されます。そうでない場合、このオプションは常に現在のファイルタイプを反映しているとは限りません。このオプションは通常、ファイルタイプが検出されたときに設定されます。これを有効にするには、":filetype on" コマンドを使用します。
:filetype ファイルタイプが自動的に認識されないファイルの場合、モデルラインでこのオプションを別の値に設定するのが最も役立ちます。IDL ファイルの例
/* vim: set filetype=idl : */
FileType ファイルタイプ 値にドットが表示される場合、これは 2 つのファイルタイプ名を区切るため、ファイルタイプには使用しないでください。例
/* vim: set filetype=c.doxygen : */
これは、最初に "c" ファイルタイプ、次に "doxygen" ファイルタイプを使用します。これは、ファイルタイププラグインと構文ファイルの両方で機能します。複数のドットが表示される場合があります。このオプションは、
'cpoptions' の 's' または 'S' フラグに関係なく、別のバッファーにはコピーされません。使用できるのは、英数字、'-' および '_' のみです。
項目 デフォルト 使用目的
stl ' ' 現在のウィンドウのステータスライン stlnc ' ' 現在のウィンドウではないウィンドウのステータスライン wbr ' ' ウィンドウバー horiz '─' または '-' 水平区切り文字
:split horizup '┴' または '-' 上向きの水平区切り文字 horizdown '┬' または '-' 下向きの水平区切り文字 vert '│' または '|' 垂直区切り文字
:vsplit vertleft '┤' または '|' 左向きの垂直区切り文字 vertright '├' または '|' 右向きの垂直区切り文字 verthoriz '┼' または '+' 垂直および水平区切り文字の重複 fold '·' または '-'
'foldtext' を埋める foldopen '-' 折りたたみの開始をマークする foldclose '+' 閉じた折りたたみを表示する foldsep '│' または '|' 開いた折りたたみの真ん中のマーカー diff '-'
'diff' オプションで削除された行 msgsep ' ' メッセージ区切り文字
'display' eob '~' バッファーの末尾にある空の行 lastline '@'
'display' に lastline/truncate が含まれています
省略されたものはすべてデフォルトに戻ります。
"horiz"、"horizup"、"horizdown"、"vertleft"、"vertright"、および "verthoriz" は、
'laststatus' が 3 の場合にのみ使用されます。それ以外の場合は、垂直ウィンドウ区切り文字のみが使用されるためです。
'ambiwidth' が "double" の場合、"horiz"、"horizup"、"horizdown"、"vert"、"vertleft"、"vertright"、"verthoriz"、"foldsep"、および "fold" は、デフォルトでシングルバイトの代替文字になります。
例
set fillchars=stl:\ ,stlnc:\ ,vert:│,fold:·,diff:-
"stl"、"stlnc"、"foldopen"、"foldclose"、および "foldsep" 項目については、シングルバイト文字とマルチバイト文字がサポートされています。ただし、ダブル幅文字はサポートされていません。
E1512
関数は2つの引数で呼び出されます。最初の引数は
文字列で、
:findコマンドの引数です。2番目の引数は
ブール値で、
:findコマンドのコマンドライン補完の一致のリストを取得するために関数が呼び出されると、
v:trueに設定されます。関数は文字列のリストを返す必要があります。
関数は、
:findコマンドの呼び出しごとに1回だけ呼び出されます。関数は、
'path'で指定されたすべてのディレクトリを処理できます。
一致が見つかった場合、関数は1つ以上のファイル名を含む
リストを返す必要があります。一致が見つからなかった場合、関数は空のリストを返す必要があります。
関数の呼び出し中にエラーが発生した場合、空のリストが戻り値として使用されます。
例:
" Use glob()
func FindFuncGlob(cmdarg, cmdcomplete)
let pat = a:cmdcomplete ? $'{a:cmdarg}*' : a:cmdarg
return glob(pat, v:false, v:true)
endfunc
set findfunc=FindFuncGlob
" Use the 'git ls-files' output
func FindGitFiles(cmdarg, cmdcomplete)
let fnames = systemlist('git ls-files')
return fnames->filter('v:val =~? a:cmdarg')
endfunc
set findfunc=FindGitFiles
'foldcolumn' 'fdc' 'foldcolumn' 'fdc' 文字列 (デフォルトは "0") ウィンドウローカル フォールドカラムを描画するタイミングと方法。有効な値は次のとおりです。 "auto": 表示する最小限のフォールド数に合わせてサイズを変更します。 "auto:[1-9]": 選択したレベルまで、複数のフォールドを収容するようにサイズを変更します。"0": フォールドカラムを無効にします。"[1-9]": 固定数の列を表示します。
foldingを参照してください。
'foldlevelstart' 'fdls' 'foldlevelstart' 'fdls' 数値 (デフォルトは -1) グローバル ウィンドウで別のバッファの編集を開始するときに、
'foldlevel'を設定します。常にすべてのフォールドを閉じた状態 (値 0)、いくつかのフォールドを閉じた状態 (1)、またはフォールドを閉じていない状態 (99) で編集を開始する場合に便利です。これはmodelineを読み取る前に行われるため、modelineの設定はこのオプションよりも優先されます。
diff-modeのファイルの編集を開始する場合も、このオプションは無視され、すべてのフォールドが閉じられます。また、BufReadPre自動コマンドの前にも行われるため、自動コマンドで特定のファイルの
'foldlevel'値をオーバーライドできます。値が負の場合、使用されません。
'foldminlines' 'fml' 'foldminlines' 'fml' 数値 (デフォルトは 1) ウィンドウローカル フォールドを閉じて表示できる画面行数を設定します。手動で閉じたフォールドの場合も同様です。デフォルト値の 1 では、フォールドが 2 つ以上の画面行を占める場合にのみ閉じることができます。1 つの画面行のみのフォールドを閉じることができるようにするには、ゼロに設定します。これは表示されるものにのみ影響することに注意してください。
'foldminlines'よりも小さいために開いた状態で表示されるフォールドを閉じるために "zc" を使用した後、次の "zc" で、包含フォールドを閉じることができます。
'foldopen' 'fdo' 'foldopen' 'fdo' 文字列 (デフォルトは "block,hor,mark,percent,quickfix,search,tag,undo") グローバル コマンドが閉じたフォールドにカーソルを移動した場合に、どのタイプのコマンドでフォールドが開かれるかを指定します。これは、コンマ区切りの項目のリストです。
注: コマンドがマッピングの一部である場合、このオプションは使用されません。同じ効果を得るには、
zvコマンドをマッピングに追加してください。(理由: マッピング自体がフォールドを開くのを制御したい場合があります)
項目のコマンド
all any block (, {, [[, [{, など。 hor 水平移動: "l"、"w"、"fx" など。 insert 挿入モードでのコマンド入力。 jump 遠くへのジャンプ: "G"、"gg" など。 mark マークへのジャンプ: "'m"、
CTRL-O
など。 percent "%" quickfix ":cn"、":crew"、":make" など。 search パターンの検索: "/"、"n"、"*"、"gd" など (":" コマンドでの検索パターンは除く)。
[s および
]s でも同様です。 tag タグへのジャンプ: ":ta"、
CTRL-T
など。 undo アンドゥまたはリドゥ: "u" および
CTRL-R
。移動コマンドがオペレータ (例: "dl" や "y%") に使用される場合、このオプションは使用されません。つまり、オペレータは閉じられたフォールド全体を含めます。垂直移動はここには含まれていません。これは、閉じられたフォールドへの移動を非常に困難にするためです。挿入モードでは、カーソルを含むフォールドはテキストが挿入される際に常に開いています。フォールドを閉じるには、
'foldlevel'を
zxコマンドで再適用するか、
'foldclose'オプションを "all" に設定します。
空の文字列に設定した場合、foldtextは無効になり、行はハイライトと折り返しなしで通常どおり表示されます。
v:lnum変数は、フォーマットされる最初の行を保持します。
v:count変数は、フォーマットされる行数を保持します。
v:char変数は、式が自動フォーマットのために評価されている場合に挿入される文字を保持します。これは空の場合があります。まだ挿入しないでください!
例
set formatexpr=mylang#Format()
'textwidth'が設定され、その制限を超えてテキストを追加するときにも、式が評価されます。これは、内部フォーマットが使用される場合と同じ条件で発生します。カーソルがテキストに対して同じ場所に保持されていることを確認してください!この状況では、
mode()関数は "i" または "R" を返します。
式がゼロ以外に評価された場合、Vimは内部フォーマットメカニズムの使用にフォールバックします。
式が s: または
<SID> で始まる場合、それはスクリプトID (
local-function) に置き換えられます。例
set formatexpr=s:MyFormatExpr()
set formatexpr=<SID>SomeFormatExpr()
それ以外の場合、式はオプションが設定されたスクリプトのコンテキストで評価されるため、スクリプトローカルな項目が使用可能です。
'formatlistpat' 'flp' 'formatlistpat' 'flp' 文字列 (デフォルト: "^\s*\d\+[\]:.)}\t ]\s*") バッファローカル。リストヘッダーを認識するために使用されるパターン。
'formatoptions'の "n" フラグに使用されます。パターンは、その下の行のインデントとなるテキストに正確に一致する必要があります。より多くの文字を確認しながら、一致の終わりをマークするために
/\zeを使用できます。パターンに続く文字が必要です。行全体に一致する場合、一致がない場合のように処理されます。デフォルトは、数字、オプションの句読点文字、および空白を認識します。
ファイルは常にフラッシュされます(
'fsync'は無視されます)以下の状況の場合
システムがバッテリー残量低下のシグナルを送信した場合
Nvimが異常終了した場合
:s/// すべて置換 1つ置換 :s///g 1つ置換 すべて置換 :s///gg すべて置換 1つ置換
注意: このオプションを設定すると、'g' フラグのデフォルトの動作に依存するプラグインが壊れる可能性があります。これにより、
:s_gに記述されている動作とは逆の効果が 'g' フラグに与えられます。
ripgrep (
'grepprg') が利用可能な場合、このオプションはデフォルトで
%f:%l:%c:%m
になります。
カーソルスタイリングを無効にするには、オプションをリセットしてください
set guicursor=
モード形状、「Cursor」ハイライト、点滅を有効にするには
set guicursor=n-v-c:block,i-ci-ve:ver25,r-cr:hor20,o:hor50
\,a:blinkwait700-blinkoff400-blinkon250-Cursor/lCursor
\,sm:block-blinkwait175-blinkoff150-blinkon175
このオプションは、カンマで区切られたパーツのリストです。各パーツは、モードリストと引数リストで構成されます:mode-list:argument-list,mode-list:argument-list,.. モードリストは、次のモードをダッシュで区切ったリストです:n 通常モード v ビジュアルモード ve
'選択範囲'が「排他的」なビジュアルモード(指定がない場合は'v'と同じ) o オペレータ待ちモード i 挿入モード r 置換モード c コマンドライン通常(追加)モード ci コマンドライン挿入モード cr コマンドライン置換モード sm 挿入モードでのshowmatch a 全てのモード 引数リストは、次の引数をダッシュで区切ったリストです:hor{N} 水平バー、文字高さの
{N}
パーセント ver{N} 垂直バー、文字幅の
{N}
パーセント block ブロックカーソル、文字全体を塗りつぶす
上記の3つのうち1つだけが存在する必要があります。
デフォルトは各モードで"block"です。 blinkwait{N}
カーソル点滅blinkon{N} blinkoff{N} カーソルの点滅時間:blinkwaitはカーソルが点滅を開始するまでの遅延時間、blinkonはカーソルが表示される時間、blinkoffはカーソルが表示されない時間です。時間はミリ秒単位です。いずれかの数値がゼロの場合、点滅はありません。例:
set guicursor=n:blinkon0
デフォルトは各モードで"blinkon0"です。
{group-name}
カーソルの色とフォントを決定するハイライトグループ。
TUIでは
反転/リバースおよびグループ名なしは、「ホスト端末のデフォルトのカーソル色」として解釈されます。これは通常、「反転した背景色と前景色」を意味します。
ctermfgと
guifgは無視されます。
{group-name}
/{group-name} 2つのハイライトグループ名。1つ目は言語マッピングが使用されていない場合に使用され、もう1つは使用されている場合に使用されます。
言語マッピング
パーツの例:n-c-v:block-nCursor 通常、コマンドライン、ビジュアルモードで、"nCursor"ハイライトグループの色でブロックカーソルを使用 n-v-c-sm:block,i-ci-ve:ver25-Cursor,r-cr-o:hor20 通常などのモードでは、ホスト端末で定義されたデフォルト色でブロックカーソルを使用。挿入モードのようなモードでは、"Cursor"ハイライトグループの色で垂直バーカーソルを使用。置換モードのようなモードでは、デフォルトの色で下線カーソルを使用。i-ci:ver30-iCursor-blinkwait300-blinkon200-blinkoff150 挿入およびコマンドライン挿入モードでは、"iCursor"ハイライトグループの色で30%の垂直バーカーソルを使用。少し速く点滅します。
'a'モードは異なります。すべてのモードに指定された引数リストを設定します。デフォルトには何もリセットしません。これは、すべてのモードに共通の設定を行うために使用できます。たとえば、点滅をオフにするには:"a:blinkon0"
カーソルのハイライトの例
highlight Cursor gui=reverse guifg=NONE guibg=NONE
highlight Cursor gui=NONE guifg=bg guibg=fg
'guifont' 'gfn' E235 E596 'guifont' 'gfn' 文字列(デフォルト "")グローバル これは、VimのGUIバージョンで使用されるフォントのリストです。最も単純な形式では、値は1つのフォント名のみです。フォントが見つからない場合は、エラーメッセージが表示されます。他のフォント名を試すには、カンマで区切られたフォント名のリストを指定できます。最初の有効なフォントが使用されます。
カンマの後のスペースは無視されます。フォント名にカンマを含めるには、バックスラッシュを前に付けます。オプションの設定には、スペースとバックスラッシュの前に追加のバックスラッシュが必要です。
option-backslashも参照してください。例
set guifont=Screen15,\ 7x13,font\\,with\\,commas
Vimは最初に"Screen15"フォントを使用しようとし、失敗した場合は"7x13"、次に"font,with,commas"を使用しようとします。
フォントをロードできない場合、Vimは現在の設定を保持します。空のフォントリストが指定された場合、Vimは他のリソース設定を使用しようとし(Xの場合は、Vim.fontリソースを使用します)、最後に常に存在する必要がある組み込みのデフォルト(Xの場合は"7x13")を試みます。指定されたフォント名は「通常」のフォントである必要があります。Vimは、関連する太字およびイタリック体のフォントを見つけようとします。
Win32およびMac OSの場合
set guifont=*
フォントリクエスタが表示され、目的のフォントを選択できます。
フォント名は、使用されるGUIによって異なります。
Mac OSXでは、次のようなものを使用できます。
set guifont=Monaco:h10
E236 フォントは等幅である必要があります(すべての文字の幅が同じ)。
X11でフォントをプレビューするには、"xfontsel"プログラムを使用できる場合があります。"xlsfonts"プログラムは、利用可能なすべてのフォントのリストを提供します。
Win32 GUIの場合
E244 E245フォント名で次のオプションを使用できます:hXX - 高さXX(ポイント、浮動小数点も可) wXX - 幅XX(ポイント、浮動小数点も可) b - 太字 i - イタリック体 u - 下線 s - 取り消し線 cXX - 文字セットXX。有効な文字セットは、ANSI、ARABIC、BALTIC、CHINESEBIG5、DEFAULT、EASTEUROPE、GB2312、GREEK、HANGEUL、HEBREW、JOHAB、MAC、OEM、RUSSIAN、SHIFTJIS、SYMBOL、THAI、TURKISH、VIETNAMESE ANSIおよびBALTICです。通常は"cDEFAULT"を使用します。
オプションを区切るには':'を使用します。
スペースの代わりに'_'を使用できるため、スペースをエスケープするためにバックスラッシュを使用する必要はありません。
例:
set guifont=courier_new:h12:w5:b:cRUSSIAN
set guifont=Andale_Mono:h7.5:w4.5
'helplang' 'hlg' 'helplang' 'hlg' 文字列(デフォルトはメッセージ言語または空)グローバル カンマ区切りの言語リスト。Vimは、必要なヘルプが見つかる最初の言語を使用します。英語のヘルプは、常に最後の手段として使用されます。「en」を追加して、他の言語よりも英語を優先できますが、これにより、英語のヘルプには存在しないが、その言語には存在するタグのみが検索されます。例
set helplang=de,it
これにより、最初にドイツ語、次にイタリア語、最後に英語のヘルプファイルが検索されます。
CTRL-]および非英語のヘルプファイルで":help!"を使用すると、Vimはこのオプションを使用する前に現在の言語でタグを見つけようとします。
help-translatedを参照してください。
バッファリストを移動するコマンドは、
'hidden'オプションがオフの場合でも、次の3つがすべて真の場合にバッファを非表示にする場合があります。
バッファが変更されている
'!'フラグが使用された
ウィンドウも参照してください。
'iminsert' 'imi' 'iminsert' 'imi' 数値 (デフォルト 0) バッファローカル Insert モードで :lmap または Input Method (IM) を使用するかどうかを指定します。有効な値は次のとおりです。0 :lmap はオフで、IM もオフ 1 :lmap はオンで、IM はオフ 2 :lmap はオフで、IM はオン Insert モードを
<Esc>
で終了するときに、オプションを常にゼロにリセットするには、以下を使用できます。
inoremap <ESC> <ESC>:set iminsert=0<CR>
これにより、Insert モードを終了すると、:lmap と IM が自動的にオフになります。Insert モードで
CTRL-^
を使用すると、このオプションが変更されることに注意してください
i_CTRL-^。
'keymap' を有効なキーマップ名に設定すると、値が 1 に設定されます。また、「r」や「f」などのコマンドの引数にも使用されます。
'imsearch' 'ims' 'imsearch' 'ims' 数値 (デフォルト -1) バッファローカル 検索パターンを入力するときに :lmap または Input Method (IM) を使用するかどうかを指定します。有効な値は次のとおりです。-1
'iminsert' の値が使用され、検索パターンを入力するときにも
'iminsert' が使用されているように見えます 0 :lmap はオフで、IM もオフ 1 :lmap はオンで、IM はオフ 2 :lmap はオフで、IM はオン コマンドラインモードで
CTRL-^
を使用すると、このオプションが変更されることに注意してください
c_CTRL-^。 -1 でない場合、
'keymap' オプションを有効なキーマップ名に設定すると、値が 1 に設定されます。
可能な値: nosplit コマンドの効果をバッファ内で段階的に表示します。 split 「nosplit」と同様ですが、画面外の部分的な結果をプレビューウィンドウにも表示します。
'include' 'inc' 'include' 'inc' 文字列 (デフォルト "") グローバルまたはバッファローカル
グローバルローカル include コマンドを検索するために使用されるパターン。これは、「/」コマンドと同様の検索パターンです (
pattern を参照)。このオプションは、コマンド "[i"、"]I"、"[d" などに使用されます。通常、一致したパターンの後に出現するファイル名を認識するために
'isfname' オプションが使用されます。ただし、パターンに "\zs" が出現する場合は、"\zs" から末尾まで、または "\ze" が出現する場合は "\ze" までのテキストがファイル名として使用されます。これにより、スペースなど、
'isfname' に含まれていない文字を含めることができます。次に、
'includeexpr' を使用して、一致したテキストを処理できます。スペースとバックスラッシュの含め方については、
option-backslash を参照してください。
"v:fname" 変数は、検出されたファイル名に設定されます。二重バックスラッシュに注意してください。
:set
コマンドは最初にそれらを半分にし、次に値に 1 つ残ります。そこで "\." はドットを文字通り一致させます。単純な文字置換の場合、
tr()
を使用するとエスケープする必要がなくなります。
setlocal includeexpr=tr(v:fname,'.','/')
また、変更されていないファイル名が見つからない場合、
gf コマンドにも使用されます。これにより、
'include' ステートメントの後の名前に対して「gf」を実行できます。また、
<cfile> にも使用されます。
式が s: または
<SID> で始まる場合、それはスクリプトID (
local-function) に置き換えられます。例
setlocal includeexpr=s:MyIncludeExpr()
setlocal includeexpr=<SID>SomeIncludeExpr()
それ以外の場合、式はオプションが設定されたスクリプトのコンテキストで評価されるため、スクリプトローカルな項目が使用可能です。
'incsearch' 'is' 'noincsearch' 'nois' 'incsearch' 'is' 真偽値 (デフォルト オン) グローバル 検索コマンドを入力している間、入力されたパターンが一致する場所を表示します。一致した文字列が強調表示されます。パターンが無効な場合、または見つからない場合は、何も表示されません。画面は頻繁に更新されるため、高速なターミナルでのみ役立ちます。一致が表示されますが、一致が見つからなかった場合、および
<Esc>
を押すと、カーソルは元の位置に戻ることに注意してください。カーソルを一致した場所に移動するには、
<Enter>
で検索コマンドを完了する必要があります。
CTRL-G
キーと
CTRL-T
キーを使用して、次の一致と前の一致に移動できます。
c_CTRL-G c_CTRL-T Vim は約 0.5 秒間のみ検索します。複雑なパターンや大量のテキストがある場合、一致が見つからない可能性があります。これは、パターンを入力中に Vim がハングアップするのを防ぐためです。
hl-IncSearch ハイライトグループは、ハイライトを決定します。
'hlsearch' がオンの場合、検索コマンドを入力している間、一致したすべての文字列も強調表示されます。こちらも参照してください:
'hlsearch'。
'hlsearch' をオンにしたくないが、検索中にすべての一致を強調表示したい場合は、autocmd で
'hlsearch' をオン/オフにできます。例
augroup vimrc-incsearch-highlight
autocmd!
autocmd CmdlineEnter /,\? :set hlsearch
autocmd CmdlineLeave /,\? :set nohlsearch
augroup END
CTRL-L
を使用して、現在の一致の後からコマンドラインに 1 文字を追加できます。
'ignorecase' と
'smartcase' が設定されていて、コマンドラインに大文字が含まれていない場合、追加された文字は小文字に変換されます。
CTRL-R
CTRL-W
を使用して、既に入力された文字を除き、現在の一致の末尾にある単語を追加できます。
式が s: または
<SID> で始まる場合、それはスクリプトID (
local-function) に置き換えられます。例
set indentexpr=s:MyIndentExpr()
set indentexpr=<SID>SomeIndentExpr()
それ以外の場合、式はオプションが設定されたスクリプトのコンテキストで評価されるため、スクリプトローカルな項目が使用可能です。
式は、インデントのスペース数を返す必要があります。現在のインデントを維持するために "-1" を返すことができます (これは、インデントに
'autoindent' が使用されていることを意味します)。インデントの計算に役立つ関数は、
indent()、
cindent() および
lispindent() です。式の評価には副作用があってはなりません。テキストを変更したり、別のウィンドウにジャンプしたりしてはなりません。その後、カーソルの位置は常に復元されるため、カーソルを移動できます。通常、このオプションは関数を呼び出すように設定されます。
set indentexpr=GetMyIndent()
'isfname' 'isf' 'isfname' 'isf' 文字列 (Windows のデフォルト: "@,48-57,/,\,.,-,_,+,,,#,$,%,{,},[,],@-@,!,~,=" それ以外の場合: "@,48-57,/,.,-,_,+,,,#,$,%,~,=") グローバル このオプションで指定された文字は、ファイル名とパス名に含まれます。ファイル名は、「gf」、「[i」などのコマンドや、タグファイルで使用されます。また、
パターンの "\f" にも使用されます。マルチバイト文字 256 以上は常に含まれ、255 までの文字のみがこのオプションで指定されます。UTF-8 の場合、0xa0 から 0xff の文字も含まれます。このオプションに空白を追加する前によく考えてください。空白がファイル名の中に表示される場合もありますが、補完を行うときに Vim がファイル名の開始または終了位置を認識しないという効果があります。おそらく、
'isfname' に空白を含めない方がうまく機能します。
パス区切り文字としてバックスラッシュを使用するシステムでは、Vimは期待どおりに動作するように最善を尽くすことに注意してください。Viはもともと特殊文字をエスケープするためにバックスラッシュを使用していたため、これは少しトリッキーです。Vimは、これらのシステムでは通常のファイル名文字の前にあるバックスラッシュを削除しませんが、Unixなどでは削除します。'&'と'^'はcmd.exeでは特殊であるため、デフォルトでは含まれていません。
このオプションの形式は、コンマで区切られた部分のリストです。各部分は、単一の文字番号または範囲にすることができます。範囲は、2つの文字番号を '-' で区切ったものです。文字番号は、0〜255の10進数、またはASCII文字自体(数字では機能しません)にすることができます。例: "_,-,128-140,#-43" ('_'、'-'、範囲128〜140、および'#'〜43を含む) 部分が '^' で始まる場合、後続の文字番号または範囲はオプションから除外されます。オプションは左から右に解釈されます。除外された文字は、それが含まれる範囲の後ろに置きます。'^' 自体を含めるには、オプションの最後の文字または範囲の終わりとして使用します。例: "^a-z,#,^" ('a'〜'z'を除外し、'#'と'^'を含む) 文字が '@' の場合、isalpha()がTRUEを返す文字すべてが含まれます。通常、これらはa〜zおよびA〜Zの文字と、アクセント付き文字です。'@'自体を含めるには、"@-@" を使用します。例: "@,^a-z" すべてのアルファベット文字。ただし、小文字のASCII文字は除外されます。"a-z,A-Z,@-@" すべての文字と'@'文字。コンマは、文字番号が期待される場所で使用することで含めることができます。例: "48-57,,,_" 数字、コンマ、アンダースコア。コンマは、'^' を前に付けることで除外できます。例: " -~,^,,9" スペースから'〜'までのすべての文字。ただし、コンマは除外し、
<Tab>
を含みます。スペースとバックスラッシュの含め方については、
option-backslashを参照してください。
'isident' 'isi' 'isident' 'isi' string (Windowsのデフォルト: "@,48-57,_,128-167,224-235" その他: "@,48-57,_,192-255") global このオプションで指定された文字は、識別子に含まれます。識別子は、環境変数の認識や、
'define'オプションの一致後に使用されます。また、
パターン内の "\i" にも使用されます。このオプションの形式の説明については、
'isfname'を参照してください。'@'の場合は、最大255までの文字のみが使用されます。注意:このオプションを変更すると、環境変数の展開が中断される可能性があります。たとえば、'/'が含まれていて、Vimが "$HOME/.local/state/nvim/shada/main.shada" を展開しようとする場合です。代わりに、
'iskeyword'を変更することを検討してください。
'iskeyword' 'isk' 'iskeyword' 'isk' string (デフォルト "@,48-57,_,192-255") local to buffer キーワードは、多くのコマンド ("w", "*", "[i" など) での検索と認識に使用されます。また、
パターン内の "\k" にも使用されます。このオプションの形式の説明については、
'isfname'を参照してください。'@'の場合、255を超える文字については、"word" 文字クラス(空白または句読点ではない任意の文字)を確認してください。Cプログラムの場合は、"a-z,A-Z,48-57,_,.,-,>" を使用できます。ヘルプファイルの場合、"*"、'"'、'|'を除く、印刷可能な空白以外のすべての文字に設定されます(これにより、コマンドの
CTRL-]
でそのコマンドのヘルプが見つかります)。
'lisp' オプションがオンの場合、'-' 文字は常に含まれます。このオプションは、構文が
:syn-iskeyword を使用していない限り、構文の強調表示にも影響します。
印刷不可能な文字は、2つの文字で表示されます。0 - 31 "^@" - "^_" 32 - 126 常に単一文字 127 "^?" 128 - 159 "~@" - "~_" 160 - 254 "| " - "|~" 255 "~?" 128から255までの不正なバイト(無効なUTF-8)は、バイトの16進数値を指定した
<xx>
として表示されます。
'display' に "uhex" が含まれている場合、すべての印刷不可能な文字は
<xx>
として表示されます。印刷不可能な文字には、SpecialKey の強調表示が使用されます。
hl-SpecialKey
256以上のマルチバイト文字は常に含まれており、このオプションで指定されるのは最大255までの文字のみです。文字が印刷可能であっても、現在のフォントで利用できない場合は、代替文字が表示されます。印刷不可能で幅がゼロのUnicode文字は、 <xxxx>
として表示されます。これらの文字を指定するためのオプションはありません。
clean ジャンプリストからアンロードされたバッファを削除します。実験的:このフラグは将来変更される可能性があります。
'keymodel' 'km' 'keymodel' 'km' string (デフォルト "") global キーが実行できる特別なことを有効にする、コンマ区切りの単語のリスト。使用できる値は次のとおりです。startsel シフトされた特殊キーを使用すると、選択が開始されます(
'selectmode' に "key" が存在するかどうかに応じて、選択モードまたはビジュアルモード)。stopsel シフトされていない特殊キーを使用すると、選択が停止します。このコンテキストでの特殊キーは、カーソルキー、
<End>
、
<Home>
、
<PageUp>
、
<PageDown>
です。
'keywordprg' 'kp' 'keywordprg' 'kp' string (デフォルト ":Man", Windows: ":help") global または local to buffer
global-local K コマンドに使用するプログラム。環境変数は、
:set_env で展開されます。Vim内部ヘルプにアクセスするために ":help" を使用できます。(以前は、グローバルオプションを空の値に設定するとこれが実行されていましたが、現在では非推奨になっていることに注意してください。)最初の文字が ":" の場合、コマンドは [count] が前に付いた Vim Ex コマンドとして呼び出されます。"man" または "man -s" が使用されている場合、Vimは "K" コマンドの [count] をセクション番号に自動的に変換します。スペースとバックスラッシュの含め方については、
option-backslashを参照してください。例
set keywordprg=man\ -s
set keywordprg=:Man
例(ギリシャ語、UTF-8の場合):
greekset langmap=ΑA,ΒB,ΨC,ΔD,ΕE,ΦF,ΓG,ΗH,ΙI,ΞJ,ΚK,ΛL,ΜM,ΝN,ΟO,ΠP,QQ,ΡR,ΣS,ΤT,ΘU,ΩV,WW,ΧX,ΥY,ΖZ,αa,βb,ψc,δd,εe,φf,γg,ηh,ιi,ξj,κk,λl,μm,νn,οo,πp,qq,ρr,σs,τt,θu,ωv,ςw,χx,υy,ζz
例(コマンドのzとyの意味を交換)
set langmap=zy,yz,ZY,YZ
'langmap' オプションは、コンマで区切られた部分のリストです。各部分は、次の2つの形式のいずれかになります。1. ペアのリスト。"from" 文字の直後に "to" 文字が続くペア。例: "aA", "aAbBcC"。2. "from" 文字のリスト、セミコロン、および "to" 文字のリスト。例: "abc;ABC" 例: "aA,fgh;FGH,cCdDeE" 特殊文字には、バックスラッシュを前に付ける必要があります。これらは ";", ',', '"', '|'、およびバックスラッシュ自体です。
これにより、言語を切り替えることなくvimアクションをアクティブにすることができます。言語文字は、次のケースでは通常のvim英語文字として(langmapマッピングに従って)認識されます。o ノーマル/ビジュアルモード(コマンド、バッファ/レジスタ名、ユーザーマッピング)o 挿入/置換モード:CTRL-R
後のレジスタ名 o 挿入/置換モード:マッピング コマンドラインモードで入力された文字は、このオプションの影響を受けません。このオプションは、いつでも変更して、異なる言語/エンコーディングのマッピングを切り替えることができることに注意してください。毎回入力しなくても済むように、マッピングを使用してください!
(スペースなし)。たとえば、常にオランダ語のメニューを使用するには、 $LANG が何に設定されていても
set langmenu=nl_NL.ISO_8859-1
'langmenu' が空の場合、
v:lang が使用されます。通常のファイル名文字のみを使用でき、
/\*?[|<>
は無効です。$LANG が英語以外の言語に設定されていても、英語のメニューを使用したい場合
set langmenu=none
このオプションは、メニューのロード、ファイルタイプ検出または構文の強調表示をオンにする前に設定する必要があります。メニューが定義されると、このオプションを設定しても効果はありません。ただし、次のようにすることができます。
source $VIMRUNTIME/delmenu.vim
set langmenu=de_DE.ISO_8859-1
source $VIMRUNTIME/menu.vim
警告: これにより、自分で定義したすべてのメニューが削除されます!
'laststatus' 'ls' 'laststatus' 'ls' 数値 (デフォルト: 2) グローバル。このオプションの値は、最後のウィンドウにステータスラインを表示するタイミングに影響します。 0: 表示しない、1: ウィンドウが2つ以上ある場合のみ表示、2: 常に表示、3: 常に表示し、最後のウィンドウのみに表示。複数のウィンドウがある場合は、ステータスラインがあったほうが見栄えが良くなりますが、画面の行を1つ消費します。
ステータスライン
'lines' E593 'lines' 数値 (デフォルト: 24またはターミナルの高さ) グローバル。Vimウィンドウの行数。通常、これを設定する必要はありません。ターミナルの初期化コードによって自動的に行われます。VimがGUIまたはサイズ変更可能なウィンドウで実行されている場合、このオプションを設定すると、ウィンドウのサイズが変更されます。GUIでのみサイズを使用したい場合は、コマンドを
gvimrcファイルに記述してください。Vimは、画面に収まる行数に制限します。このコマンドを使用して、可能な限り高いウィンドウを取得できます。
set lines=999
最小値は2、最大値は1000です。
'linespace' 'lsp' 'linespace' 'lsp' 数値 (デフォルト: 0) グローバル。GUIのみ。文字間に挿入されるピクセル行数。フォントが文字セル全体の高さを使用しており、行が互いに接触している場合に便利です。ゼロ以外の場合、下線を引くためのスペースがあります。一部のフォントでは、行間にスペースが多すぎる場合があります (アセントとディセント用のスペースを確保するため)。その場合は、
'linespace'を負の値に設定すると理にかなっています。ただし、これにより表示上の問題が発生する可能性があります!
'lisp' 'nolisp' 'lisp' boolean (デフォルト: オフ) バッファローカル。Lispモード: インサートモードで
<Enter>
が入力されると、次の行のインデントがLisp標準に設定されます (まあ、ある程度)。"cc"または"S"でも発生します。これが機能するには、
'autoindent'もオンになっている必要があります。
'cpoptions'の'p'フラグは、インデントの方法を変更します: Vi互換またはより良い。また、
'lispwords'も参照してください。'-'文字はキーワード文字に含まれます。
'equalprg'が空の場合、外部プログラムを呼び出すのではなく、この同じインデントアルゴリズムを使用するように"="演算子を再定義します。
'list' 'nolist' 'list' boolean (デフォルト: オフ) ウィンドウローカル。リストモード: デフォルトでは、タブを">"、末尾のスペースを"-"、および改行されないスペース文字を"+"として表示します。タブとスペースの違いや、末尾の空白を確認するのに役立ちます。
'listchars'オプションでさらに変更されます。
'listchars'に"tab"フィールドが含まれていない場合、タブは印刷できない文字の表示方法と同様に、"^I"または"<09>"として表示されます。
カーソルは、ノーマルモードで通常行われるように末尾ではなく、タブ文字が占めるスペースの先頭に表示されます。タブをスペースで表示しながらこのカーソル位置を取得するには、次を使用します。
set list lcs=tab:\ \
lcs-eol eol:c 各行の末尾に表示する文字。省略した場合、行の末尾に追加の文字は表示されません。
lcs-tabtab:xy[z] タブを表示するために使用する2つまたは3つの文字。3番目の文字はオプションです。
tab:xy 'x'は常に使用され、次に'y'が収まる回数だけ使用されます。したがって、"tab:>-"は次のように表示されます
>
>-
>--
etc.
tab:xyz 'z'は常に使用され、次に'x'が先頭に追加され、次に'y'が収まる回数だけ使用されます。したがって、"tab:<->"は次のように表示されます
>
<>
<->
<-->
etc.
"tab:"が省略されている場合、タブは^Iとして表示されます。
lcs-spacespace:c スペースを表示する文字。省略した場合、スペースは空白のままになります。
lcs-multispacemultispace:c... 複数の連続したスペースを表示するために循環的に使用する1つ以上の文字。"space"設定は、単一のスペースを除いて上書きします。省略した場合、"space"設定が使用されます。たとえば、
:set listchars=multispace:---+
は、10個の連続したスペースを次のように表示します
---+---+--
lcs-lead lead:c 先頭のスペースを表示する文字。省略した場合、先頭のスペースは空白になります。先頭のスペースについては、"space"設定と"multispace"設定を上書きします。たとえば、"tab:"と組み合わせて使用できます
set listchars+=tab:>-,lead:.
"XXX"は、行の最初の空白以外の文字を示します。
lcs-trailtrail:c 末尾のスペースを表示する文字。省略した場合、末尾のスペースは空白になります。末尾のスペースについては、"space"設定と"multispace"設定を上書きします。
lcs-extendsextends:c
'wrap'がオフで、行が画面の右側を超えて続く場合に、最後の列に表示する文字。
lcs-precedesprecedes:c 最初の列に表示される文字の前にテキストがある場合に、物理行の最初の表示可能な列に表示する文字。
lcs-concealconceal:c
'conceallevel'が1に設定されている場合に、隠されたテキストの代わりに表示する文字。省略した場合はスペース。
lcs-nbspnbsp:c 改行されないスペース文字(0xA0 (160 10進数) および U+202F)に対して表示する文字。省略した場合、空白になります。
':'および','文字は使用しないでください。UTF-8文字を使用できます。すべての文字はシングル幅である必要があります。
E1512
各文字は16進数で指定できます。
set listchars=eol:\\x24
set listchars=eol:\\u21b5
set listchars=eol:\\U000021b5
二重バックスラッシュが使用されることに注意してください。16進数の文字数は、\\xの場合は正確に2文字、\\uの場合は4文字、\\Uの場合は8文字でなければなりません。
例:
set lcs=tab:>-,trail:-
set lcs=tab:>-,eol:<,nbsp:%
set lcs=extends:>,precedes:<
hl-NonText ハイライトは、"eol"、"extends"、"precedes" に使用されます。
hl-Whitespace ハイライトは、"nbsp"、"space"、"tab"、"multispace"、"lead"、"trail" に使用されます。
'magic' 'nomagic' 'magic' boolean (デフォルト: on) グローバル 検索パターンで使用できる特殊文字を変更します。
pattern を参照してください。
警告: このオプションをオフにすると、プラグインが壊れる可能性が非常に高くなります!多くのパターンはオンになっていることを前提としており、オフになっていると失敗するためです。古い Vi スクリプトを扱う場合にのみオフにしてください。それ以外の場合は、
'magic' がオンの場合に機能するパターンを記述してください。\M を含めると
/\M を使用したい場合に使用できます。
'makeencoding' 'menc' 'makeencoding' 'menc' string (デフォルト: "") グローバルまたはバッファローカル
global-local 外部コマンドの出力を読み込むために使用されるエンコーディング。空の場合、エンコーディングは変換されません。これは、
:make
、
:lmake
、
:grep
、
:lgrep
、
:grepadd
、
:lgrepadd
、
:cfile
、
:cgetfile
、
:caddfile
、
:lfile
、
:lgetfile
、および
:laddfile
に使用されます。
これは主に MS-Windows を使用する場合に役立ちます。iconv が有効になっている場合、
'makeencoding' を "char" に設定すると、システムロケールエンコーディングに設定するのと同じ効果があります。例:
set makeencoding=char " system locale is used
'makeprg' 'mp' 'makeprg' 'mp' string (デフォルト: "make") グローバルまたはバッファローカル
global-local ":make" コマンドで使用するプログラム。
:make_makeprg を参照してください。このオプションには、'%' および '#' 文字 (
:_% および
:_# を参照) を含めることができ、これらは現在のファイル名と代替ファイル名に展開されます。ファイル名に特殊文字が含まれる場合に備えて、
::S を使用してエスケープしてください。環境変数が展開されます (
:set_env を参照)。スペースとバックスラッシュの含め方については、
option-backslash を参照してください。'|' は、":set" 用とコマンドの解釈用の2回エスケープする必要があることに注意してください。"myfilter" という名前のフィルターを使用する場合は、次のようにしてください。
set makeprg=gmake\ \\\|\ myfilter
プレースホルダー "$*" を指定して (複数回でも可)、引数が含まれる場所を指定できます。例:
set makeprg=latex\ \\\\nonstopmode\ \\\\input\\{$*}
'matchpairs' 'mps' 'matchpairs' 'mps' string (デフォルト: "(:),
{:}
,[:]") バッファローカル ペアを形成する文字。
% コマンドは、一方から他方へジャンプします。異なる文字のペアのみが許可されているため、2つの二重引用符の間をジャンプすることはできません。文字はコロンで区切る必要があります。ペアはコンマで区切る必要があります。(HTML 用) '<' および '>' を含める例:
set mps+=<:>
より特殊な例として、CやJavaなどの言語で便利な、代入の '=' と ';' の間をジャンプする例:
au FileType c,cpp,java set mps+==:;
"%" のより高度な使い方については、$VIMRUNTIME/plugin ディレクトリにある matchit.vim プラグインを参照してください。
add-local-help
'maxmempattern' 'mmp' 'maxmempattern' 'mmp' number (デフォルト: 1000) グローバル パターンマッチングに使用する最大メモリ量(キロバイト単位)。最大値は約 2000000 です。制限なしで動作させるにはこれを使用してください。
E363Vim が制限に達すると、エラーメッセージが表示され、ほとんどの場合
CTRL-C
が入力されたかのように動作します。制限に達することは、多くの場合、パターンが非常に非効率的であるか、複雑すぎることを意味します。これは、非常に長い行のパターン "\(.\)*" で既に発生する可能性があります。".*" の方がはるかにうまく機能します。構文ルールが複雑なテキスト構造を照合しようとすると、再描画でも発生する可能性があります。Vim が
'maxmempattern' の制限に達する前にメモリ不足になる可能性があり、その場合は代わりに "Out of memory" エラーが表示されます。
'mis' 'menuitems' 'mis' number (デフォルト: 25) グローバル メニューで使用する項目の最大数。例えば、バッファメニューなど、項目のリストから生成されるメニューに使用されます。このオプションを変更しても直接的な効果はなく、最初にメニューを更新する必要があります。
'mkspellmem' 'msm' 'mkspellmem' 'msm' string (デフォルト: "460000,2000,500") グローバル
:mkspell のパラメータ。これにより、単語ツリーを圧縮し始めるタイミングを調整します。単語が多い場合、圧縮には時間がかかる可能性がありますが、メモリ不足を回避するために必要です。単語ごとに使用されるメモリの量は、単語がどれだけ似ているかによって大きく異なるため、この調整は複雑です。
コンマで区切られた3つの数値があります。
{start},{inc},{added}
ほとんどの言語では、圧縮されていない単語ツリーはメモリに収まります。{start}
は、圧縮を行う前に使用できるメモリの量をキロバイト単位で示します。Vim で使用できるメモリ量よりも少し小さくする必要があります。
{start}
制限を超えると、{inc}
数値は、別の圧縮が行われる前に割り当てることができるメモリ量をキロバイト単位で指定します。数値が小さいと、より少ない単語が追加された後に圧縮が行われるため、速度が低下します。数値が大きいと、より多くのメモリが割り当てられます。
圧縮後、{added}
に 1024 を掛けた単語数を追加すると、{inc}
制限が無視され、追加のメモリが必要になったときに圧縮が行われます。数値が小さいと、{inc}
制限に達する可能性が低くなり、メモリの使用量は少なくなりますが、速度は遅くなります。
これらの数値が重要な言語は、イタリア語とハンガリー語です。デフォルトは、約 512 Mbyte のメモリがある場合に機能します。1 Gbyte のメモリがある場合は、次のように使用できます。
set mkspellmem=900000,3000,800
'modified' 'mod' 'nomodified' 'nomod' 'modified' 'mod' ブール値 (デフォルト: オフ) バッファローカル
ローカル-非グローバル オンの場合、バッファは変更されたと見なされます。このオプションは、以下の場合に設定されます。1. 最後に書き込まれてからテキストが変更された場合。
undo コマンドで元のテキストに戻ると、オプションはリセットされます。しかし、バッファを書き込む前に変更した内容をアンドゥすると、テキストが書き込まれたときと異なるため、オプションが再度設定されます。2.
'fileformat' または
'fileencoding' が元の値と異なる場合。元の値は、バッファが読み込まれたときまたは書き込まれたときに設定されます。「:set nomodified」コマンドも元の値を現在の値にリセットし、
'modified' オプションがリセットされます。同様に、
'eol' および
'bomb' についても同様です。このオプションは、BufNewFile、BufRead/BufReadPost、BufWritePost、FileAppendPost、または VimLeave 自動コマンドイベントの結果としてバッファが変更された場合には設定されません。説明については、
gzip-example を参照してください。
'buftype' が "nowrite" または "nofile" の場合、このオプションを設定できますが、無視されます。たとえば、"A" に対して "rA" を使用する場合など、テキストが実際には同じである可能性があることに注意してください。
'modified' が設定されます。
'mouse'
'mouse' 文字列 (デフォルト: "nvi") グローバル。マウスサポートを有効にします。たとえば、ノーマルモードとビジュアルモードでマウスを有効にするには、次のようにします。
set mouse=nv
マウスサポートを一時的に無効にするには、マウスを使用中に Shift キーを押したままにします。
マウスサポートは、さまざまなモードで有効にできます。n: ノーマルモード, v: ビジュアルモード, i: インサートモード, c: コマンドラインモード, h: ヘルプファイルを編集しているときの前のすべてのモード, a: 前のすべてのモード, r:
hit-enter および
more-prompt プロンプト
テキストバッファの任意の場所を左クリックすると、カーソルがそこに移動します。これはオペレーターでも機能します。たとえば、
d と入力してから左クリックすると、現在のカーソル位置からクリックした位置までのテキストが削除されます。
ステータスラインまたはウィンドウの垂直セパレータをドラッグして、サイズを変更します。
"v" (ビジュアルモード) で有効になっている場合、ダブルクリックすると単語単位で選択、トリプルクリックすると行単位で選択、クワドラプルクリックすると長方形のブロック単位で選択されます。
注: ターミナルでマウスを有効にすると、コピー/ペーストは可能な場合は「*」レジスタを使用します。
'clipboard' も参照してください。
'mousemodel' 'mousem' 'mousemodel' 'mousem' 文字列 (デフォルト: "popup_setpos") グローバル。マウスに使用するモデルを設定します。名前は主に、右マウスボタンが何に使用されるかを指定します。extend: 右マウスボタンで選択範囲を拡張します。これは xterm と同様に機能します。popup: 右マウスボタンでメニューがポップアップします。Shift + 左マウスボタンで選択範囲を拡張します。これは Microsoft Windows と同様に機能します。popup_setpos: 「popup」と同様ですが、カーソルはマウスがクリックされた位置に移動するため、選択された操作はクリックされたオブジェクトに対して実行されます。選択範囲内をクリックした場合、その選択範囲が操作対象となり、カーソルは移動しません。これはもちろん、選択範囲外を右クリックすると、ビジュアルモードが終了することを意味します。各モデルでどのボタンが何をするかの概要
mouse extend popup(_setpos)
左クリック カーソルを移動 カーソルを移動 左ドラッグ 選択を開始 選択を開始 Shift+左クリック 単語を検索 選択を拡張 右クリック 選択を拡張 ポップアップメニュー (カーソルを移動) 右ドラッグ 選択を拡張 - 中クリック ペースト ペースト
"popup" モデルでは、右マウスボタンでポップアップメニューが表示されます。Nvim はデフォルトの
ポップアップメニューを作成しますが、再定義できます。
マッピングを使用すると、ボタンの意味をさらに詳細に調整できることに注意してください。
mouse-overview を参照してください。ただし、マッピングはモードレス選択には使用されません。
例
map <S-LeftMouse> <RightMouse>
map <S-LeftDrag> <RightDrag>
map <S-LeftRelease> <RightRelease>
map <2-S-LeftMouse> <2-RightMouse>
map <2-S-LeftDrag> <2-RightDrag>
map <2-S-LeftRelease> <2-RightRelease>
map <3-S-LeftMouse> <3-RightMouse>
map <3-S-LeftDrag> <3-RightDrag>
map <3-S-LeftRelease> <3-RightRelease>
map <4-S-LeftMouse> <4-RightMouse>
map <4-S-LeftDrag> <4-RightDrag>
map <4-S-LeftRelease> <4-RightRelease>
CTRL 修飾子を必要とするマウスコマンドは、マウスを使用する前に "g" キーを入力することでシミュレートできます。"g<LeftMouse>" は "<C-LeftMouse>" (マウス クリックの下にあるタグにジャンプ) であり、"g<RightMouse>" は "<C-RightMouse>" ("CTRL-T") です。
'mousescroll' E5080 'mousescroll' 文字列 (デフォルト: "ver:3,hor:6") グローバル。このオプションは、マウスホイールでスクロールする際のスクロール行数/列数を制御します (
scroll-mouse-wheel)。オプションは、カンマ区切りのリストです。各部分は、次のように方向とカウントで構成されます: direction:count,direction:count。方向は、"hor" または "ver" のいずれかです。"hor" は水平スクロールを制御し、"ver" は垂直スクロールを制御します。カウントは、指定された方向でスクロールする量を設定します。0 以上の整数である必要があります。各方向は、最大で 1 回設定する必要があります。方向が省略された場合は、デフォルト値が使用されます (水平スクロールの場合は 6、垂直スクロールの場合は 3)。カウントに 0 を使用すると、マウススクロールを無効にできます。
例
set mousescroll=ver:5,hor:2
これにより、Nvim は垂直にスクロールするときは一度に 5 行、水平にスクロールするときは一度に 2 列スクロールするようになります。
'nrformats' 'nf' 'nrformats' 'nf' 文字列 (デフォルト: "bin,hex") バッファローカル。これは、数値の加算と減算にそれぞれ
CTRL-A
および
CTRL-X
コマンドを使用するときに、Vim が数値のベースと見なすものを定義します。これらのコマンドの詳細については、
CTRL-A を参照してください。alpha: 含める場合、アルファベット 1 文字がインクリメントまたはデクリメントされます。これは、文字インデックス a)、b) などを含むリストに役立ちます。
octal-nrformatsoctal: 含める場合、0 で始まる数値は 8 進数と見なされます。例: "007" に対して
CTRL-A
を使用すると、"010" になります。hex: 含める場合、"0x" または "0X" で始まる数値は 16 進数と見なされます。例: "0x100" に対して
CTRL-X
を使用すると、"0x0ff" になります。bin: 含める場合、"0b" または "0B" で始まる数値は 2 進数と見なされます。例: "0b1000" に対して
CTRL-X
を使用すると、1 が減算されて "0b0111" になります。unsigned: 含める場合、数値は符号なしとして認識されます。したがって、先頭のダッシュまたは負の符号は、数値の一部とは見なされません。例: "9-2020" で "2020" に対して
CTRL-X
を使用すると、"9-2019" になります (「unsigned」がない場合は "9-2021" になります)。"9-2020" で "2020" に対して
CTRL-A
を使用すると、"9-2021" になります (「unsigned」がない場合は "9-2019" になります)。"0" に対して
CTRL-X
を使用するか、"18446744073709551615" (2^64 - 1) に対して
CTRL-A
を使用しても効果はありません。オーバーフローは防止されます。blank: 含める場合、先行する空白に基づいて数値を符号付きまたは符号なしとして扱います。先頭にダッシュが付いた数値のダッシュの直前に空白文字以外の文字 (タブまたは " " ではない) がある場合、負の符号は数値の一部とは見なされません。例: "Carbon-14" で "14" に対して
CTRL-A
を使用すると、"Carbon-15" になります (「blank」がない場合は "Carbon-13" になります)。"Carbon -8" で "8" に対して
CTRL-X
を使用すると、"Carbon -9" になります (-8 の前に空白があるため。「unsigned」が設定されている場合は、"Carbon -7" になります)。この形式が含まれている場合、「unsigned」が設定されているかのようにオーバーフローが防止されます。この形式と「unsigned」の両方が含まれている場合、「unsigned」が優先されます。
1~9 の範囲の数字で始まる数値は、常に 10 進数と見なされます。これは、8 進数または 16 進数として認識されない数値にも当てはまります。
'patchmode' 'pm' E205 E206 'patchmode' 'pm' 文字列 (デフォルト: "") グローバル 空でない場合、ファイルの最も古いバージョンが保持されます。これは、ソースディストリビューションでファイルを変更する場合に、ファイルの元のバージョンを保持するために使用できます。ファイルが最初に書き込まれるときにのみ、元のファイルのコピーが保持されます。コピーの名前は、
'patchmode' オプションの文字列が追加された元のファイルの名前です。このオプションはドットで始まる必要があります。 ".orig" や ".org" のような文字列を使用します。これが機能するためには、
'backupdir' が空であってはなりません(詳細: バックアップファイルは、新しいファイルが正常に書き込まれた後に patchmode ファイルに名前が変更されます。そのため、バックアップファイルを書き込むことができる必要があります)。バックアップするファイルがない場合は、空のファイルが作成されます。
'backupskip' パターンが一致する場合、patchmode ファイルは作成されません。圧縮ファイルに
'patchmode' を使用すると、拡張子が末尾に追加されるため (例: "file.gz.orig")、結果の名前は常に圧縮ファイルとして認識されるとは限りません。通常のファイル名文字のみを使用でき、
/\*?[|<>
は無効です。
'path' 'pa' E343 E345 E347 E854 'path' 'pa' 文字列 (デフォルト: ".,,") グローバルまたはバッファローカル
global-local これは、
gf、[f, ]f、^Wf、
:find、
:sfind、
:tabfind、およびその他のコマンドを使用する場合に検索されるディレクトリのリストです。ただし、検索対象のファイルに相対パス ("/"、"./"、または "../" で始まらないパス) がある場合に限ります。
'path' オプションのディレクトリは、相対パスまたは絶対パスにすることができます。
ディレクトリ名を区切るにはコンマを使用します。
set path=.,/usr/local/include,/usr/include
スペースを使用してディレクトリ名を区切ることもできます。ディレクトリ名にスペースを含めるには、余分なバックスラッシュを前に付け、スペースをエスケープします。
set path=.,/dir/with\\\ space
ディレクトリ名にコンマを含めるには、余分なバックスラッシュを前に付けます。
set path=.,/dir/with\\,comma
現在のファイルのディレクトリを基準に検索するには、次を使用します。
set path=.
現在のディレクトリを検索するには、2つのコンマの間に空の文字列を使用します。
set path=,,
ディレクトリ名の末尾は ':' または '/' にすることができます。
netrw.vim を使用する場合、URL を使用できます。たとえば、"https://www.vim.org" を追加すると、":find index.html" が機能します。
ディレクトリツリーを上向きおよび下向きに検索するには、"*"、"**"、および ";" を使用します。情報と構文については、
file-searching を参照してください。
'\' 文字には注意が必要です。オプションで 1 つを取得するには 2 つ入力します。
set path=.,c:\\include
または代わりに '/' を使用します。
set path=.,c:/include
"." を忘れないでください。そうしないと、ファイルはファイルと同じディレクトリ内でも見つかりません! 最大長には制限があります。その量はシステムによって異なりますが、ほとんどの場合 256 文字または 1024 文字程度です。
'path' の値を使用して、すべてのインクルードファイルが見つかったかどうかを確認できます。
:checkpath を参照してください。リストからディレクトリを追加または削除する場合は、
:set+= および
:set-= を使用することをお勧めします。これにより、将来のバージョンで別のデフォルトが使用された場合の問題が回避されます。現在のディレクトリを削除するには、次を使用します。
set path-=
現在のディレクトリを追加するには、次を使用します。
set path+=
環境変数を使用するには、区切り文字を置き換える必要がある場合があります。次に、ディレクトリ名がセミコロンで区切られている $INCL を追加する例を示します。
let &path = &path .. "," .. substitute($INCL, ';', ',', 'g')
';' を ':' または使用されている区切り文字で置き換えます。 $INCL にコンマまたは空白が含まれている場合は、これは機能しないことに注意してください。
highlight-blend を使用して、ポップアップメニュー内の個々のハイライトのレベルを上書きすることができます。たとえば、透明度を有効にするが、現在選択されている要素を完全に不透明にするには、次のようにします。
set pumblend=15
hi PmenuSel blend=0
'quoteescape' 'qe' 'quoteescape' 'qe' 文字列 (デフォルト "\") バッファーローカル 文字列内の引用符をエスケープするために使用される文字。a'、a"、a` などのオブジェクトに使用されます
a'。このオプションの文字のいずれかが文字列内で見つかった場合、次の文字はスキップされます。デフォルト値では、テキスト "foo\"bar\\" は1つの文字列と見なされます。
'redrawdebug' 'rdb' 'redrawdebug' 'rdb' 文字列 (デフォルト "") グローバル デバッグ目的で、再描画の動作を変更するためのフラグ。
'writedelay' が適切な値に設定されている場合に最も役立ちます。次のフラグをサポートします。 compositor 再描画タイプを示す色で、再描画された領域を一時的に点滅させることで、コンポジターによって処理された各再描画イベントを示します。これらは、使用されるハイライトグループ(およびデフォルトの色)です。 RedrawDebugNormal gui=reverse 通常の再描画が渡されました RedrawDebugClear guibg=Yellow クリアイベントが渡されました RedrawDebugComposed guibg=Green コンポジターによって変更された再描画イベント(グリッドの重複などによる) RedrawDebugRecompose guibg=Red グリッドの移動または削除により、コンポジター自体によって生成された再描画。 line 画面に描画された各行の後に遅延を導入します。TUI または別のシングルグリッド UI を使用している場合、「compositor」の方がより多くの情報を提供するため、優先する必要があります(すべての行はコンポジターによって個別のイベントとして処理されます) flush 各「フラッシュ」イベントの後に遅延を導入します。 nothrottle メッセージグリッドのスロットリングをオフにします。これは、メッセージ領域を描画するときに、多くの小さなスクロールを1つの大きなスクロールに結合する最適化です(
'display' msgsep フラグがアクティブな場合)。 invalid 内部画面状態の不整合のより厳密なチェック(中止)を有効にします。これは、デバッガー(およびテストスイート)内で nvim を実行する場合に最も役立ちます。 nodelta 内部で再描画されたすべてのセルを、すでに表示されている状態から変更されていない場合でも、UI に送信します。
'regexpengine' 're' 'regexpengine' 're' 数値 (デフォルト 0) グローバル これにより、デフォルトの正規表現エンジンが選択されます。
two-engines 可能な値は次のとおりです。 0 自動選択 1 旧エンジン 2 NFA エンジン NFA エンジンを使用しており、パターンにサポートされていないものが含まれている場合、パターンは一致しないことに注意してください。これは、正規表現エンジンをデバッグする場合にのみ役立ちます。自動選択を使用すると、デフォルトのエンジンが高コストになった場合に Vim がエンジンを切り替えることができます。たとえば、NFA エンジンが過剰な状態を使用する場合などです。これにより、複雑なパターンと長いテキストの組み合わせで Vim がハングするのを防ぐ必要があります。
'report'
'report' 数値 (デフォルト 2) グローバル 変更された行数を報告するためのしきい値。変更された行数が
'report' より多い場合、ほとんどの ":" コマンドでメッセージが表示されます。常に表示する場合は、
'report' を 0 に設定します。":substitute" コマンドの場合、行数ではなく置換数が使用されます。
'rightleft' 'rl' 'norightleft' 'norl' 'rightleft' 'rl' 真偽値 (デフォルト off) ウィンドウローカル オンにすると、表示方向が右から左になります。つまり、ファイルに保存されている文字は右から左に表示されます。このオプションを使用すると、ヘブライ語やアラビア語など、右から左に書かれる言語のファイルを編集できます。このオプションはウィンドウごとであるため、混合ファイルを同時に編集したり、同じファイルを両方の方法で表示したりできます(右から左と左から右の両方の文字列を含む混合テキストファイルがある場合、両方のセットが異なるウィンドウで正しく表示されるようにする場合に便利です)。
rileft.txt も参照してください。
search "/" および "?" コマンド
'ruler' 'ru' 'noruler' 'noru' 'ruler' 'ru' 真偽値 (デフォルト on) グローバル カーソル位置の行番号と列番号をコンマで区切って表示します。スペースがある場合は、ファイル内の表示テキストの相対位置が右端に表示されます。 Top 最初の行が表示されています Bot 最後の行が表示されています All 最初と最後の行が表示されています 45% ファイル内の相対位置
'rulerformat' が設定されている場合、ルーラーの内容を決定します。各ウィンドウには独自のルーラーがあります。ウィンドウにステータス行がある場合、ルーラーはそこに表示されます。ウィンドウにステータス行がなく、
'cmdheight' がゼロの場合、ルーラーは表示されません。それ以外の場合は、画面の最後の行に表示されます。ステータス行が
'statusline' によって与えられている場合 (つまり、空ではない場合)、このオプションは
'ruler' および
'rulerformat' よりも優先されます。表示される文字数がテキストのバイト数と異なる場合(例:TABまたはマルチバイト文字の場合)、テキスト列(バイト数)と画面列の両方が、ダッシュで区切られて表示されます。空の行の場合、「0-1」が表示されます。空のバッファーの場合、行番号もゼロになります。「0,0-1」。ルーラーを常に表示したくないが、自分の位置を知りたい場合は、「g
CTRL-G
」
g_CTRL-G を使用します。
デフォルトのルーラーの幅は 17 文字です。ルーラーの幅を 15 文字にするには、先頭に "%15(" を、末尾に "%)" を入力します。例
set rulerformat=%15(%c%V\ %p%%%)
'runtimepath' 'rtp' vimfiles 'runtimepath' 'rtp' 文字列 (デフォルト "$XDG_CONFIG_HOME/nvim, $XDG_CONFIG_DIRS[1]/nvim, $XDG_CONFIG_DIRS[2]/nvim, … $XDG_DATA_HOME/nvim[-data]/site, $XDG_DATA_DIRS[1]/nvim/site, $XDG_DATA_DIRS[2]/nvim/site, … $VIMRUNTIME, … $XDG_DATA_DIRS[2]/nvim/site/after, $XDG_DATA_DIRS[1]/nvim/site/after, $XDG_DATA_HOME/nvim[-data]/site/after, … $XDG_CONFIG_DIRS[2]/nvim/after, $XDG_CONFIG_DIRS[1]/nvim/after, $XDG_CONFIG_HOME/nvim/after") グローバル これらのランタイムファイルを検索するディレクトリのリスト: filetype.lua ファイルタイプ
新しいファイルタイプ autoload/ 自動的にロードされるスクリプト
自動ロード関数 colors/ カラースキームファイル
:colorscheme compiler/ コンパイラファイル
:compiler doc/ ドキュメント
ローカルヘルプの作成 ftplugin/ ファイルタイププラグイン
ファイルタイププラグインの作成 indent/ インデントスクリプト
インデント式 keymap/ キーマップファイル
mbyte-keymap lang/ メニュー翻訳
:menutrans lua/
Lua プラグイン menu.vim GUIメニュー
menu.vim pack/ パッケージ
:packadd parser/
treesitter 構文パーサー plugin/ プラグインスクリプト
プラグインの作成 queries/
treesitter クエリ rplugin/
リモートプラグイン スクリプト spell/ スペルチェックファイル
spell syntax/ 構文ファイル
mysyntaxfile tutor/ チュートリアルファイル
:Tutor
デフォルトでは、以下の場所を検索するように設定されています。 1. 個人的な設定のためのホームディレクトリ。
stdpath("config")
で指定されます。
$XDG_CONFIG_HOME 2.
xdg に従って設定ファイルを含む必要があるディレクトリ ($XDG_CONFIG_DIRS、デフォルトは /etc/xdg)。これにはシステム管理者による設定も含まれます。 3. ユーザーがインストールしたプラグイン用のデータホームディレクトリ。
stdpath("data")/site
で指定されます。
$XDG_DATA_HOME 4. $XDG_DATA_DIRS の各ディレクトリの nvim/site サブディレクトリ。これはシステム管理者によってインストールされたが、Nvim ディストリビューションの一部ではないプラグイン用です。XDG_DATA_DIRS のデフォルトは /usr/local/share/:/usr/share/ であるため、システム管理者はサイトプラグインを /usr/share/nvim/site にインストールすることが想定されます。 5. スワップ、backupdir、viewdir、undodir などの状態データ用のセッション状態ディレクトリ。
stdpath("state")
で指定されます。
$XDG_STATE_HOME 6. Nvim とともに配布されるファイル用の $VIMRUNTIME。
after-directory7, 8, 9, 10. 1、2、3、4 の after/ サブディレクトリで、逆順で。これは、配布されたデフォルトやシステム全体の設定を上書きまたは追加するための設定です (まれに必要な場合)。
'path' とは異なり、"**" のようなワイルドカードは許可されていないことに注意してください。通常のワイルドカードは許可されていますが、ランタイムファイルの検索が大幅に遅くなる可能性があります。速度を上げるには、できるだけ少ない項目を使用し、ワイルドカードを避けてください。
:runtime を参照してください。例
set runtimepath=~/vimruntime,/mygroup/vim,$VIMRUNTIME
これは、最初に "~/vimruntime" ディレクトリ (個人的な Nvim ランタイムファイルを含む) を使用し、次に "/mygroup/vim" を使用し、最後に "$VIMRUNTIME" (デフォルトのランタイムファイル) を使用します。配布されたランタイムファイルを置き換えるファイルを見つけるには、$VIMRUNTIME の前にディレクトリを置くことができます。配布されたランタイムファイルに追加するファイルを見つけるには、$VIMRUNTIME の後にディレクトリを置くことができます。
--clean を使用すると、ホームディレクトリのエントリは含まれません。
注: 表示されておらず、スクロールバックに保持されている行は、ターミナルバッファのサイズが水平方向に変更された場合、リフローされません。
'scrollbind' 'scb' 'noscrollbind' 'noscb' 'scrollbind' 'scb' 真偽値 (デフォルトはオフ) ウィンドウローカル
スクロールバインディングも参照してください。このオプションが設定されている場合、現在のウィンドウをスクロールすると、他のスクロールバインドウィンドウ (このオプションも設定されているウィンドウ) もスクロールします。このオプションは、ファイルの2つのバージョン間の違いを表示するのに役立ちます。
'diff'を参照してください。このオプションをどのように解釈する必要があるかを決定するオプションについては、
'scrollopt'を参照してください。このオプションは、別のファイルを編集するためにウィンドウを分割すると、ほとんどリセットされます。つまり、":split | edit file" はスクロールバインディングを持つ2つのウィンドウになりますが、":split file" はそうではありません。
'scrolljump' 'sj' 'scrolljump' 'sj' 数値 (デフォルトは1) グローバル カーソルが画面から外れたときにスクロールする最小行数 (例: "j")。スクロールコマンド (例:
CTRL-E
、
CTRL-D
) には使用されません。ターミナルのスクロールが非常に遅い場合に便利です。-1 から -100 までの負の数に設定すると、ウィンドウの高さの割合として使用されます。したがって、-50 はウィンドウの高さの半分をスクロールします。
'scrolloff' 'so' 'scrolloff' 'so' 数値 (デフォルト 0) グローバルまたはウィンドウローカル
global-local カーソル上下に保持する画面行の最小数。これにより、作業中の場所の周りにいくつかのコンテキストが表示されます。非常に大きな値 (999) に設定すると、カーソル行は常にウィンドウの中央に表示されます (ファイルの先頭または末尾、または長い行が折り返される場合を除く)。ローカル値を使用した後は、次の2つのいずれかでグローバル値に戻ります。
setlocal scrolloff<
setlocal scrolloff=-1
'scrollopt' 'sbo' 'scrollopt' 'sbo' 文字列 (デフォルト "ver,jump") グローバル これは、
'scrollbind' ウィンドウがどのように動作するかを指定する、コンマ区切りの単語のリストです。
'sbo' は ScrollBind Options の略です。次の単語が利用可能です: ver
'scrollbind' ウィンドウの垂直スクロールをバインドします hor
'scrollbind' ウィンドウの水平スクロールをバインドします jump 垂直スクロールの2つのウィンドウ間のオフセットに適用されます。このオフセットは、バインドされたウィンドウの最初に表示される行の差です。ウィンドウ内を移動すると、別の
'scrollbind' ウィンドウがバッファの先頭より前または末尾より後の位置に到達する可能性があります。オフセットは変更されませんが、
'scrollbind' ウィンドウに戻ると、可能な場合は目的の位置にスクロールしようとします。そのウィンドウを現在のウィンドウにする場合、相対オフセットに対して2つのことを行うことができます。 1. "jump" が含まれていない場合、相対オフセットは新しい現在のウィンドウのスクロール位置に合わせて調整されます。他のウィンドウに戻ると、新しい相対オフセットが使用されます。 2. "jump" が含まれている場合、他のウィンドウは同じ相対オフセットを維持するためにスクロールされます。他のウィンドウに戻ると、同じ相対オフセットが使用されます。
スクロールバインディングも参照してください。
'diff' モードがアクティブな場合、"ver" がなくても常に垂直スクロールバインディングがあります。
'selection' 'sel' 'selection' 'sel' 文字列 (デフォルトは "inclusive") グローバル このオプションは、選択の動作を定義します。ビジュアルモードとセレクトモードでのみ使用されます。可能な値
値 行末を超過 包含
old いいえ はい 包含 はい はい 排他的 はい いいえ 「行末を超過」とは、カーソルが行の最後から1文字先に配置できることを意味します。「包含」とは、選択の最後の文字が操作に含まれることを意味します。たとえば、「x」が選択を削除するために使用される場合です。「old」を使用し、
'virtualedit' がカーソルを行末を超えて移動できるようにする場合でも、改行は含まれません。「排他的」が使用され、末尾から逆方向に選択する場合、ノーマルモードで開始し、
'virtualedit' が空の場合、行の最後の文字を含めることはできないことに注意してください。
'selectmode' 'slm' 'selectmode' 'slm' 文字列 (デフォルト "") グローバル これは、選択が開始されたときに、ビジュアルモードではなくセレクトモードを開始するタイミングを指定する、コンマ区切りの単語のリストです。可能な値: mouse マウスを使用した場合 key シフトキー付きの特殊キーを使用した場合 cmd "v"、"V"、または
CTRL-V
を使用した場合
セレクトモードを参照してください。
'sessionoptions' 'ssop' 'sessionoptions' 'ssop' 文字列 (デフォルト "blank,buffers,curdir,folds,help,tabpages,winsize,terminal") グローバル
:mksession コマンドの効果を変更します。これは、コンマ区切りの単語のリストです。各単語は、何かを保存および復元できるようにします。
単語 保存と復元
blank 空のウィンドウバッファ、隠されたバッファ、アンロードされたバッファ。カレントディレクトリ内のウィンドウだけでなく、手動で作成された折りたたみ、開閉された折りたたみ、ローカルの折りたたみオプション。globals 大文字で始まり、少なくとも1つの小文字を含むグローバル変数。StringとNumber型のみが保存される。help ヘルプウィンドウ。localoptions ウィンドウまたはバッファにローカルなオプションとマッピング (ローカルオプションのグローバル値ではない)。options すべてのオプションとマッピング (ローカルオプションのグローバル値も含む)。skiprtp
'runtimepath' と
'packpath' をオプションから除外する。resize Vimウィンドウのサイズ:
'lines' と
'columns'。sesdir セッションファイルが置かれているディレクトリがカレントディレクトリになる (異なるシステムからネットワーク経由でアクセスするプロジェクトで便利)。tabpages すべてのタブページ。これがないと、現在のタブページのみが復元されるため、タブページごとにセッションを作成できる。terminal コマンドが復元できるターミナルウィンドウを含める。winpos Vimウィンドウ全体の位置。winsize ウィンドウサイズ。slash
非推奨。常に有効。ファイル名に "/" を使用。unix
非推奨。常に有効。改行に "\n" を使用。
"curdir" と "sesdir" の両方を含めないでください。どちらも含まれていない場合、ファイル名は絶対パスとして保存されます。"options" を省略すると、セッションの復元後に多くのものがうまく動作しません。
'shada' 'sd' E526 E527 E528 'shada' 'sd' string (Win32 のデフォルト: !,'100,<50,s10,h,rA:,rB: その他のデフォルト: !,'100,<50,s10,h) global 空でない場合、shadaファイルはVimの起動時に読み込まれ、終了時に書き込まれます(
shada-fileを参照)。文字列は、コンマで区切られたパラメータのリストである必要があり、各パラメータは、特定のパラメータを識別する1つの文字と、そのパラメータの値を指定する数値または文字列で構成されます。特定の文字が省略された場合、そのパラメータにはデフォルト値が使用されます。以下に、識別文字とそれらの値の効果のリストを示します。
文字 値
shada-! ! これが含まれていると、大文字で始まり、小文字を含まないグローバル変数が保存および復元されます。したがって、"KEEPTHIS" と "K_L_M" は保存されますが、"KeepThis" と "_K_L_M" は保存されません。ネストされたListとDictの項目は正しく読み戻されない可能性があり、空の項目になります。
shada-quote" 各レジスタに保存される最大行数。'<' 項目の古い名前で、" の前にバックスラッシュを付ける必要があるという欠点があります。そうしないと、コメントの開始として認識されてしまいます!
shada-%% これが含まれていると、バッファリストが保存および復元されます。Vimがファイル名引数付きで起動された場合、バッファリストは復元されません。Vimがファイル名引数なしで起動された場合、バッファリストはshadaファイルから復元されます。クイックフィックス (
'buftype')、リストされていない (
'buflisted')、名前のないバッファ、およびリムーバブルメディア上のバッファ (
shada-r) は保存されません。数値が続く場合、その数値は保存されるバッファの最大数を指定します。数値がない場合、すべてのバッファが保存されます。
shada-'' マークが記憶される、以前に編集したファイルの最大数。このパラメータは、
'shada' が空でない場合は必ず含める必要があります。この項目を含めることは、
ジャンプリストと
チェンジリストがshadaファイルに保存されることも意味します。
shada-// 保存される検索パターン履歴の最大項目数。ゼロ以外の場合、以前の検索パターンと置換パターンも保存されます。含まれていない場合、
'history' の値が使用されます。
shada-:: 保存されるコマンドライン履歴の最大項目数。含まれていない場合、
'history' の値が使用されます。
shada-<< 各レジスタに保存される最大行数。ゼロの場合、レジスタは保存されません。含まれていない場合、すべての行が保存されます。"'" はこの項目の古い名前です。以下の 's' 項目も参照してください: KiB で指定された制限。
shada-@@ 保存される入力行履歴の最大項目数。含まれていない場合、
'history' の値が使用されます。
shada-cc ダミーオプション、互換性のため残されています。実際には効果はありません: ShaDa は常にUTF-8を使用し、
'encoding' の値も UTF-8 に固定されています。
shada-ff ファイルマークを保存する必要があるかどうか。ゼロの場合、ファイルマーク ('0' から '9'、'A' から 'Z') は保存されません。存在しない場合、またはゼロ以外の場合は、すべて保存されます。'0' は、現在のカーソル位置に使用されます(終了時、または
:wshadaを実行した場合)。
shada-hh shada ファイルのロード時に
'hlsearch' の効果を無効にします。含まれていない場合、最後の検索コマンド以降に ":nohlsearch" が使用されたかどうかによって異なります。
shada-nn shada ファイルの名前。名前は 'n' の直後に続く必要があります。オプションの最後に記述する必要があります!
'shadafile' オプションが設定されている場合、そのファイル名は
'shada' で指定されたものを上書きします。環境変数は、オプションを設定するときではなく、ファイルを開くときに展開されます。
shada-rr リムーバブルメディア。引数は文字列(次の ',' まで)です。このパラメータは複数回指定できます。それぞれがマークが保存されないパスの開始を指定します。これはリムーバブルメディアを避けるためです。Windows の場合は "ra:,rb:" を使用できます。一時ファイルにも使用できます。たとえば、Unix の場合は "r/tmp" です。大文字と小文字は区別されません。
shada-ss KiB単位のアイテム内容の最大サイズ。ゼロの場合、何も保存されません。Vimとは異なり、これはバッファリストとヘッダーを除くすべての項目に適用されます。フルアイテムサイズは、3つの符号なし整数によってオフになります。
s10
では、最大アイテムサイズは1バイト (タイプ: 7ビット整数) + 9バイト (タイムスタンプ: 最大64ビット整数) + 3バイト (アイテムサイズ: 2^8 < 10240 < 2^16 であるため最大16ビット整数) + 10240バイト (要求された最大アイテム内容サイズ) = 10253バイトになる可能性があります。
例
set shada='50,<1000,s100,:0,n~/nvim/shada
'50 最後に編集した50ファイルについて、マークが記憶されます。<1000 レジスタの内容 (それぞれ最大1000行) が記憶されます。s100 100 KiBを超える内容を持つアイテムはスキップされます。:0 コマンドライン履歴は保存されません。n~/nvim/shada 使用するファイルの名前は "~/nvim/shada" です。no / '/' が指定されていないため、デフォルトが使用されます。つまり、検索履歴、および以前の検索パターンと置換パターンをすべて保存します。no % バッファリストは保存も読み戻しもされません。no h
'hlsearch' のハイライトは復元されます。
シェルの名前にスペースが含まれている場合は、引用符で囲む必要があります。引用符を使用した例
set shell=\"c:\program\ files\unix\sh.exe\"\ -f
各引用符の前にバックスラッシュ(コメントの開始を避けるため)と、各スペース(オプション値の終了を避けるため)があることに注意してください。したがって、このように
:let-&を使用する方が良いでしょう。
let &shell='"C:\Program Files\unix\sh.exe" -f'
" -f" はコマンド名の一部ではないため、引用符の内側にないことにも注意してください。
shell-unquoting引用符に関する規則: 1. オプションは、引用符で囲まれていないスペースとタブ文字で分割されます。「abc def」は、「abc」という名前のシェルを追加の引数「def」で実行します。一方、「"abc def"」は、「abc def」という名前のシェルを追加の引数なしで実行します(ここで、および以下で:追加とは、
'shellcmdflag'に追加されるものを意味します)。 2. オプション内の引用符は、任意の位置に任意の数で存在できます。「"abc"」、「"a"bc」、「a"b"c」、「ab"c"」、「"a"b"c"」はすべて、単に「abc」と同等です。 3. 引用符の中で、バックスラッシュの前のバックスラッシュは1つのバックスラッシュを意味します。引用符の前のバックスラッシュは1つの引用符を意味します。それ以外の文字の前のバックスラッシュは、バックスラッシュと次の文字を文字通りに意味します。「"a\\b"」は「a\b」と同じであり、「"a\\"b"」は文字通り「a"b」という名前のシェルを実行し、「"a\b"」は再び「a\b」と同じです。 4. 引用符の外では、バックスラッシュは常にそれ自体を意味し、引用符をエスケープするために使用することはできません。「a\"b"」は「a\b」と同じです。このような処理は、
:setが独自のエスケープ解除を行った後に行われるため、正気を保つためには、上記のように
:let-&を使用してください。
shell-powershellPowerShellを使用するには
let &shell = executable('pwsh') ? 'pwsh' : 'powershell'
let &shellcmdflag = '-NoLogo -NonInteractive -ExecutionPolicy RemoteSigned -Command [Console]::InputEncoding=[Console]::OutputEncoding=[System.Text.UTF8Encoding]::new();$PSDefaultParameterValues[''Out-File:Encoding'']=''utf8'';$PSStyle.OutputRendering=''plaintext'';Remove-Alias -Force -ErrorAction SilentlyContinue tee;'
let &shellredir = '2>&1 | %%{ "$_" } | Out-File %s; exit $LastExitCode'
let &shellpipe = '2>&1 | %%{ "$_" } | tee %s; exit $LastExitCode'
set shellquote= shellxquote=
'shellpipe' 'sp' 'shellpipe' 'sp' string (デフォルト ">", "| tee", "|& tee" or "2>&1| tee") グローバル ":make"コマンドの出力をエラーファイルに入れるために使用される文字列。
:make_makeprgも参照してください。スペースとバックスラッシュの含め方については、
option-backslashを参照してください。必要であれば、一時ファイルの名前は"%s"で表すことができます(このオプションの値に%sが表示されない場合、ファイル名は自動的に追加されます)。MS-Windowsの場合、デフォルトは「2>&1| tee」です。stdoutとstderrはファイルに保存され、画面にエコーされます。Unixの場合、デフォルトは「| tee」です。コンパイラのstdoutはファイルに保存され、画面にエコーされます。
'shell'オプションが初期化後に「csh」または「tcsh」の場合、デフォルトは「|& tee」になります。
'shell'オプションが「sh」、「ksh」、「mksh」、「pdksh」、「zsh」、「zsh-beta」、「bash」、「fish」、「ash」または「dash」の場合、デフォルトは「2>&1| tee」になります。これは、stderrも含まれることを意味します。
'shell'オプションを使用する前にパスが削除されるため、「/bin/sh」は「sh」を使用します。このオプションの初期化は、vimrcおよびその他の初期化を読み取った後に行われるため、
'shell'オプションがそこで設定されている場合、
'shellpipe'オプションは、明示的に設定されていない限り、自動的に変更されます。
'shellpipe'が空の文字列に設定されている場合、":make"出力のリダイレクトは行われません。これは、
'makeef'に書き込む
'makeprg'を使用する場合に役立ちます。パイプ処理を行わず、
'makeef'を含めたい場合は、
'shellpipe'を単一のスペースに設定します。スペースの前にバックスラッシュを付けることを忘れないでください:":set sp=\ "。将来、パイプはフィルタリングに使用される可能性があり、このオプションは(少なくともUnixでは)廃止されるでしょう。このオプションは、セキュリティ上の理由から、
modelineまたは
sandboxでは設定できません。
'shellquote' 'shq' 'shellquote' 'shq' string (デフォルト ""; Windowsで、
'shell'に「sh」が含まれている場合:「\"」) グローバル 「!」および「:!」コマンドで、シェルに渡されるコマンドを囲む引用符文字。リダイレクトは引用符の外側に保持されます。リダイレクトを含めるには、
'shellxquote'を参照してください。両方のオプションを設定することは、おそらく役に立ちません。これはデフォルトでは空の文字列です。MKS Korn ShellやbashなどのWindowsシステムのサードパーティ製シェルでのみ有用であることが知られており、その場合は「\"」である必要があります。デフォルトは、ユーザーがこのオプションを設定する必要性を減らすために、
'shell'の値に応じて調整されます。このオプションは、セキュリティ上の理由から、
modelineまたは
sandboxでは設定できません。
'shellredir' 'srr' 'shellredir' 'srr' string (デフォルト ">", ">&" or ">%s 2>&1") グローバル フィルターコマンドの出力を一時ファイルに入れるために使用される文字列。
:!も参照してください。スペースとバックスラッシュの含め方については、
option-backslashを参照してください。必要であれば、一時ファイルの名前は"%s"で表すことができます(このオプションの値に%sが表示されない場合、ファイル名は自動的に追加されます)。デフォルトは「>」です。Unixの場合、初期化中に
'shell'オプションが「csh」または「tcsh」の場合、デフォルトは「>&」になります。
'shell'オプションが「sh」、「ksh」、「mksh」、「pdksh」、「zsh」、「zsh-beta」、「bash」または「fish」の場合、デフォルトは「>%s 2>&1」になります。これは、stderrも含まれることを意味します。Win32の場合、Unixのチェックが行われ、さらに「cmd」がチェックされ、デフォルトが「>%s 2>&1」になります。また、「.exe」が追加された同じ名前もチェックされます。このオプションの初期化は、vimrcおよびその他の初期化を読み取った後に行われるため、
'shell'オプションがそこで設定されている場合、
'shellredir'オプションは、明示的に設定されていない限り、自動的に変更されます。将来、パイプはフィルタリングに使用される可能性があり、このオプションは(少なくともUnixでは)廃止されるでしょう。このオプションは、セキュリティ上の理由から、
modelineまたは
sandboxでは設定できません。
'shellslash' 'ssl' 'noshellslash' 'nossl' 'shellslash' 'ssl' boolean (デフォルト off) グローバル MS-Windowsのみ設定されている場合、ファイル名を展開するときにスラッシュが使用されます。これは、cmd.exeの代わりにUnixのようなシェルを使用する場合に便利です。バックスラッシュも入力できますが、Vimによってスラッシュに変更されます。このオプションの設定またはリセットは、既存の一部のファイル名には影響がないため、最良の結果を得るには、このオプションをファイルを開く前に設定する必要があることに注意してください。これは将来変更される可能性があります。
'shellslash'は、バックスラッシュをパス区切り文字として使用できる場合にのみ機能します。これを確認するには、以下を使用してください
if exists('+shellslash')
'shortmess' 'shm' E1336 'shortmess' 'shm' string (デフォルト "ltToOCF") グローバル このオプションは、ファイルメッセージ(例えば、
CTRL-G
)によって発生するすべての
hit-enterプロンプトを回避したり、その他のメッセージを回避したりするのに役立ちます。これはフラグのリストです
フラグが存在する場合の意味
l 「999行、888バイト」ではなく、「999L、888B」を使用する
shm-l m 「[変更済み]」の代わりに「[+]」を使用する
shm-mr 「[読み取り専用]」の代わりに「[RO]」を使用する
shm-rw ファイル書き込みメッセージに「書き込みました」の代わりに「[w]」を使用する
shm-w および「:w >> ファイル」コマンドの「追加しました」の代わりに「[a]」を使用する a 上記のすべての略語
shm-a
ファイル書き込み時の上書きメッセージは、ファイル読み込み時の後続の
shm-oメッセージで上書きされます(":wn"や
'autowrite'がオンの場合に便利です)。ファイル読み込み時のOメッセージは、以前の
shm-Oメッセージを上書きします。クイックフィックスメッセージ(例:":cn")の場合も同様です。sは、「検索がBOTTOMに達し、TOPから継続」や、
shm-s「検索がTOPに達し、BOTTOMから継続」といったメッセージを表示しません。検索回数を使用する場合、カウントメッセージの前に"W"を表示しません(下記の
shm-Sを参照)。tコマンドラインに収まらないほどファイルメッセージが長すぎる場合、先頭を切り詰めます。
shm-t左端の列に"<"が表示されます。Exモードでは無視されます。Tコマンドラインに収まらないほど他のメッセージが長すぎる場合、中央を切り詰めます。
shm-T中央に"..."が表示されます。Exモードでは無視されます。Wファイルの書き込み時に「書き込みました」または「[w]」を表示しません。
shm-WA既存の
shm-Aスワップファイルが見つかったときに「ATTENTION」メッセージを表示しません。I Vim起動時にイントロメッセージを表示しません。
shm-I:introを参照してください。c
ins-completion-menuメッセージを表示しません。例えば、
shm-c"-- XXX completion (YYY)"、"match 1 of 2"、"The only match"、"Pattern not found"、"Back at original"などのメッセージ。C ins-completionの
shm-C項目をスキャン中のメッセージ(例:「scanning tags」)を表示しません。qマクロ記録時に「recording @a」を表示しません。
shm-qFファイル編集時にファイル情報を表示しません。例えば、
shm-Fコマンドに
:silent
が使用された場合などです。これは、
'autoread'によるリロードのメッセージにも影響します。S検索時に検索回数メッセージ(例:
shm-S「[1/5]」)を表示しません。"S"フラグがない場合(例えば検索回数が表示される場合)、"search hit BOTTOM, continuing at TOP"と"search hit TOP, continuing at BOTTOM"のメッセージは、検索回数統計の前に"W"(Mnemonic: Wrapped)の文字で示されるだけです。
これにより、バッファ間の変更で
<Enter>
を押す必要性を回避しながら、利用可能なスペースに対して可能な限り有用なメッセージを表示できます。
'shm'が空の場合に取得できるメッセージ全体を取得するには、":file!"を使用してください。便利な値:shm=メッセージを省略しない。shm=a省略するが、情報を失わない。shm=at省略し、必要に応じてメッセージを切り詰める。
印刷可能な単一セル文字のみが許可され、
<Tab>
とコンマは除外されます(将来のバージョンでは、コンマが行の末尾と先頭に表示される部分を分離するために使用される可能性があります)。
hl-NonTextハイライトグループがハイライトを決定します。showbreak後のタブは異なる表示になることに注意してください。
'showbreak'を行番号の間に表示する場合は、
'cpoptions'に"n"フラグを追加します。ウィンドウローカルの値はグローバルな値を上書きします。グローバル値が設定されており、現在のウィンドウで値を設定したくない場合は、NONEを使用してください。
setlocal showbreak=NONE
'showcmd' 'sc' 'noshowcmd' 'nosc' 'showcmd' 'sc'ブール値(デフォルトはon)グローバル画面の最終行に(部分的な)コマンドを表示します。端末が遅い場合は、このオプションをオフにしてください。Visualモードでは、選択された領域のサイズが表示されます。
行内で文字を選択する場合、文字数。バイト数が異なる場合は、"2-6"は2文字と6バイトを意味するように表示されます。
複数行を選択する場合、行数。
'sidescrolloff' 'siso' 'sidescrolloff' 'siso'数値(デフォルトは0)グローバルまたはウィンドウに対してローカル
global-local'nowrap'が設定されている場合、カーソルの左右に維持する画面列の最小数。このオプションを0より大きい値に設定し、
'sidescroll'もゼロ以外の値に設定すると、(行の先頭を除いて)水平方向にスクロールしている行にコンテキストが表示されます。このオプションを大きな値(999など)に設定すると、行の先頭に近づきすぎない限り、カーソルがウィンドウの中央に水平方向に配置されるようになります。ローカル値を使用した後は、次のいずれかの方法でグローバル値に戻ります。
setlocal sidescrolloff<
setlocal sidescrolloff=-1
例:
'sidescroll'および
'listchars'と一緒に次の例のように試して、カーソルが「extends」文字に移動することを許可しないようにします。
set nowrap sidescroll=1 listchars=extends:>,precedes:<
set sidescrolloff=1
'signcolumn' 'scl' 'signcolumn' 'scl'文字列(デフォルトは"auto")ウィンドウに対してローカルサインコラムの描画方法とタイミング。有効な値は次のとおりです: "auto" 表示するサインがある場合にのみ表示する。 "auto:[1-9]" 指定された最大数(最大9)までの複数のサインに対応するようにサイズを変更する。例: "auto:4" "auto:[1-8]-[2-9]" 指定された最小数(最大8)の固定スペースを維持しながら、指定された最大数(最大9)までの複数のサインに対応するようにサイズを変更する。最小数は常に最大数より小さくする必要があります。例: "auto:2-5" "no" 表示しない。 "yes" 常に表示する。 "yes:[1-9]" 常に表示する。指定された最大数(最大9)までのサイン用の固定スペースを使用する。例: "yes:3" "number"
'number'列にサインを表示する。番号列がない場合、"auto"のように動作します。
'spellfile' 'spf' 'spellfile' 'spf' 文字列(デフォルトは"") バッファローカル
zgコマンドと
zwコマンドで単語を追加する単語リストファイルの名前。末尾は".{encoding}.add"で終わる必要があります。パスを含める必要があり、そうしないとファイルは現在のディレクトリに配置されます。パスには、
'isfname'、' '、'、'、'@'、':'の文字を含めることができます。
E765コンマ区切りの名前のリストでも構いません。
zgコマンドと
zwコマンドの前のカウントを使用して、それぞれにアクセスできます。これにより、個人の単語リストファイルとプロジェクトの単語リストファイルを使用できます。このオプションが空のときに単語が追加されると、Vimによって設定されます。
'runtimepath'で書き込み可能な最初のディレクトリを使用します。「spell」ディレクトリがまだない場合は、作成されます。ファイル名には、
'spelllang'に表示される最初の言語名が使用され、地域は無視されます。結果の「.spl」ファイルはスペルチェックに使用されます。これは
'spelllang'に表示される必要はありません。通常、すべての地域で1つのファイルが使用されますが、必要に応じて地域名を追加できます。ただし、
'spellfile'がそれに設定されている場合にのみ使用されます。
'spelllang'のエントリの場合、地域名のないファイルのみが見つかります。このオプションは、セキュリティ上の理由から、
modelineまたは
サンドボックスから設定することはできません。
これは、米国英語、オランダ語、および医療用語が認識されることを意味します。認識されない単語は強調表示されます。単語リスト名は、英数字、ダッシュ、またはアンダースコアで構成されている必要があります。コンマやドットを含めないでください。2文字の言語名と仕様を区切るには、ダッシュを使用することをお勧めします。したがって、「en-rare」はまれな英語の単語に使用されます。地域名は最後に「_xx」の形式である必要があります。ここで、「xx」は2文字の小文字の地域名です。複数の地域を使用するには、それらをリストします。「en_us,en_ca」は、米国英語とカナダ英語の両方をサポートしていますが、オーストラリア、ニュージーランド、またはイギリスに固有の単語はサポートしていません。(
注:現在、en_auおよびen_nzの辞書はen_ca、en_gb、en_usよりも古いです)。名前「cjk」が含まれている場合、東アジアの文字はスペルチェックから除外されます。これは、アジアの単語も含まれるテキストを編集する場合に役立ちます。 「medical」辞書は存在しないことに注意してください。これは長い名前の例にすぎません。
E757特別なケースとして、.splファイルの名前をそのまま指定できます。名前の最初の「_xx」は削除され、地域名として使用されます(_xxはアンダースコア、2文字で、文字以外の文字が続きます)。これは主にテスト目的です。正しいエンコーディングが使用されていることを確認する必要があります。Vimはそれをチェックしません。関連するスペルファイルがどのように見つかるかは、こちらで説明しています:
spell-load。
'spelloptions' 'spo' 'spelloptions' 'spo' string (デフォルト "") バッファローカル スペルチェックのオプションをカンマ区切りで指定します: camel 単語がキャメルケースの場合、「Cased」を別の単語とみなします。つまり、小文字の後に続く大文字は新しい単語の開始を示します。 noplainbuffer
'syntax' が有効な場合、またはバッファ内に extmark が設定されている場合にのみバッファのスペルチェックを行います。この場合、バッファの指定された領域のみがスペルチェックされます。
best 英語に最適な内部メソッド。 「fast」のような変更を見つけ、類似音スコアリングを使用して順序を改善します。
double 2つのメソッドを使用し、結果を混合する内部メソッド。最初のメソッドは「fast」、もう1つのメソッドは候補が間違った単語とどれだけ似ているかを計算します。これは、言語がサウンドフォールディングを指定している場合にのみ機能します。処理が遅くなる可能性があり、必ずしも良い結果が得られるとは限りません。
fast 文字の挿入/削除/スワップのような単純な変更のみをチェックする内部メソッド。単純な入力ミスに効果的です。
timeout:{millisec} 候補の検索時間を {millisec}
ミリ秒に制限します。以下のメソッドに適用されます。省略した場合、制限は 5000 です。負の値の場合、制限はありません。
file:{filename} ファイル
{filename}
を読み込みます。ファイルには、スラッシュで区切られた2つの列が必要です。最初の列には間違った単語、2番目の列には推奨される正しい単語が含まれます。例
theribal/terrible
内部メソッドで候補リストの先頭に表示されない一般的な間違いに使用します。スラッシュのない行は無視されますので、コメントに使用してください。2番目の列の単語は正しくなければなりません。そうでない場合は使用されません。現在スペルミスとしてフラグが立てられている場合は、単語を ".add" ファイルに追加します。このファイルはすべての言語に使用されます。
"best"、"double"、"fast" のいずれか 1 つのみを使用できます。その他は、任意の順序で複数回出現できます。例
set sps=file:~/.config/nvim/sugg,best,expr:MySuggest()
指定できる値は次のとおりです。 cursor 相対カーソル位置を維持します。 screen 同じ画面行にテキストを維持します。 topline 最上行を維持します。
"screen" および "topline" の値の場合、必要に応じてカーソル位置が変更されます。この場合、ジャンプリストには前のカーソル位置が入力されます。"screen" の場合、
'wrap' が有効になっていると、テキストを常に同じ画面行に維持できるとは限りません。
'startofline' 'sol' 'nostartofline' 'nosol' 'startofline' 'sol' boolean (デフォルト off) グローバル "on" の場合、以下に示すコマンドはカーソルを行の最初の非空白文字に移動します。off の場合、カーソルは(可能な場合)同じ列に保持されます。これは以下のコマンドに適用されます。
CTRL-D
, CTRL-U
, CTRL-B
, CTRL-F
, "G", "H", "M", "L", "gg"
カウント付きの "%"
バッファ変更コマンド (CTRL-^
, :bnext, :bNext など)
":25" または ":+" のような、行番号のみを持つ Ex コマンド。バッファ変更コマンドの場合、カーソルは最後にバッファが編集されたときの列に配置されます。
%l 現在描画されている行の行番号列 %s 現在描画されている行の記号列 %C 現在描画されている行の折りたたみ列
v:lnum 変数には、描画される行番号が保持されます。
v:relnum 変数には、描画される相対行番号が保持されます。
v:virtnum 変数は、仮想行を描画するときは負の値、実際のバッファ行を描画するときは 0、バッファ行の折り返し部分を描画するときは正の値になります。
注: %@ クリック実行関数項目もサポートされていますが、指定された関数は同じ列の各行で同じになります。動的な
'statuscolumn' 形式で切り替えることはできません。ハンドラーはこれを念頭に置いて作成する必要があります。
例:
" Line number with bar separator and click handlers:
set statuscolumn=%@SignCb@%s%=%T%@NumCb@%l│%T
" Line numbers in hexadecimal for non wrapped part of lines:
let &stc='%=%{v:virtnum>0?"":printf("%x",v:lnum)} '
" Human readable line numbers with thousands separator:
let &stc='%{substitute(v:lnum,"\\d\\zs\\ze\\'
. '%(\\d\\d\\d\\)\\+$",",","g")}'
" Both relative and absolute line numbers with different
" highlighting for odd and even relative numbers:
let &stc='%#NonText#%{&nu?v:lnum:""}' .
'%=%{&rnu&&(v:lnum%2)?"\ ".v:relnum:""}' .
'%#LineNr#%{&rnu&&!(v:lnum%2)?"\ ".v:relnum:""}'
警告: この式は画面の行ごとに評価されるため、コストのかかる式を定義すると、レンダリングパフォーマンスに悪影響を与える可能性があります。
このオプションは、通常のテキストが散在する printf スタイルの '%' 項目で構成されます。各ステータスライン項目は、%-0{minwid}.{maxwid}{item} の形式です。{item}
以外のすべてのフィールドはオプションです。単一のパーセント記号は "%%" として指定できます。
オプションが "%!" で始まる場合、式として使用され、評価され、結果がオプションの値として使用されます。例
set statusline=%!MyStatusLine()
g:statusline_winid 変数には、ステータスラインが属するウィンドウの
ウィンドウID が設定されます。結果には、評価される %{} 項目を含めることができます。 "%!" 式は現在のウィンドウとバッファのコンテキストで評価されるのに対し、%{} 項目はステータスラインが属するウィンドウのコンテキストで評価されることに注意してください。
オプションの評価中にエラーが発生した場合、それ以上のエラーを回避するために空にされます。それ以外の場合は、画面の更新がループします。結果に印刷できない文字が含まれている場合、結果は予測できません。
フィールドの意味
- 項目を左揃えにします。デフォルトでは、minwid が項目の長さよりも大きい場合、右揃えになります。0 数値項目の先頭に 0 を追加します。 "-" によって上書きされます。minwid 項目の最小幅。 "-" および "0" で設定されたように埋められます。値は 50 以下である必要があります。maxwid 項目の最大幅。テキスト項目の場合、左側に "<" を付けて切り捨てが発生します。数値項目の場合、maxwid-2 桁にシフトされ、その後に ">"number が続きます。number は指数表記のように欠落している桁数です。item 以下に説明する 1 文字コード。
以下は、可能なステータスライン項目の説明です。"item" の 2 番目の文字は、タイプを示します。N は数値、S は文字列、F は以下に説明するフラグです。
該当なし
項目の意味
f S バッファ内のファイルへのパス。入力されたもの、または現在のディレクトリからの相対パス。 F S バッファ内のファイルのフルパス。 t S バッファ内のファイルのファイル名(末尾部分)。 m F 変更フラグ。テキストは「[+]」。
'modifiable' がオフの場合は「[-]」。 M F 変更フラグ。テキストは「,+」または「,-」。 r F 読み取り専用フラグ。テキストは「[RO]」。 R F 読み取り専用フラグ。テキストは「,RO」。 h F ヘルプバッファフラグ。テキストは「[help]」。 H F ヘルプバッファフラグ。テキストは「,HLP」。 w F プレビューウィンドウフラグ。テキストは「[Preview]」。 W F プレビューウィンドウフラグ。テキストは「,PRV」。 y F バッファ内のファイルの種類。例えば、「[vim]」。
'filetype' を参照。 Y F バッファ内のファイルの種類。例えば、「,VIM」。
'filetype' を参照。 q S 「[Quickfix List]」、「[Location List]」、または空。 k S
'keymap' が設定されている時、または
:lmap マッピングが使用されている場合の "b:keymap_name" の値: "<keymap>"。 n N バッファ番号。 b N カーソル下の文字の値。 B N 上記と同じ(16進数表記)。 o N ファイル内のカーソル下のバイトのバイト番号。最初のバイトは 1。ニーモニック: ファイルの先頭からのオフセット(1 が加算されている)。 O N 上記と同じ(16進数表記)。 l N 行番号。 L N バッファ内の行数。 c N 列番号(バイトインデックス)。 v N 仮想列番号(画面上の列)。 V N 仮想列番号。-{数値} の形式。'c' と同じ場合は表示されません。 p N
CTRL-G で表示されるファイル内の行のパーセンテージ。 P S 表示ウィンドウのファイル内のパーセンテージ。
'ruler' で説明されているパーセンテージと同様。翻訳されていない限り、常に3文字の長さ。 S S
'showcmd' の内容。
'showcmdloc' を参照。 a S デフォルトのタイトルにある引数リストの状態。(
{current}
/
{max}
)引数ファイル数がゼロまたは1の場合は空。 { NF "%{"と"}"の間の式を評価し、結果を代入。末尾の "}" の前に "%" がないことに注意。式に "}" 文字を含めることはできません。その回避策として関数を呼び出してください。
stl-%{ を参照。
{%
- これは "{" とほぼ同じですが、式の評価結果はステータスラインの書式文字列として再評価されます。したがって、式の戻り値に "%" 項目が含まれている場合、それらは展開されます。式には "}" 文字を含めることができ、式の終わりは "%}" で示されます。例:
func! Stl_filename() abort
return "%t"
endfunc
stl=%{Stl_filename()}
の結果は
"%t"
、
stl=%{%Stl_filename()%}
の結果は
"現在のファイルの名前"
。 %} - "{%" 式の終了 ( - 項目グループの開始。セクションの幅と配置を設定するために使用できます。どこかに %) が続く必要があります。 ) - 項目グループの終了。幅フィールドは使用できません。 T N
'tabline' 用: タブページ N のラベルの開始。ラベルを終了するには %T または %X を使用します。このラベルを左マウスボタンでクリックすると、指定したタブページに切り替わり、中マウスボタンでクリックすると、指定したタブページが閉じます。 X N
'tabline' 用: タブ N を閉じるラベルの開始。ラベルを終了するには %X または %T を使用します。例えば: %3Xclose%X。 「現在のタブを閉じる」ラベルの場合は %999X を使用します。このラベルを左マウスボタンでクリックすると、指定したタブページが閉じます。 @ N 関数実行ラベルの開始。ラベルを終了するには %X または %T を使用します。例えば: %10@
[email protected]%X。このラベルをクリックすると、指定した関数が実行されます。例では、「foo.c」を左マウスボタンでクリックすると、
SwitchBuffer(10, 1, 'l', ' ')
式が実行されます。指定した関数は、次の引数を順番に受け取ります。1. minwid フィールドの値(N が指定されていない場合はゼロ)。2. 複数クリックを検出するためのマウスのクリック回数。3. 使用されたマウスボタン: 左ボタンの場合は "l"、右ボタンの場合は "r"、中ボタンの場合は "m"。3 番目の引数が "l"、"r"、または "m" のみであると依存すべきではありません。他のマウスボタンには、ASCII 小文字のみを含む他の空でない文字列の値が想定されます。4. 押された修飾キー: シフトキーが押された場合は "s"、コントロールキーが押された場合は "c"、Alt キーが押された場合は "a"、メタキーが押された場合は "m" を含む文字列。現在、修飾キーが押されていない場合、文字列には代わりにスペースが含まれますが、スペースの存在や修飾キーの特定の順序に依存すべきではありません。修飾キーが存在するかどうかをテストするには
stridx() を使用します。文字列には ASCII 文字とスペースのみが含まれていることが保証されており、修飾キーごとに1文字です。"?" 修飾キーも存在する場合があり、これはバグを示しており、このラベルのマウスクリックに対応するコードを変更せずに新しいマウスボタン認識が追加されたことを示します。
getmousepos().winid を指定した関数で使用して、クリックされた項目の対応するウィンドウ ID を取得します。 < - 行が長すぎる場合に切り捨てる場所。デフォルトでは先頭。幅フィールドは使用できません。 = - 配置セクション間の区切り点。各セクションは、同じ数のスペースで区切られます。%= が1つある場合、その後に続くものは右揃えになります。%= が2つある場合、中央部分があり、その左右に空白スペースがあります。幅フィールドは使用できません。 # - ハイライトグループを設定します。名前を後に続け、その後に # を再度付けます。したがって、ハイライトグループ HLname には %#HLname# を使用します。同じハイライトは、現在のウィンドウ以外のウィンドウのステータスラインにも使用されます。 * - ハイライトグループを User{N} に設定します。ここで
{N}
は minwid フィールドから取得されます。例えば %1*。%* または %0* で通常のハイライトに戻します。User{N} と StatusLine の違いは、現在のウィンドウ以外のステータスラインの場合、StatusLineNC に適用されます。数値 N は 1 から 9 の間である必要があります。
hl-User1..9 を参照。
フラグを表示するとき、そのフラグがプレーンテキストの直後にある場合、Vim は先頭のカンマ(もしあれば)を削除します。これにより、以下の例のようにフラグを使用すると、見やすい表示になります。
グループ内のすべての項目が空の文字列になった場合(つまり、設定されていないフラグ)、グループに minwid が設定されていない場合、グループ全体が空になります。これにより、次の例のようなグループは、フラグが設定されていない場合はステータスラインから完全に消えます。
set statusline=...%(\ [%M%R%H]%)...
式は、ステータスラインが表示されるたびに評価されることに注意してください。
stl-%{ g:actual_curbuf g:actual_curwin %{} を評価している間、現在のバッファと現在のウィンドウは、ステータスラインが描画されているウィンドウ(とバッファ)のものに一時的に設定されます。式はこのコンテキストで評価されます。変数 "g:actual_curbuf" は、実際の現在のバッファの
bufnr()
数に設定され、"g:actual_curwin" は実際の現在のウィンドウの
ウィンドウID に設定されます。これらの値は文字列です。
ステータスラインが更新されない場合(例えば、式で使用される変数を設定した後)、:redrawstatus
を使用して強制的に更新できます。
すべての数字の結果は、表示目的の数値と見なされます。それ以外の場合、結果はフラグテキストとして扱われ、上記のルールが適用されます。
式のエラーに注意してください。それらは Vim を使用不能にする可能性があります!行き詰まった場合は、':' または 'Q' を押し続けてプロンプトを表示し、次に終了し、"vim --clean" を使用して vimrc などを編集して修正してください。
例:
'ruler' が設定された標準のステータスラインをエミュレート
set statusline=%<%f\ %h%w%m%r%=%-14.(%l,%c%V%)\ %P
同様ですが、カーソル下の文字の ASCII 値("ga" のように)を追加
set statusline=%<%f%h%m%r%=%b\ 0x%B\ \ %l,%c%V\ %P
バイト数とバイト値を表示し、変更フラグを赤で表示
set statusline=%<%f%=\ [%1*%M%*%n%R%H]\ %-19(%3l,%02c%03V%)%O'%02b'
hi User1 term=inverse,bold cterm=inverse,bold ctermfg=red
圧縮ファイルがロードされている場合は、,GZ フラグを表示
set statusline=...%r%{VarExists('b:gzflag','\ [GZ]')}%h...
この関数を定義します
function VarExists(var, val)
if exists(a:var) | return a:val | else | return '' | endif
endfunction
'suffixes' 'su' 'suffixes' 'su' string (default ".bak,~,.o,.h,.info,.swp,.obj") global これらの接尾辞を持つファイルは、複数のファイルがワイルドカードに一致する場合、優先度が低くなります。
suffixes を参照してください。カンマを使用して、接尾辞を区切ることができます。カンマの後のスペースは無視されます。ドットも接尾辞の開始と見なされます。ドットまたはカンマが区切り文字として認識されないようにするには、バックスラッシュで先行します(スペースとバックスラッシュを含めることについては
option-backslash を参照してください)。ファイルを完全に無視するには、
'wildignore' を参照してください。リストから接尾辞を追加または削除する場合は、
:set+= と
:set-= を使用することをお勧めします。これにより、将来のバージョンで別のデフォルトが使用された場合の問題を回避できます。
'switchbuf' 'swb' 'switchbuf' 'swb' string (default "uselast") グローバル。このオプションは、バッファを切り替えるときの動作を制御します。このオプションは、次のときにチェックされます。
:stag コマンドを使用してタグにジャンプするとき。
バッファ分割コマンド(例:
:sbuffer、
:sbnext、または
:sbrewind)を使用してバッファにジャンプするとき。指定可能な値(カンマ区切りリスト): useopen を含めると、指定されたバッファを含む現在のタブページの最初の開いているウィンドウにジャンプします(存在する場合)。それ以外の場合:他のウィンドウを調べない。 usetab "useopen" と同様ですが、他のタブページのウィンドウも考慮します。 split を含めると、エラーを表示する
クイックフィックス コマンドのバッファをロードする前に、現在のウィンドウを分割します。それ以外の場合:分割しない、現在のウィンドウを使用する(クイックフィックスウィンドウで使用される場合:以前に使用したウィンドウまたは他のウィンドウがない場合は分割)。 vsplit "split" と同様ですが、垂直に分割します。 newtab "split" と同様ですが、新しいタブページを開きます。両方が存在する場合は、"split" を上書きします。 uselast を含めると、
クイックフィックスコマンドでエラーにジャンプするときに、以前に使用したウィンドウにジャンプします。ウィンドウで
'winfixbuf' が有効になっている場合、
'switchbuf' は現在、分割されたウィンドウには適用されません。
'synmaxcol' 'smc' 'synmaxcol' 'smc' 数値 (デフォルト 3000) バッファローカル。構文項目の検索を行う最大カラム数です。長い行では、このカラム以降のテキストはハイライトされません。また、構文状態がクリアされるため、後続の行が正しくハイライトされない場合があります。これは、1行が非常に長いXMLファイルでの非常に遅い再描画を回避するのに役立ちます。制限を解除するには、ゼロに設定します。
'syntax' 'syn' 'syntax' 'syn' 文字列 (デフォルト "") バッファローカル
local-noglobal このオプションが設定されている場合、":syntax off"で構文ハイライトが無効になっていない限り、この名前の構文がロードされます。それ以外の場合、このオプションは現在の構文を常に反映するわけではありません (b:current_syntax 変数には反映されます)。このオプションは、構文が自動的に認識されないファイルのモデル行で最も役立ちます。例:IDLファイルの場合
/* vim: set syntax=idl : */
値にドットが含まれている場合、これは2つのファイルタイプ名を区切ります。例:
/* vim: set syntax=c.doxygen : */
これは最初に "c" 構文を使用し、次に "doxygen" 構文を使用します。2つ目の構文は、追加としてロードできるように準備されている必要があることに注意してください。そうでない場合はスキップされます。複数のドットを含めることができます。現在のファイルの構文ハイライトをオフにするには、次のようにします。
set syntax=OFF
'filetype'オプションの現在の値に従って構文ハイライトをオンにするには、次のようにします。
set syntax=ON
'syntax'オプションを設定すると、実際にはSyntax自動コマンドイベントが、引数としてその値とともにトリガーされます。このオプションは、
'cpoptions'の's'または'S'フラグに関係なく、別のバッファにはコピーされません。英数字、'.'、'-'、および'_'のみを使用できます。
使用可能な値 (コンマ区切りのリスト): left これが含まれている場合、次のタブページではなく前のタブページに移動します。uselast これが含まれている場合、可能であれば以前に使用したタブページに移動します。このオプションは他のオプションよりも優先されます。
タブページのうち1つだけが現在のページであり、他のページは非表示であり、それらのウィンドウにジャンプすることはできないことに注意してください。
注: 'tabstop'を8以外の値に設定すると、ファイルが多くの場所で正しく表示されない可能性があります。値は0より大きく、10000未満である必要があります。
'tagbsearch'がオンの場合、バイナリ検索がタグファイルで最初に実行されます。特定の状況では、Vimは特定のファイルに対して代わりに線形検索を実行するか、すべてのファイルを線形検索で再試行します。
'tagbsearch'がオフの場合、線形検索のみが実行されます。
ファイルがソートされていないことを示す行をファイルの先頭でVimが見つけた場合、いずれにしても、1つのファイルに対して線形検索が実行されます。
!_TAG_FILE_SORTED 0 /some comment/
[ '0' の前後の空白は、単一の<Tab>
である必要があります ]
バイナリ検索が実行され、
'tags'にリストされているどのファイルにも一致するものが見つからず、大文字小文字が無視されるか、通常のタグ名の代わりにパターンが使用されている場合、線形検索で再試行されます。ソートされていないタグファイル内のタグ、および大文字小文字が異なる一致は、再試行でのみ見つかります。
タグファイルが大文字小文字を区別しないソートであることを示している場合、大文字小文字が無視されるときに2番目の線形検索を回避できます。このためには、"!_TAG_FILE_SORTED"行に'2'の値を使用します。タグファイルは、ほとんどのUnixで "sort" コマンドに -f スイッチを使用することで、大文字小文字を区別しないソートにできます。例: "sort -f -o tags tags" のコマンドのように。Universal ctagsおよびExuberant ctagsバージョン5.x以降 (少なくとも5.5) の場合は、--sort=foldcaseスイッチもこれに使用できます。大文字小文字を区別しないようにするには、大文字に変換する必要があることに注意してください。
'tagbsearch'がオフの場合、完全一致が存在する場合はタグ検索が遅くなりますが、完全一致が存在しない場合は高速になります。ソートされていないタグファイル内のタグは、
'tagbsearch'がオフの場合にのみ見つかる可能性があります。タグファイルがソートされていない場合、または間違った方法で (ASCIIバイト値でソートされていない) ソートされている場合、
'tagbsearch'はオフにするか、上記の行をタグファイルに含める必要があります。このオプションは、一致するすべてのタグを見つけるコマンド (例: コマンドライン補完と":help") には影響しません。
'tags' 'tag' E433 'tags' 'tag' 文字列(デフォルト "./tags;,tags")グローバルまたはバッファローカル
global-local タグコマンドのファイル名。スペースまたはカンマで区切ります。ファイル名にスペースまたはカンマを含めるには、バックスラッシュで前に付けてください(スペース/カンマとバックスラッシュの扱いについては、
option-backslash を参照)。ファイル名が "./" で始まる場合、'.' は現在のファイルのパスに置き換えられます。ただし、
'cpoptions' に 'd' フラグが含まれていない場合のみです。環境変数は
:set_env で展開されます。また、
tags-option も参照してください。"*"、"**"、その他のワイルドカードを使用して、ディレクトリツリー内のタグファイルを検索できます。
file-searching を参照してください。たとえば、"/lib/**/tags" は "/lib" の下にある "tags" という名前のすべてのファイルを見つけます。ファイル名自体にワイルドカードを含めることはできません。そのまま使用されます。たとえば、"/lib/**/tags?" は "tags?" という名前のファイルを見つけます。実際に使用されているファイル名のリストを取得するには、
tagfiles() 関数を使用できます。リストにファイル名を追加または削除する場合は、
:set+= および
:set-= を使用することをお勧めします。これにより、将来のバージョンで別のデフォルトが使用された場合に問題が発生するのを防ぐことができます。
'tagstack' 'tgst' 'notagstack' 'notgst' 'tagstack' 'tgst' 真偽値(デフォルト on)グローバル オンの場合、
tagstack は通常どおり使用されます。オフの場合、引数付きの ":tag" または ":tselect" コマンドは、タグを tagstack にプッシュしません。引数なしの続く ":tag"、":pop" コマンド、または tagstack を使用するその他のコマンドは、変更されていない tagstack を使用しますが、アクティブなエントリへのポインターは変更します。このオプションのリセットは、tagstack を変更すべきでないマッピングで ":tag" コマンドを使用する場合に役立ちます。
Nvim は、ホストターミナルが 24 ビットカラーをサポートしているかどうかを自動的に判断しようとし、サポートしている場合は(ユーザーが明示的に無効にしない限り)このオプションを有効にします。
BS バックスペース
HT TAB
FF 改ページ
ESC エスケープ
DEL DEL
C0 その他の制御文字。改行とキャリッジリターンを除く < ' '
C1 制御文字 0x80...0x9F
'termsync' 'notermsync' 'termsync' 真偽値(デフォルト on)グローバル ホストターミナルがサポートしている場合、再描画サイクル中に行われたすべての画面更新をバッファリングして、各画面がターミナルに一度に表示されるようにします。これにより、ターミナルが Nvim の再描画よりも速く更新される場合に、ティアリングやちらつきを防ぐことができます。
ファイル名にカンマを含めるには、バックスラッシュで前に付けてください。カンマ後のスペースは無視され、それ以外のスペースはファイル名に含まれます。バックスラッシュの使用については、
option-backslash を参照してください。リストにディレクトリを追加または削除する場合は、
:set+= および
:set-= を使用することをお勧めします。これにより、将来のバージョンで別のデフォルトが使用された場合に問題が発生するのを防ぐことができます。セキュリティ上の理由から、バッククォートはこのオプションでは使用できません。
'title' 'notitle' 'title' 真偽値(デフォルト off)グローバル オンの場合、ウィンドウのタイトルは、
'titlestring' の値(空でない場合)または次の値に設定されます。filename [+=-] (path) - Nvim 各項目の意味は次のとおりです。filename 編集中のファイルの名前 - ファイルが変更できないことを示します(
'ma' オフ)。+ ファイルが変更されたことを示します。= ファイルが読み取り専用であることを示します。=+ ファイルが読み取り専用で変更されていることを示します。(path) は、編集中のファイルのパスです。
'titlelen'
'titlelen' 数値(デフォルト 85)グローバル ウィンドウタイトルの長さに使用する
'columns' のパーセンテージを指定します。タイトルが長い場合は、パス名の末尾のみが表示されます。これを示すために、パス名の前に '<' 文字が使用されます。パーセンテージを使用すると、ウィンドウの幅に合わせて調整されます。ただし、実際に使用できる文字数は、使用されているフォントやタイトルバーのその他の要素にも依存するため、完全に機能するわけではありません。
'titlelen' がゼロの場合、フルパスが使用されます。それ以外の場合は、1〜30000 パーセントの値を使用できます。
'titlelen' は、
'titlestring' オプションにも使用されます。
このオプションに printf スタイルの '%' 項目が含まれている場合、
'statusline' に使用されるルールに従って展開されます。無効な '%' 形式が含まれている場合、値はそのまま使用され、値の設定時にエラーや警告は表示されません。このオプションは、
'modelineexpr' がオフの場合はモデル行で設定できません。
例
auto BufEnter * let &titlestring = hostname() .. "/" .. expand("%:p")
set title titlestring=%<%F%=%l/%L-%P titlelen=70
'titlelen' の値は、利用可能なスペースの中央または右側に項目を揃えるために使用されます。ファイル名を最初に表示したい人もいます。
set titlestring=%t%(\ %M%)%(\ (%{expand(\"%:~:.:h\")})%)%(\ %a%)
ファイル名を除いたファイルのパスを取得するために "%{ }" と式を使用していることに注意してください。 "%( %)" 構造は、必要な場合にのみ区切りスペースを追加するために使用されます。
注: 'titlestring' 内の特殊文字の使用は、表示が文字化けする可能性があります(例: CR または NL 文字が含まれている場合)。
たとえば、
<Esc>
( \x1b バイト) が受信され、
'ttimeout' が設定されている場合、Nvim は端末がキーコードシーケンスを完了するまで
'ttimeoutlen' ミリ秒待機します。タイムアウト前に何も入力がない場合、単一の
<Esc>
が想定されます。多くの TUI カーソルキーコードは
<Esc>
で始まります。
非常に遅いシステムでは、これが失敗し、カーソルキーが時々動作しない可能性があります。この問題を発見した場合は、":set ttimeoutlen=9999" と設定できます。Nvim は <Esc>
の後に次の文字が到着するのを待ちます。
'undodir' 'udir' E5003 'undodir' 'udir' string (デフォルト: "$XDG_STATE_HOME/nvim/undo//") グローバル カンマで区切られたアンドゥファイル用のディレクトリ名のリスト。形式の詳細については、
'backupdir' を参照してください。「.」はファイルのディレクトリを使用することを意味します。"file.txt" のアンドゥファイル名は ".file.txt.un~" です。他のディレクトリの場合、ファイル名は編集されたファイルのフルパスであり、パス区切り文字は "%" に置き換えられます。書き込み時: 存在する最初のディレクトリが使用されます。「.」は常に機能し、「.」の後のディレクトリは書き込みには使用されません。どのディレクトリも存在しない場合、Nvim はリストの最後のディレクトリを作成しようとします。読み取り時、すべてのアンドゥファイルを検索するためにすべてのエントリが試行されます。最初に存在するアンドゥファイルが使用されます。読み取ることができない場合はエラーが表示され、それ以上のエントリは使用されません。
undo-persistence を参照してください。セキュリティ上の理由から、このオプションは
modeline または
sandbox から設定することはできません。
'undolevels' 'ul' 'undolevels' 'ul' number (デフォルト: 1000) グローバルまたはバッファーローカル
global-local アンドゥできる変更の最大数。アンドゥ情報はメモリに保持されるため、数が多いほどより多くのメモリが使用されます。それにもかかわらず、単一の変更で既に大量のメモリを使用する可能性があります。Vi の互換性のために 0 に設定します: 1 レベルのアンドゥで、「u」はそれ自体をアンドゥします。
set ul=0
ただし、
'cpoptions' に 'u' フラグを含めることで Vi の互換性を取得することもでき、
CTRL-R
を使用してアンドゥを繰り返すこともできます。
undo-two-ways も参照してください。アンドゥをまったく行わない場合は -1 に設定します。現在のバッファーでのみこれを行うこともできます。
setlocal ul=-1
これは、単一の変更でメモリが不足した場合に役立ちます。
グローバル値を使用する場合は、ローカル値が -123456 に設定されます。
'undoreload' 'ur' 'undoreload' 'ur' number (デフォルト: 10000) グローバル リロード時にアンドゥのためにバッファー全体を保存します。これは、":e!" コマンド、および Vim の外部でバッファーが変更された場合にリロードする場合に適用されます。
FileChangedShell 保存は、このオプションが負の場合、または行数がこのオプションの値よりも小さい場合にのみ行われます。リロードのアンドゥを無効にするには、このオプションをゼロに設定します。
リロードのためにアンドゥを保存する場合、アンドゥファイルは読み取られません。
これにより、バッファー全体がメモリに保存されることに注意してください。メモリが不足する場合は、このオプションをより低い値に設定します。
'varsofttabstop' 'vsts' 'varsofttabstop' 'vsts' string (デフォルト: "") バッファーローカル 編集中に
<Tab>
が数えるスペースの数のリスト。たとえば、
<Tab>
の挿入や
<BS>
の使用などです。実際にはスペースと
<Tab>
の混合が使用されている間、可変幅の
<Tab>
が挿入されているように「感じ」られます。タブ幅はコンマで区切られ、最後の値は後続のすべてのタブに適用されます。
たとえば、ステートメントが 9 列目、コメントが 41 列目で始まるアセンブリ言語ファイルを編集する場合、以下を使用すると便利な場合があります。
set varsofttabstop=8,32,8
これにより、ソフトタブストップが 8 と 8 + 32 スペースで設定され、その後すべての列でさらに 8 スペースが設定されます。
'vartabstop' 'vts' 'vartabstop' 'vts' string (デフォルト: "") バッファーローカル ファイル内の
<Tab>
が数えるスペースの数のリスト。コンマで区切られています。各値は 1 つのタブに対応し、最後の値は後続のすべてのタブに適用されます。例:
set vartabstop=4,20,10,8
これにより、最初のタブは 4 スペース幅、2 番目のタブは 20 スペース幅、3 番目のタブは 10 スペース幅になり、後続のすべてのタブは 8 スペースになります。
Lua スクリプトでのオプション、マッピングなどへの代入のトレースはレベル 1 で有効になります。パフォーマンスのために、
'verbose' が 0 の場合、Lua スクリプトはトレースされません。
指定されたレベル以上の場合、Nvim は次のメッセージを生成します。
レベル メッセージ
---------------------------------------------------------------------- 1 Lua トレースを有効にします (上記参照)。メッセージは生成しません。2 ファイルが ":source" された場合、または
shada ファイルが読み書きされた場合。3 UI 情報、端末機能。4 シェルコマンド。5 検索されたすべてのタグファイルとインクルードファイル。8 自動コマンドのグループが実行されるファイル。9 実行された自動コマンド。11 パス内のアイテムの検索。12 Vimscript 関数呼び出し。13 例外がスロー、キャッチ、完了、または破棄された場合。14 ":finally" 句で保留中のもの。15 スクリプトからの Ex コマンド (200 文字で切り捨て)。16 Ex コマンド。
'viewoptions' 'vop' 'viewoptions' 'vop' string (デフォルト: "folds,cursor,curdir") グローバル
:mkview コマンドの効果を変更します。これは、コンマで区切られた単語のリストです。各単語は、何かを保存および復元することを有効にします。
単語 保存と復元
カーソル ファイル内およびウィンドウ内のカーソル位置 カレントディレクトリ
:lcd で設定されている場合、ローカルカレントディレクトリ 手動で作成された折りたたみ、開閉された折りたたみ、およびローカル折りたたみオプション オプション ウィンドウまたはバッファーにローカルなオプションとマッピング (ローカルオプションのグローバル値ではない) localoptions "options" と同じ スラッシュ
非推奨 常に有効。ファイル名に "/" を使用します。unix
非推奨 常に有効。行末に "\n" を使用します。
'virtualedit' 've' 'virtualedit' 've' 文字列 (デフォルト "") グローバルまたはウィンドウローカル
グローバル-ローカル 次の単語をコンマで区切ったリスト: block ビジュアルブロックモードでの仮想編集を許可します。 insert インサートモードでの仮想編集を許可します。 all 全てのモードでの仮想編集を許可します。 onemore カーソルを行末の直後まで移動することを許可します。 none ローカル値として使用した場合、グローバル値が設定されていても仮想編集を許可しません。グローバル値として使用した場合、"none" は "" と同じです。 NONE "none" の別のスペル。
仮想編集とは、実際には文字が存在しない場所にカーソルを配置できることを意味します。これは、タブの中間や行末を超える場所にカーソルを置くことができるということです。ビジュアルモードで長方形を選択したり、表を編集したりするのに便利です。"onemore" は同じではなく、カーソルを行末の最後の文字の直後に移動させるだけです。これにより、いくつかのコマンドの一貫性が向上します。以前は、行が空の場合、カーソルは常にその行の末尾を超えていました。しかし、これは Vi との互換性が低いものでした。また、いくつかのプラグインや Vim スクリプトが壊れる可能性もあります。たとえば、
l はカーソルを最後の文字の後に移動させることができます。注意して使用してください!
$
コマンドを使用すると、カーソルは行末の文字に移動し、その先には移動しません。これにより、カーソルが左に移動することがあります!
g$
コマンドは、画面行の末尾に移動します。"all" を "onemore" と組み合わせることは意味がありませんが、警告は表示されません。他の単語と組み合わせた場合、"none" は無視されます。
'whichwrap' 'ww' 'whichwrap' 'ww' 文字列 (デフォルト "b,s") グローバル カーソルが各行の最初/最後の文字にあるときに、カーソルを左/右に移動させる指定されたキーが前/次の行に移動できるようにします。これらのキーを有効にするには、文字を連結してください
文字 キー モード
b
<BS>
ノーマルおよびビジュアル s
<Space>
ノーマルおよびビジュアル h "h" ノーマルおよびビジュアル (推奨されません) l "l" ノーマルおよびビジュアル (推奨されません) <
<Left>
ノーマルおよびビジュアル >
<Right>
ノーマルおよびビジュアル ~ "~" ノーマル [
<Left>
インサートおよび置換 ]
<Right>
インサートおよび置換 たとえば
set ww=<,>,[,]
カーソルキーが使用された場合にのみラップを許可します。移動キーが削除または変更演算子と組み合わせて使用される場合、<EOL>
も文字としてカウントされます。これにより、カーソルが行末を越える場合、"3h" は "3dh" と異なります。これは、"x" および "X" も "dl" および "dh" と同じ動作をするため、当てはまります。これを使用する場合は、":map <BS>
X" マッピングを使用して、バックスペースでカーソルの前にある文字を削除するようにすることもできます。'l' が含まれていて、(空行ではない) 行末の演算子の後に使用した場合、次の行に移動しません。これにより、"dl"、"cl"、"yl" などは正常に動作します。
'wildchar' 'wc' 'wildchar' 'wc' 数値 (デフォルト
<Tab>
) グローバル コマンドラインで、
'wildmode' で指定されたワイルドカード展開を開始するためにタイプする必要がある文字。詳細はこちら:
cmdline-completion。マクロ内で使用されている場合、この文字は認識されません。
'wildcharm' を参照してください。
CTRL-C
、
<CR>
、Enter など、一部のキーは機能しません。
<Esc>
は使用できますが、連続して 2 回押すと、安全策としてコマンドラインが終了します。
'wc' は数値オプションですが、数値、単一の文字、
キー表記 (例:
<Up>
、
<C-F>
)、またはキャレットで始まる文字 (例:
^F
は
CTRL-F
) として指定できます。
:set wc=27
:set wc=X
:set wc=^I
set wc=<Tab>
次に、:ss と入力した後、CTRL-P
および CTRL-N
を使用できます。
リストからパターンを追加または削除する場合は、
:set+= および
:set-= の使用をお勧めします。これにより、将来のバージョンで別のデフォルトが使用された場合に問題が発生するのを防ぐことができます。
メニューがアクティブな間、これらのキーには特別な意味があります: CTRL-P
- 前のエントリに移動 CTRL-N
- 次のエントリに移動 <Left>
<Right>
- 前/次の一致を選択 (CTRL-P
/CTRL-N と同様) <PageUp>
- いくつかのエントリ前に一致を選択 <PageDown>
- いくつかのエントリ先に一致を選択 <Up>
- ファイル名/メニュー名補完の場合: 親ディレクトリまたは親メニューに移動。 <Down>
- ファイル名/メニュー名補完の場合: サブディレクトリまたはサブメニューに移動。 <CR>
- メニュー補完の場合、カーソルがドットの直後にある場合: サブメニューに移動。 CTRL-E
- 補完を終了し、一致を選択する前の状態に戻ります。 CTRL-Y
- 現在選択されている一致を受け入れて、補完を停止します。
<Left>
と
<Right>
を別のマッチを選択するのではなく、カーソルを移動させる場合は、これを使用してください
cnoremap <Left> <Space><BS><Left>
cnoremap <Right> <Space><BS><Right>
各部分は、コロンで区切られたリストで構成され、次の可能な値が含まれます: "" 最初の一致のみを完了します。 "full" 次の完全一致を完了します。最後の一致の後、元の文字列が使用され、その後最初の一致が再度使用されます。有効になっている場合は、
'wildmenu' も開始します。 "longest" 最も長い共通文字列まで完了します。これにより長い文字列にならない場合は、次の部分を使用します。 "list" 複数の一致がある場合は、すべての一致を一覧表示します。 "lastused" バッファ名を補完していて、複数の一致がある場合は、最後に使用された時間でバッファを並べ替えます (現在のバッファを除く)。一致が 1 つしかない場合は、すべての場合に完全に完了します。
コロンで区切られた便利な値の例: "longest:full" "longest" と同様ですが、有効になっている場合は
'wildmenu' も開始します。次の完全一致を完了しません。 "list:full" 複数の一致がある場合は、すべての一致を一覧表示し、最初の一致を完了します。 "list:longest" 複数の一致がある場合は、すべての一致を一覧表示し、最も長い共通文字列まで完了します。 "list:lastused" 複数のバッファが一致する場合は、すべての一致を一覧表示し、最後に使用した時間 (現在のバッファを除く) でバッファをソートします。
最初の一致、次の完全一致などを完了します (デフォルト)
set wildmode=longest,full
最も長い共通文字列を完了し、次に各完全一致を完了します
set wildmode=list:full
すべての一致を一覧表示し、各完全一致を完了します
set wildmode=list,full
まず、完了せずにすべての一致をリスト表示し、次に完全一致をリスト表示します。
set wildmode=longest,list
'wildoptions' 'wop' 'wildoptions' 'wop' string (デフォルト "pum,tagfile") global
cmdline-completion の実行方法を変更する単語のリスト。次の値がサポートされています: fuzzy
ファジーマッチング を使用して、補完の一致を見つけます。この値が指定されている場合、補完にワイルドカード展開は使用されません。一致はアルファベット順にソートされるのではなく、「最良の一致」でソートされます。これにより、ワイルドカード展開よりも多くの一致が見つかります。現在、ファイル名とディレクトリ名に基づくファジーマッチングによる補完はサポートされておらず、代わりにワイルドカード展開が使用されます。pum
ins-completion-menu と同じスタイルでポップアップメニューを使用して補完の一致を表示します。tagfile 一致するタグをリスト表示するために
CTRL-D
を使用する場合、タグの種類とタグのファイルがリスト表示されます。1 行に表示される一致は 1 つだけです。よく使用されるタグの種類は次のとおりです。d #define f function
'winaltkeys' 'wak' 'winaltkeys' 'wak' string (デフォルト "menu") global Win32 でのみ使用されます。一部の GUI バージョンでは、メニュー内で下線付きで表示される文字と ALT キーを組み合わせて使用することで、メニューエントリにアクセスできます。これは、マッピングと特殊文字の入力に ALT キーを使用することと競合します。このオプションは、何を行うかを指示します: no メニューに ALT キーを使用しません。ALT キーの組み合わせはマッピングできますが、自動処理はありません。yes ALT キー処理はウィンドウシステムによって行われます。ALT キーの組み合わせはマッピングできません。menu メニューショートカットキーである文字と組み合わせて ALT を使用すると、ウィンドウシステムによって処理されます。他のキーはマッピングできます。
'guioptions' から 'm' を除外してメニューが無効になっている場合、ALT キーはメニューには使用されません。このオプションは、Win32 での
<F10>
には使用されません。
フローティングウィンドウは、
'winbar' のグローバル値を使用しません。フローティングウィンドウにウィンドウバーを表示するには、
'winbar' のウィンドウローカル値を設定する必要があります。
'winheight' 'wh' E591 'winheight' 'wh' number (デフォルト 1) global 現在のウィンドウの最小行数。これは厳密な最小値ではなく、十分なスペースがない場合は、Vim はより少ない行数を使用します。フォーカスがより小さなウィンドウに移ると、他のウィンドウの高さを犠牲にして、そのサイズが拡大されます。通常の編集の場合は、
'winheight' を小さい数値に設定します。現在のウィンドウを画面のほとんどを埋めるようにするには、999 に設定します。他のウィンドウは
'winminheight' の高さのみになります。これには、":all" が 2 つのウィンドウのみを作成するという欠点があります。"vim -o 1 2 3 4" で 2 つのウィンドウのみが作成されないようにするには、
VimEnter イベントを使用して、起動完了後にオプションを設定します。
au VimEnter * set winheight=999
最小値は 1 です。現在のウィンドウの高さを変更するコマンドの 1 つの後に、高さは調整されません。
'winheight' は、現在のウィンドウに適用されます。他のウィンドウの最小の高さを設定するには、
'winminheight' を使用します。
垂直セパレータのハイライトは、セパレータの左側のウィンドウによって決定されます。タブページの
'tabline' ハイライトは、タブページの最後にフォーカスされたウィンドウによって決定されます。ポップアップメニューのハイライトは、現在のウィンドウによって決定されます。メッセージ領域のハイライトはオーバーライドできません。
例: 現在のウィンドウでないウィンドウに別の色を表示します
set winhighlight=Normal:MyNormal,NormalNC:MyNormalNC
'winminheight' 'wmh' 'winminheight' 'wmh' number (デフォルト 1) global 現在のウィンドウではない場合のウィンドウの最小高さ。これは厳密な最小値であり、ウィンドウがこれより小さくなることはありません。ゼロに設定すると、ウィンドウは必要に応じてゼロ行 (つまり、ステータスバーのみ) に「潰される」可能性があります。アクティブになったときには、少なくとも 1 行に戻ります (カーソルを移動する必要があるため)。現在のウィンドウの最小高さを設定するには、
'winheight' を使用します。このオプションは、ウィンドウを小さくするときにのみチェックされます。大きな数値を使用しないでください。これにより、複数のウィンドウを開くとエラーが発生します。0 ~ 3 の値が妥当です。
'winminwidth' 'wmw' 'winminwidth' 'wmw' number (デフォルト 1) global 現在のウィンドウではない場合のウィンドウの最小幅。これは厳密な最小値であり、ウィンドウがこれより小さくなることはありません。ゼロに設定すると、ウィンドウは必要に応じてゼロ列 (つまり、垂直セパレータのみ) に「潰される」可能性があります。アクティブになったときには、少なくとも 1 行に戻ります (カーソルを移動する必要があるため)。現在のウィンドウの最小幅を設定するには、
'winwidth' を使用します。このオプションは、ウィンドウを小さくするときにのみチェックされます。大きな数値を使用しないでください。これにより、複数のウィンドウを開くとエラーが発生します。0 ~ 12 の値が妥当です。
'winwidth' 'wiw' E592 'winwidth' 'wiw' number (デフォルト 20) global 現在のウィンドウの最小列数。これは厳密な最小値ではなく、十分なスペースがない場合は、Vim はより少ない列数を使用します。現在のウィンドウがより小さい場合、他のウィンドウの幅を犠牲にして、そのサイズが拡大されます。現在のウィンドウを常に画面いっぱいにするには、999 に設定します。通常の編集の場合は、小さい数値に設定します。現在のウィンドウの幅を変更するコマンドの 1 つの後に、幅は調整されません。
'winwidth' は、現在のウィンドウに適用されます。他のウィンドウの最小幅を設定するには、
'winminwidth' を使用します。
'wrap' 'nowrap' 'wrap' boolean (デフォルト on) ウィンドウローカル このオプションは、テキストの表示方法を変更します。バッファ内のテキストは変更されません。その場合は
'textwidth' を参照してください。オンの場合、ウィンドウの幅よりも長い行は折り返され、次の行に表示が続きます。オフの場合、行は折り返されず、長い行の一部のみが表示されます。カーソルが表示されていない部分に移動すると、画面が水平方向にスクロールします。必要に応じて、行は単語の途中で分割されます。単語の境界で分割するには、
'linebreak' を参照してください。水平方向のスクロールを少し便利にするには、これを試してください
set sidescroll=5
set listchars+=precedes:<,extends:>
write nowrite write ブール値 (デフォルト: オン) グローバル ファイルの書き込みを許可します。設定されていない場合、ファイルの書き込みは許可されません。テキストの変更は許可されるビュー専用モードで使用できます。
-mまたは
-Mコマンドライン引数でリセットできます。テキストのフィルタリングは、一時ファイルの書き込みが必要な場合でも可能です。
writebackup wb nowritebackup nowb writebackup wb ブール値 (デフォルト: オン) グローバル ファイルを上書きする前にバックアップを作成します。
backupオプションもオンでない限り、ファイルが正常に書き込まれた後にバックアップは削除されます。
警告: このオプションをオフにすると、Vimがバッファーを正しく書き込めず、何らかの理由でVimが終了した場合、元のファイルと書き込み中の内容の両方が失われます。ファイルシステムがほぼいっぱいになり、書き込みに失敗する場合のみ、このオプションをリセットしてください(書き込みが成功するまでVimを終了しないようにしてください)。別の説明については、
backup-tableを参照してください。
backupskipパターンが一致する場合は、バックアップは作成されません。
backupcopyによっては、バックアップは新しいファイルになるか、元のファイルが名前変更されます(そして新しいファイルが書き込まれます)。