vim-jp / vimdoc-ja / sign

sign - Vim日本語ドキュメント

メインヘルプファイルに戻る English | 日本語 | 編集
sign.txt      For Vim バージョン 8.1.  Last change: 2019 Jan 17


                VIMリファレンスマニュアル    by Gordon Prieur
                                             and Bram Moolenaar


目印機能                                        sign-support

1. 機能紹介                             sign-intro
2. コマンド                             sign-commands

{Vi にはこれらの機能はない}
{+signs 機能付きでコンパイルした場合にのみ利用可能}

==============================================================================
1. 機能紹介                                     sign-intro signs

デバッガやその他のIDE{訳注: 統合開発環境}ツールはエディタをコントロールする。
そのエディタはユーザーにファイルについての役立つ情報を素早く提供するために特別
なハイライトを表示できる必要がある。一例としては左のカラムにブレークポイントを
示すアイコンを持つデバッガを挙げることができる。別の例としてはプログラムカウン
タ(PC)を示す矢印が挙げられる。この目印機能により、ウィンドウの左端に目印やアイ
コン画像を置いたり、ある行に適用される強調を定義することができるようになる。画
像による目印はgvimでだけ利用で可能である(しかしSun Microsystemsのdttermはそれ
をサポートしている。これは著者が知り得る限りで唯一の端末エミュレータである)。
テキストによる目印と色による強調表示は、あらゆるカラーの端末エミュレータで利用
できる。

目印と強調はデバッガにとってだけ便利なわけではない。SunのVisual WorkShopはビル
ドエラーとSourceBrowserの検索一致箇所を示すのに目印と強調を使用する。加えて、
デバッガは8個から10個の異なる目印と強調色をサポートする。netbeans を参照。

目印を使うには2つの段階がある:

1. 目印を定義する。画像とテキストと強調色を指定する。例えば "break" の目印とし
   て道路の停止の画像を使用し、テキストとして "!!" を使用して定義することがで
   きる。

2. 目印を設置する。目印を設置したいファイルと行番号を指定する。定義された目印
   は異なるファイルと異なる位置に複数箇所に置くことができる。

                                                        sign-column
ファイルに対して目印が定義されると、Vimは自動的に表示画面に2文字分のカラムを付
け加える。全てのサインが取り除かれるとそのカラムは再度消滅する。この動作は
'signcolumn' オプションにより変更可能できる。そのカラムは SignColumnの色を使
hl-SignColumnが設定される。色を設定するには次のようにする:

        :highlight SignColumn guibg=darkgrey

                                                        sign-identifier
設置された各目印は、目印IDと呼ばれる番号によって識別される。この識別子は、目印
にジャンプするため、または目印を解除するために使用される。この識別子は、
:sign-place コマンドまたは sign_place() 関数を使用して目印を設置するときに
割り当てられる。各目印IDは固有の番号でなければならない。複数の設置された目印が
同じ識別子を使用する場合、目印へのジャンプまたは目印の解除は予測不可能になる。
重複する識別子を避けるために、目印グループを使うことができる。sign_place()
関数は、次に使用可能な識別子を割り当てるために、目印IDを 0で呼び出すことができ
る。

                                                        sign-group
設置された各目印は、グローバルグループまたは名前付きグループのどちらにも割り当
てることができる。目印を設置するときに、グループ名が指定されていない場合、また
は空の文字列が使用されている場合は、目印はグローバルグループに設置される。それ
以外の場合は名前付きグループに設置される。目印IDはグループ内で一意である。グ
ループを使うと、Vimプラグインは他のプラグインを妨害することなく独自の目印を使
うことができる。

                                                        sign-priority
設置された各目印には、優先順位値が割り当てられる。同じ行に複数の目印が設置され
ている場合、最も優先順位の高い目印の属性が目印のグループとは独立して使用され
る。デフォルトの優先順位は10である。優先順位は、目印の設置時に割り当てられる。

目印が置かれている行が削除されると、その目印は次の行(または次の行がない場合は
バッファの最後の行)に移動される。削除が元に戻されても、目印は戻らない。

==============================================================================
2. コマンド                                     sign-commands :sig :sign

次の例ではカレントファイルの23行目に "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 E255 E160 E612

同等のVim script関数については sign_define() を参照。

