tmuxセッション内でvimを使用している間、名前のないレジスタにヤンクしたり貼り付けたりすることはできません。名前付きレジスタに移動することは正常に機能しますが、名前なしは機能しません。
エラーは次のとおりです。
E353: Nothing in register *
tmuxがないと、vimは現在の設定を使用して正常に動作します。yエラーやレジスタを指定せpずに使用できるように修正するにはどうすればよいですか?
エラーメッセージ(Nothing in register *
)から、プレーンを実行すると? p
、Vimのインスタンスは名前のないレジスタ*の代わりに*
レジスタを使用しています。これはおそらく、オプションに値が含まれているためです。このように設定すると、Vimは デフォルトで名前のないレジスタの代わりにレジスタを使用して、ヤンク、削除、変更、および書き込み操作を行います(つまり、プレフィックス付きの別のレジスタを指定しない限り、たとえばレジスタから書き込みます )。clipboard
unnamed
*
"
"ap
a
*名前のないレジスタは実際には名前が付けられ"
ています(二重引用符)。使用するために名前を付ける必要がないという意味で、「名前なし」にすぎません(これがデフォルトです)。""p
つまり、名前のないレジスタから置くと言う必要はありませんp
。
のデフォルト値にclipboard
はが含まれていないunnamed
ため、構成(またはプラグイン)の一部に由来している可能性があります。このコマンド:verbose set clipboard?
は、現在の値を設定するスクリプトを表示します。これが構成ファイルで行われている場合は、 tmuxで実行しているときにこれを行わないことをお勧めします。例えば:
if $TMUX == ''
set clipboard+=unnamed
endif
あるいは、Vim-inside- tmuxのインスタンスがGUI選択/クリップボードにアクセスできるようにする方法があるかもしれません(したがって、*
レジスターおよび/またはunnamed
で動作しclipboard
ます)。Mac OS Xを実行している場合は、 tmuxセッション内で実行されているプロセスのクリップボードアクセスを再度有効にする回避策ラッパーを確認することをお勧めします。他のOSまたはGUIを使用している場合は、Vimが通常GUIと通信する方法と、それが機能しない理由を確認する必要があります(たとえば、実行中の古いセッションに接続しているために、X11でのDISPLAY値が間違っているなど)。古い値を持つシェル)。
これがvim/tmux /osxで私のために働くものです:
brew install reattach-to-user-namespace
set clipboard=unnamed
set-option -g default-command "reattach-to-user-namespace -l bash"
fakeclipプラグインは、クリップボードレジスタを多くの端末で期待どおりに動作させ、tmux/screenをサポートします。使っていますか?問題が解決する場合があります。
同様に、あなたはこのヒントに興味があるかもしれません...それはあなたの質問には当てはまりませんが、関連しています。tmuxを実行しているシステム/ターミナルのタイプによっては、でいくつかの調整が必要になる場合があります.tmux.conf
。たとえば、.tmux.conf
OS Xでの私の抜粋です(コメントにいくつかの指示があります):
# To use pbcopy and pbpaste on OS X, get this wrapper and install
# git clone https://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard.git
# cd tmux-MacOSX-pasteboard/
# make reattach-to-user-namespace
# mv reattach-to-user-namespace /usr/local/bin
# After installing, the default command can be reset to use the 'reattach-to-user-namespace'
# wrapper that was compiled/installed as descripted above.
set -g default-command "reattach-to-user-namespace -l /bin/bash"
# #Next, create Ctrl-c and Ctrl-v mappings
bind C-c run "tmux save-buffer - | reattach-to-user-namespace pbcopy"
bind C-v run "tmux set-buffer $(reattach-to-user-namespace pbpaste); tmux paste-buffer"
.tmux.conf
遅い答えですが、次の行が含まれている可能性もあります。
set -g set-clipboard off
.vimrc
含むと組み合わせる
set clipboard=unnamed
これにより、vimはそこにないクリップボードを使用しようとします。
OSXでの私の経験からのいくつかのメモを受け入れられた答えに追加するには:
set clipboard=unnamed
、しないでくださいset clipboard=unnamedplus
$ killall tmux
または$ tmux kill-session -a
)。tmux構成ファイルをリロードすると、default-commandが設定されていることが示されましたが、vimがシステムクリップボードにアクセスすることはできませんでした。