wayland.txt For Vim バージョン 9.2. Last change: 2026 Apr 20
VIM リファレンスマニュアル by Bram Moolenaar
Wayland プロトコルのサポート wayland
1. Wayland の役立つ情報 wayland-useful
2. Wayland セレクション wayland-selections
==============================================================================
1. Wayland の役立つ情報 wayland-useful
wayland-seat
Wayland のクリップボードなどの機能を使用するには、シートが必要である。Wayland
シートは、キーボード、ポインター、タッチデバイスで構成される。使用するシートは
'wlseat' オプションで設定できる。これは、同じ Wayland セッションで複数の
Wayland シートを使用する場合にのみ役立つ。これが何を意味するのか分からないので
あれば、それはおそらくあなたにとって問題ではないだろう。
wayland-gui
gui-wayland を参照。GUI 使用時、Vim はクリップボードへのアクセスに GTK など
のツールキットを使用し、Wayland 経由ではアクセスしない。これは v:clipmethod
変数で確認できる。GUI 実行時にはこの変数は "none" になる。
Wayland のコマンド:
:wlrestore :wl
:wl[restore] [display] Wayland コンポジタへの接続を再初期化する。Wayland コン
ポジタの再起動後も Vim を screen/tmux セッションで実行
し続ける場合に便利である。
[display] は、環境変数 $WAYLAND_DISPLAY の形式(例:
"wayland-0")で指定する必要がある。[display] を省略し
た場合は、このコマンドの前回実行時に使用された値と同じ
値を使用して接続を再初期化する。
値が指定されていない場合は、環境変数 $WAYLAND_DISPLAY
の値が使用される。また、v:clipmethod も更新される。
{Vimが +wayland 機能付きでコンパイルされたときのみ有
効}
Wayland のエラー:
E1548
Vim は Wayland コンポジタとの通信に失敗した。これは Wayland コンポジタのプロセ
スが強制終了したことが原因である可能性がある。再接続するには :wlrestore コマ
ンドを試すこと。
==============================================================================
2. Wayland セレクション wayland-selections
Vim は、現在の Wayland セレクションにアクセスするための
wlr-data-control-unstable-v1 プロトコルと ext-data-control-v1 プロトコルをサ
ポートしている。この場合のセレクションは基本的に "clipboard" を指す。Wayland
コンポジタがこれらのプロトコルをサポートしているかどうかを確認するには、
wayland-info コマンドを実行する。このコマンドは、あなたのシステムでは
libwayland にバンドルされているはずである:
コルが存在する。
どちらかまたは両方のプロトコルをサポートすることが知られているコンポジタの一部:
1. KWin (KDE)
2. wlroots based (Sway, Labwc)
3. Niri
4. Hyprland
5. Wayfire
X11 から移行する場合、通常の Waylandセレクション は X11 のクリップボードセレク
ションに相当し、プライマリ Wayland セレクションは X11 のプライマリセレクション
に相当する。これらのセレクションへのアクセスは Vim の X11 と同様で、+ レジスタ
が通常のセレクション、* レジスタがプライマリセレクションである。Note コンポジ
タがプライマリセレクションをサポートしていない可能性があることに注意。詳細は
wayland-primary-selection を参照。
wayland-persist
X11 のカットバッファを使用する場合、Wayland にはそのような機能は存在しない。そ
のような機能をエミュレートするには、Wayland クライアントが終了した後も選択デー
タを保持するために、別のクリップボードマネージャーを使用する必要がある。
wayland-and-x11
使用している Vim のバージョンが X11 と Wayland の両方のサポートでコンパイルさ
れている場合、Vim は 'clipmethod' オプションを使用してクリップボードにアクセス
するときにどちらを使用するかを決定する。
wayland-primary-selection
X11 スタイルのプライマリ選択が便利だと感じる場合、Wayland も Vim がサポートす
るプロトコルを使用してこの機能を実装している。ただし、wlr-data-control プロト
コルのバージョン 1 (プロトコル名の 'v1' とは異なる) を使用している場合は、プラ
イマリ選択はサポートされない。これを確認するには、以下を使用する
イマリ選択がサポートされる。また、"ext_data_control_manager_v1" も取得できた場
合は、Vim は代わりにそのプロトコルを使用する。このプロトコルにはプライマリ選択
のサポートが組み込まれている。
Wayland コンポジタが wlr-data-control-v1 または ext-data-control-v1 プロトコル
をサポートしていない場合、Vim は Wayland プロトコルを介してクリップボードに直
接アクセスできない。代わりに、ユーザー定義の clipboard-providers を介して
wl-clipboard などの外部ツールを使用できる。
例: wl-copy と wl-paste を実行するプロバイダを定義する: >vim9
vim9script
def Available(): bool
return executable('wl-copy') && executable('wl-paste')
enddef
def Copy(reg: string, type: string, str: list<string>)
var args = "wl-copy"
if reg == "*"
args ..= " -p"
endif
system(args, str)
enddef
def Paste(reg: string): tuple<string, list<string>>
var args = "wl-paste --type text/plain;charset=utf-8"
if reg == "*"
args ..= " -p"
endif
return ("", systemlist(args))
enddef
v:clipproviders["wl_clipboard"] = {
available: Available,
copy: {
"+": Copy,
"*": Copy
},
paste: {
"+": Paste,
"*": Paste
}
}
set clipmethod=wl_clipboard
これは、wl-clipboard パッケージがインストールされていることを前提としている
(https://github.com/bugaevc/wl-clipboard).
vim:tw=78:ts=8:noet:ft=help:norl:
VIM リファレンスマニュアル by Bram Moolenaar
Wayland プロトコルのサポート wayland
1. Wayland の役立つ情報 wayland-useful
2. Wayland セレクション wayland-selections
==============================================================================
1. Wayland の役立つ情報 wayland-useful
wayland-seat
Wayland のクリップボードなどの機能を使用するには、シートが必要である。Wayland
シートは、キーボード、ポインター、タッチデバイスで構成される。使用するシートは
'wlseat' オプションで設定できる。これは、同じ Wayland セッションで複数の
Wayland シートを使用する場合にのみ役立つ。これが何を意味するのか分からないので
あれば、それはおそらくあなたにとって問題ではないだろう。
wayland-gui
gui-wayland を参照。GUI 使用時、Vim はクリップボードへのアクセスに GTK など
のツールキットを使用し、Wayland 経由ではアクセスしない。これは v:clipmethod
変数で確認できる。GUI 実行時にはこの変数は "none" になる。
Wayland のコマンド:
:wlrestore :wl
:wl[restore] [display] Wayland コンポジタへの接続を再初期化する。Wayland コン
ポジタの再起動後も Vim を screen/tmux セッションで実行
し続ける場合に便利である。
[display] は、環境変数 $WAYLAND_DISPLAY の形式(例:
"wayland-0")で指定する必要がある。[display] を省略し
た場合は、このコマンドの前回実行時に使用された値と同じ
値を使用して接続を再初期化する。
値が指定されていない場合は、環境変数 $WAYLAND_DISPLAY
の値が使用される。また、v:clipmethod も更新される。
{Vimが +wayland 機能付きでコンパイルされたときのみ有
効}
Wayland のエラー:
E1548
Vim は Wayland コンポジタとの通信に失敗した。これは Wayland コンポジタのプロセ
スが強制終了したことが原因である可能性がある。再接続するには :wlrestore コマ
ンドを試すこと。
==============================================================================
2. Wayland セレクション wayland-selections
Vim は、現在の Wayland セレクションにアクセスするための
wlr-data-control-unstable-v1 プロトコルと ext-data-control-v1 プロトコルをサ
ポートしている。この場合のセレクションは基本的に "clipboard" を指す。Wayland
コンポジタがこれらのプロトコルをサポートしているかどうかを確認するには、
wayland-info コマンドを実行する。このコマンドは、あなたのシステムでは
libwayland にバンドルされているはずである:
wayland-info | grep -E '(ext_data_control|zwlr_data_control)'
grep で一致するものが見つかった場合、システムにはどちらか、または両方のプロトコルが存在する。
どちらかまたは両方のプロトコルをサポートすることが知られているコンポジタの一部:
1. KWin (KDE)
2. wlroots based (Sway, Labwc)
3. Niri
4. Hyprland
5. Wayfire
X11 から移行する場合、通常の Waylandセレクション は X11 のクリップボードセレク
ションに相当し、プライマリ Wayland セレクションは X11 のプライマリセレクション
に相当する。これらのセレクションへのアクセスは Vim の X11 と同様で、+ レジスタ
が通常のセレクション、* レジスタがプライマリセレクションである。Note コンポジ
タがプライマリセレクションをサポートしていない可能性があることに注意。詳細は
wayland-primary-selection を参照。
wayland-persist
X11 のカットバッファを使用する場合、Wayland にはそのような機能は存在しない。そ
のような機能をエミュレートするには、Wayland クライアントが終了した後も選択デー
タを保持するために、別のクリップボードマネージャーを使用する必要がある。
wayland-and-x11
使用している Vim のバージョンが X11 と Wayland の両方のサポートでコンパイルさ
れている場合、Vim は 'clipmethod' オプションを使用してクリップボードにアクセス
するときにどちらを使用するかを決定する。
wayland-primary-selection
X11 スタイルのプライマリ選択が便利だと感じる場合、Wayland も Vim がサポートす
るプロトコルを使用してこの機能を実装している。ただし、wlr-data-control プロト
コルのバージョン 1 (プロトコル名の 'v1' とは異なる) を使用している場合は、プラ
イマリ選択はサポートされない。これを確認するには、以下を使用する
wayland-info | grep -E '(ext_data_control|zwlr_data_control)'
"zwlr_data_control_manager_v1" の "version:" エントリが "2" 以上であれば、プライマリ選択がサポートされる。また、"ext_data_control_manager_v1" も取得できた場
合は、Vim は代わりにそのプロトコルを使用する。このプロトコルにはプライマリ選択
のサポートが組み込まれている。
Wayland コンポジタが wlr-data-control-v1 または ext-data-control-v1 プロトコル
をサポートしていない場合、Vim は Wayland プロトコルを介してクリップボードに直
接アクセスできない。代わりに、ユーザー定義の clipboard-providers を介して
wl-clipboard などの外部ツールを使用できる。
例: wl-copy と wl-paste を実行するプロバイダを定義する: >vim9
vim9script
def Available(): bool
return executable('wl-copy') && executable('wl-paste')
enddef
def Copy(reg: string, type: string, str: list<string>)
var args = "wl-copy"
if reg == "*"
args ..= " -p"
endif
system(args, str)
enddef
def Paste(reg: string): tuple<string, list<string>>
var args = "wl-paste --type text/plain;charset=utf-8"
if reg == "*"
args ..= " -p"
endif
return ("", systemlist(args))
enddef
v:clipproviders["wl_clipboard"] = {
available: Available,
copy: {
"+": Copy,
"*": Copy
},
paste: {
"+": Paste,
"*": Paste
}
}
set clipmethod=wl_clipboard
これは、wl-clipboard パッケージがインストールされていることを前提としている
(https://github.com/bugaevc/wl-clipboard).
vim:tw=78:ts=8:noet:ft=help:norl: