Sign
Nvim の :help
ページは、生成されており、ソースを tree-sitter-vimdoc パーサーで解析しています。
および Bram Moolenaar
Sign サポート機能
デバッガーや他の IDE ツールがエディターを操作する場合、ユーザーにファイルに関する有益な情報を迅速に伝えるための特定のハイライトを提供する必要があります。その一例として、左側の列にブレークポイントを示すアイコンを表示するデバッガーが挙げられます。別の例としては、プログラムカウンター (PC) を表す矢印が挙げられます。sign 機能を使用すると、ウィンドウの左側に sign (アイコン) を配置し、その行に適用されるハイライトを定義できます。sign を画像として表示することは、おそらく gvim でのみ実現可能です (Sun Microsystem の dtterm がこれをサポートしているのは知っている唯一のターミナルエミュレーターですが)。テキスト sign とハイライトは、どのカラーターミナルエミュレーターでも実現可能です。
Sign とハイライトはデバッガーだけのものではありません。ビルドエラーをマークしたり、バージョン管理の状態を表示したりするために sign を使用するプラグインがあります。
sign を使用するには、次の 2 つのステップがあります。
1. sign を定義します。これにより、画像、テキスト、ハイライトが指定されます。たとえば、ストップ標識の画像とテキスト「!!」で「break」sign を定義できます。
2. sign を配置します。これにより、sign が表示されるファイルと行番号が指定されます。定義された sign は、異なる行やファイルに複数回配置できます。
sign-column ファイルに対して sign が定義されている場合、Vim はそれらを表示するために、自動的に 2 文字の列を追加します。最後の sign が削除されると、列は再び消えます。この動作は、
'signcolumn' オプションで変更できます。
列の色は、SignColumn ハイライトグループ
hl-SignColumn で設定されます。色を設定する例:
:highlight SignColumn guibg=darkgrey
sign-group 配置された各 sign は、グローバルグループまたは名前付きグループのいずれかに割り当てることができます。sign を配置するときに、グループ名が指定されていない場合、または空の文字列が使用された場合、sign はグローバルグループに配置されます。それ以外の場合、sign は名前付きグループに配置されます。sign 識別子は、グループ内で一意です。sign グループを使用すると、Vim プラグインは sign を使用する他のプラグインに干渉することなく、一意の sign を使用できます。
sign-priority 配置された各 sign には、sign グループとは独立して優先度値が割り当てられます。sign のデフォルトの優先度は 10 です。この値は、定義時に異なる値を指定することで、異なる sign に対して変更できます。アイコンまたはテキストを持つ複数の sign が同じ行に配置されている場合、sign は
'signcolumn' で設定された最大幅まで、優先度の高い順に左から右に並べられます。収まらない優先度の低い sign は非表示になります。ハイライト属性を持つ最も優先度の高い sign は常に表示されます。
sign が配置されている行が削除されると、sign も一緒に削除されます。
現在のファイルの 23 行目に、テキスト「>>」で表示される sign「piet」を配置する例を次に示します。
:sign define piet text=>> texthl=Search
:exe ":sign place 2 line=23 name=piet file=" .. expand("%:p")
そして、それを再び削除するコマンドは次のとおりです。
:sign unplace 2
「:sign」コマンドの後には、別のコマンドやコメントを続けることはできません。それが必要な場合は、
:execute コマンドを使用してください。
:sign define {name}
{argument}
... 新しい sign を定義するか、既存の sign の属性を設定します。{name}
には、数字 (すべて数字) または数字以外で始まる名前を指定できます。先頭のゼロは無視されるため、「0012」、「012」、「12」は同じ名前と見なされます。約 120 の異なる sign を定義できます。
許可される引数
icon={bitmap} ビットマップが見つかるファイル名を定義します。フルパスである必要があります。ビットマップは 2 文字分の場所に収まる必要があります。これはチェックされません。ビットマップが大きすぎると、再描画の問題が発生します。
ツールキットのサポート
Win32 .bmp, .ico, .cur
linehl={group} sign が配置されている行全体に使用されるハイライトグループ。背景色を定義するのが最も役立ちます。
text={text}
E239アイコンがない場合、または GUI が使用されていない場合に表示されるテキストを定義します。印刷可能な文字のみが許可され、1 つまたは 2 つの表示セルを占有する必要があります。
texthl={group} テキスト項目に使用されるハイライトグループ。
culhl={group} カーソルが sign と同じ行にあり、
'cursorline' が有効になっている場合に、テキスト項目に使用されるハイライトグループ。
例
:sign define MySign text=>> texthl=Search linehl=DiffText
:sign undefine {name}
以前に定義された sign を削除します。この {name}
を持つ sign がまだ配置されている場合、問題が発生します。
:sign list すべての定義済み sign とその属性を一覧表示します。
:sign list {name}
1 つの定義済み sign とその属性を一覧表示します。
:sign place
{id}
line={lnum} name={name} file={fname}
{fname}
ファイルの
{lnum}
行に、
{name}
として定義された sign を配置します。
:sign-fnameファイル
{fname}
はすでにバッファーにロードされている必要があります。正確なファイル名を使用する必要があり、ワイルドカード、$ENV、および ~ は展開されず、空白はエスケープされません。末尾の空白は無視されます。
sign は {id}
の下に記憶され、これはさらに操作するために使用できます。{id}
は数値である必要があります。同じ {id}
を複数回配置すると、sign が移動します。
次のオプションの sign 属性は、「file=」の前に指定できます。group={group} sign を sign グループ {group}
に配置します。priority={prio} sign に優先度 {prio}
を割り当てます
デフォルトでは、sign はグローバル sign グループに配置されます。
デフォルトでは、sign にはデフォルトの優先度 10 が割り当てられます (sign の定義で特に指定されていない場合)。異なる優先度値を割り当てるには、「priority={prio}」を使用して値を指定します。優先度は、複数の sign が同じ行に配置されている場合に表示される sign を決定するために使用されます。
例
:sign place 5 line=3 name=sign1 file=a.py
:sign place 6 group=g2 line=2 name=sign2 file=x.py
:sign place 9 group=g2 priority=50 line=5
\ name=sign1 file=a.py
:sign place {id}
line={lnum} name={name} [buffer={nr}] 同様ですが、バッファー {nr}
を使用します。buffer 引数が指定されていない場合は、現在のバッファーに sign を配置します。
例
:sign place 10 line=99 name=sign3
:sign place 10 line=99 name=sign3 buffer=3
E885 :sign place
{id}
name={name} file={fname} ファイル
{fname}
内の配置済み sign
{id}
が、定義済みの sign
{name}
を使用するように変更します。上記の
{fname}
:sign-fname に関する注意を参照してください。これは、(たとえば、デバッガーがブレークポイントで停止した場合に) 移動せずに表示される sign を変更するために使用できます。
オプションの "group={group}" 属性は、"file=" の前に使用して、特定のグループ内の sign を選択できます。オプションの "priority={prio}" 属性は、既存の sign の優先度を変更するために使用できます。
例
:sign place 23 name=sign1 file=/path/to/edit.py
:sign place {id}
name={name} [buffer={nr}] 同様ですが、バッファー {nr}
を使用します。buffer 引数が指定されていない場合は、現在のバッファーを使用します。
例
:sign place 23 name=sign1
:sign place 23 name=sign1 buffer=7
:sign unplace
{id}
file={fname} 以前に配置された sign
{id}
をファイル
{fname}
から削除します。上記の
{fname}
:sign-fname に関する注意を参照してください。
:sign unplace {id}
group={group} file={fname} 同様ですが、sign グループ {group}
内の sign {id}
を削除します。
:sign unplace {id}
group=* file={fname} 同様ですが、すべての sign グループから sign {id}
を削除します。
:sign unplace * file={fname} ファイル {fname}
内のすべての配置済み sign を削除します。
:sign unplace * group={group} file={fname} ファイル {fname}
からグループ {group}
内のすべての配置済み sign を削除します。
:sign unplace * group=* file={fname} ファイル {fname}
からすべてのグループ内のすべての配置済み sign を削除します。
:sign unplace {id}
buffer={nr} 以前に配置された sign {id}
をバッファー {nr}
から削除します。
:sign unplace {id}
group={group} buffer={nr} バッファー {nr}
からグループ {group}
内の以前に配置された sign {id}
を削除します。
:sign unplace {id}
group=* buffer={nr} バッファー {nr}
からすべてのグループ内の以前に配置された sign {id}
を削除します。
:sign unplace * buffer={nr} バッファー {nr}
内のすべての配置済み sign を削除します。
:sign unplace * group={group} buffer={nr} バッファー {nr}
からグループ {group}
内のすべての配置済み sign を削除します。
:sign unplace * group=* buffer={nr} バッファ{nr}
から、全てのグループに配置された全てのサインを削除します。
:sign unplace {id}
以前に配置されたサイン{id}
を、それが表示されている全てのファイルから削除します。
:sign unplace {id}
group={group} 以前に配置されたサイン{id}
を、グループ{group}
において、それが表示されている全てのファイルから削除します。
:sign unplace {id}
group=* 以前に配置されたサイン{id}
を、全てのグループにおいて、それが表示されている全てのファイルから削除します。
:sign unplace * グローバルグループに配置された全てのサインを、全てのファイルから削除します。
:sign unplace * group={group} グループ{group}
に配置された全てのサインを、全てのファイルから削除します。
:sign unplace * group=* 全てのグループに配置された全てのサインを、全てのファイルから削除します。
:sign unplace カーソル位置にある配置されたサインを削除します。複数のサインが同じ行に配置されている場合、一つだけが削除されます。
:sign unplace group={group} カーソル位置にあるグループ{group}
内の配置されたサインを削除します。
:sign unplace group=* カーソル位置にある全てのグループの配置されたサインを削除します。
:sign place file={fname} ファイル
{fname}
に配置されたサインをリスト表示します。
{fname}
に関する上記の説明(
:sign-fname)を参照してください。
:sign place group={group} file={fname} グループ{group}
にあり、ファイル{fname}
に配置されたサインをリスト表示します。
:sign place group=* file={fname} 全てのグループにあり、ファイル{fname}
に配置されたサインをリスト表示します。
:sign place buffer={nr} バッファ{nr}
に配置されたサインをリスト表示します。
:sign place group={group} buffer={nr} グループ{group}
にあり、バッファ{nr}
に配置されたサインをリスト表示します。
:sign place group=* buffer={nr} 全てのグループにあり、バッファ{nr}
に配置されたサインをリスト表示します。
:sign place 全てのファイルにおけるグローバルグループに配置されたサインをリスト表示します。
:sign place group={group} 全てのファイルにおけるサイングループ{group}
の配置されたサインをリスト表示します。
:sign place group=* 全てのファイルにおける全てのサイングループの配置されたサインをリスト表示します。
:sign jump
{id}
file={fname} ファイル
{fname}
を開くか、
{fname}
を含むウィンドウへジャンプし、カーソルをサイン
{id}
の位置に移動します。
{fname}
に関する上記の説明(
:sign-fname)を参照してください。ファイルがウィンドウに表示されておらず、現在のファイルを
破棄できない場合、これは失敗します。
:sign jump {id}
group={group} file={fname} 同様ですが、グループ{group}
内のサインにジャンプします。
:sign jump
{id}
[buffer={nr}]
E934同様ですが、バッファ
{nr}
を使用します。バッファ
{nr}
に名前がない場合、これは失敗します。バッファ引数が与えられない場合は、現在のバッファを使用します。
:sign jump {id}
group={group} [buffer={nr}] 同様ですが、グループ{group}
内のサインにジャンプします。