:sign define {name} {argument}...
                新しい目印を定義するか既にある目印に属性を設定する。{name}は番
                号(全て数字)か非数字で始まる名前である。先行するゼロは無視され
                るので、"0012" と "012" と "12" は同じ名前として解釈される。
                約120の異なる目印を定義することができる。

                利用可能な引数:

        icon={bitmap}
                目印に使用する画像ファイルを定義する。フルパス指定したほうが良
                い。画像は2文字の幅に納まるものでなければならない。これは
                チェックされない。大きすぎる画像を使用すると再描画の際に問題が
                生じることがある。GTK2では画像がちょうど納まるように調整され
                る。
                {訳注: Windowsでは自動的に調整される}
                        toolkit         サポートフォーマット
                        GTK 1           pixmap (.xpm)
                        GTK 2           many
                        Motif           pixmap (.xpm)
                        Win32           .bmp, .ico, .cur
                                        pixmap (.xpm) +xpm_w32

        linehl={group}
                目印が設置された行全体を強調表示するのに使われるハイライトグ
                ループを定義する。背景色を定義するのに良く利用される。

        text={text}                                             E239
                アイコンが無いかGUIではない時に表示されるテキストを定義する。
                表示可能な文字のみ指定できる。これは表示幅で1文字か2文字分の文
                字を指定できる。
                {訳注: アルファベットなら1or2文字。漢字なら1文字}

        texthl={group}
                テキスト部分に使用されるハイライトグループ。


(定義した)目印を削除する                                :sign-undefine E155

同等のVim script関数については sign_undefine() を参照。

:sign undefine {name}
                既に定義された目印を削除する。{name}という名前の目印がまだ設置
                されたままの場合はトラブルを引き起こす。



(定義した)目印を一覧表示する                            :sign-list E156

同等のVim script関数については sign_getdefined() を参照。

:sign list      全部の定義済み目印とその属性を一覧表示する。

:sign list {name}
                {name}という名で定義された目印とその属性を表示する。


目印を設置する                                          :sign-place E158

同等のVim script関数については sign_place() を参照。

:sign place {id} line={lnum} name={name} file={fname}
                {name}として定義された目印をファイル{fname}{lnum}行目に設置
                する。
                                                        :sign-fname
                ファイル名{fname}は既に読込済みのバッファでなければなら
                ない。正確なファイル名でなければならず、ワイルドカードや環境変
                数そして "~" は展開されない。空白はエスケープされない。末尾の
                空白は無視される。

                目印は{id}という識別子で記憶され、後の操作に使用される。{id}
                番号でなければならない。
                ユーザーは自分で、1つの{id}が各々のファイルに1つしか無いように
                気をつけなければならない(同じ{id}を複数回設置したときには解除
                も同じ回数だけ行う必要がある。同じ{id}を使うことで目印の位置を
                変更しようという試みはうまく行かない)。

                次の任意の目印属性は、"file=" の前に指定できる:
                        group={group}   目印を目印グループ{group}に設置する
                        priority={prio} 目印に優先順位{prio}を割り当てる

                デフォルトでは、目印はグローバル目印グループに設置される。

                デフォルトでは、目印にデフォルトの優先順位10が割り当てられてい
                る。別の優先順位値を割り当てるには、"priority={prio}" を使用し
                て値を指定する。優先順位は、複数の目印が同じ行に設置されている
                ときに使用されるハイライトグループを決定するために使用される。

                例:
                        :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}]
                上に同じ。バッファ番号を使用していることが異なる。buffer引数が
                与えられていない場合は、現在のバッファに目印を設置する。

                                                        E885
:sign place {id} name={name} file={fname}
                ファイル{fname}{id}で設置された目印を、{name}で定義されてい
                る目印に変更する。{fname}については上述の:sign-fnameを参照す
                ること。
                これは既に設置された目印を動かすことなく変更するのに使われる。
                (例: デバッガがブレークポイントで停止した時)

                任意の "group={group}" 属性を "file="の前に使用して、特定のグ
                ループの目印を選択することができる。

:sign place {id} name={name} buffer={nr}
                上に同じ。バッファ番号を使用していることが異なる。buffer引数が
                与えられていない場合は、現在のバッファを使用する。


(設置した)目印を解除する                                :sign-unplace E159

同等のVim script関数については sign_unplace() を参照。

:sign unplace {id} file={fname}
                ファイル{fname}{id}で設置された目印を解除する。
                {fname}については上述の:sign-fnameを参照すること。

:sign unplace {id} group={group} file={fname}
                上に同じだが、目印グループ{group}の目印ID{id}を解除する。

