Neovimでyyがpで貼り付けられない?コンテナ×tmux×mac環境でハマったクリップボード問題の解決法
Posted: | Categories: vim | Tags: vim
概要 Neovimでコピー(yy)した内容を貼り付け(p)ようとしたところ、意図しないテキストが挿入されるという現象に遭遇しました。 本記事では、OSC52ベースのクリップボード連携を導入していた際にこの問題に出会い、どのように原因を特定し、どのように理想の挙動を取り戻したかを記録します。 🐞 課題:yy でコピーしたのに p で貼れない? Neovim上で yy で行をコピーし、その後 p で貼り付けようとしたところ、**貼り付けられたのは直前の yy ではなく、古い内容(またはシステムクリップボードの内容)**でした。 この問題は特に以下の構成で再現しました: macOS (WezTerm) tmux をホスト側とコンテナ内両方で利用 Neovimで OSC52 を使った vim.g.clipboard を定義 🔍 調査ログ 1. レジスタの状態を確認 Neovimで以下のコマンドを使って、各レジスタの状態を確認: :reg " :reg 0 :reg + yy 実行後、無名レジスタ(")には値が入っている p で貼り付けられる内容は + レジスタの中身だった 2. p のマッピングを確認 :verbose nmap p 結果は no mapping found → p はデフォルト挙動のはず。 3. vim.opt.clipboard の影響を再確認 設定では以下を定義していた: vim.opt.clipboard:append({ "unnamedplus" }) これは p を “+p に読み替える効果を持つ可能性があり、貼り付け元が無名レジスタではなく、+ レジスタになっていた。 Read more...