:sign unplace {id} group=* file={fname}
                上に同じだが、全ての目印グループから目印ID{id}を解除する。

:sign unplace * file={fname}
                ファイル{fname}に設置された目印を全て解除する。

:sign unplace * group={group} file={fname}
                ファイル{fname}からグループ{group}に設置されている全ての目印を
                解除する。

:sign unplace * group=* file={fname}
                ファイル{fname}から全てのグループに設置されている全ての目印を
                解除する。

:sign unplace {id} buffer={nr}
                バッファ{nr}{id}で設置された目印を解除する。

:sign unplace {id} group={group} buffer={nr}
                バッファ{nr}からグループ{group}の以前に設置された目印ID{id}
                解除する。

:sign unplace {id} group=* buffer={nr}
                バッファ{nr}から、全てのグループで以前に設置された目印ID{id}
                解除する。

:sign unplace * buffer={nr}
                バッファ{nr}に設置された目印を全て解除する。

:sign unplace * group={group} buffer={nr}
                グループ{group}に設置されている全ての目印をバッファ{nr}から解
                除する。

:sign unplace * group=* buffer={nr}
                全てのグループに設置されている全ての目印をバッファ{nr}から解除
                する。

:sign unplace {id}
                {id}で設置された目印を、全てのファイルから削除する。

:sign unplace {id} group={group}
                表示されている全てのファイルから、グループ{group}の以前に設置
                された目印ID{id}を解除する。

:sign unplace {id} group=*
                表示されている全てのファイルから、全てのグループの以前に設置さ
                れた目印ID{id}を解除する。

:sign unplace *
                全てのファイルからグローバルグループの設置された全ての目印を解
                除する。

:sign unplace * group={group}
                全てのファイルからグループ{group}の設置された全ての目印を解除
                する。

:sign unplace * group=*
                全てのファイルから全てのグループの設置された全ての目印を解除す
                る。

:sign unplace
                カーソル位置の設置された目印を解除する。複数の目印が行内に設置
                されている場合は、1つだけが削除される。

:sign unplace group={group}
                カーソル位置のグループ{group}の設置された目印を解除する。

:sign unplace group=*
                カーソル位置の全てのグループの設置された目印を解除する。


(設置した)目印を一覧表示する                            :sign-place-list

同等のVim script関数については sign_getplaced() を参照。

:sign place file={fname}
                ファイル{fname}に設置されている目印を一覧表示する。
                {fname}については上述の:sign-fnameを参照すること。

:sign place group={group} file={fname}
                ファイル{fname}に設置されているグループ{group}の目印を一覧表示
                する。

:sign place group=* file={fname}
                ファイル{fname}に設置されている全てのグループの目印を一覧表示
                する。

:sign place buffer={nr}
                バッファ{nr}に設置されている目印を一覧表示する。

:sign place group={group} buffer={nr}
                バッファ{nr}に設置されているグループ{group}の目印を一覧表示す
                る。

:sign place group=* buffer={nr}
                バッファ{nr}に設置されている全てのグループの目印を一覧表示す
                る。

:sign place     全てのファイルに設置されているグローバルグループの目印を一覧表
                示する。

:sign place group={group}
                全てのファイルの目印グループ{group}に設置されている目印を一覧
                表示する。

:sign place group=*
                全てのファイルの全ての目印グループに設置されている目印を一覧表
                示する。


(設置した)目印へ移動する                                :sign-jump E157

同等のVim scriptの関数については sign_jump() を参照。

:sign jump {id} file={fname}
                ファイル{fname}を開くか、{fname}を編集中のウィンドウへ移動し、
                目印ID{id}の位置へカーソルを移動させる。
                {fname}については上述の:sign-fnameを参照すること。
                ファイルがウィンドウに表示されておらず、現在のファイルを放棄で
                きない時には、これは失敗する。

:sign jump {id} group={group} file={fname}
                上に同じだが、グループ{group}の目印に移動する。

:sign jump {id} [buffer={nr}]                                   E934
                上に同じだが、バッファ{nr}を使う。バッファ{nr}が名前を持ってい
                ない場合には失敗する。buffer引数が与えられていない場合は、現在
                のバッファを使用する。

:sign jump {id} group={group} [buffer={nr}]
                上に同じだが、グループ{group}の目印に移動する。

 vim:tw=78:ts=8:noet:ft=help:norl: