67

tmuxセッション内でvimを使用している間、名前のないレジスタにヤンクしたり貼り付けたりすることはできません。名前付きレジスタに移動することは正常に機能しますが、名前なしは機能しません。

エラーは次のとおりです。

E353: Nothing in register *

tmuxがないと、vimは現在の設定を使用して正常に動作します。yエラーやレジスタを指定せpずに使用できるように修正するにはどうすればよいですか?

4

5 に答える 5

105

エラーメッセージ(Nothing in register *)から、プレーンを実行すると p、Vimのインスタンスは名前のないレジスタ*の代わりに* レジスタを使用しています。これはおそらく、オプションに値が含まれているためです。このように設定すると、Vimは デフォルトで名前のないレジスタの代わりにレジスタを使用して、ヤンク、削除、変更、および書き込み操作を行います(つまり、プレフィックス付きの別のレジスタを指定しない限り、たとえばレジスタから書き込みます )。clipboardunnamed*""apa

*名前のないレジスタは実際には名前が付けられ"ています(二重引用符)。使用するために名前を付ける必要がないという意味で、「名前なし」にすぎません(これがデフォルトです)。""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値が間違っているなど)。古い値を持つシェル)。

于 2012-07-10T20:22:33.833 に答える
49

これがvim/tmux /osxで私のために働くものです:

  1. Homebrewをインストールする
  2. reattach-to-user-namespaceをインストールします。 brew install reattach-to-user-namespace
  3. .vimrc内:set clipboard=unnamed
  4. システムクリップボードを使用するようにtmuxに指示します。.tmux.conf内:set-option -g default-command "reattach-to-user-namespace -l bash"

ソース:https ://coderwall.com/p/j9wnfw

于 2013-09-07T15:41:02.583 に答える
4

fakeclipプラグインは、クリップボードレジスタを多くの端末で期待どおりに動作させ、tmux/screenをサポートします使っていますか?問題が解決する場合があります。

同様に、あなたはこのヒントに興味があるかもしれません...それはあなたの質問には当てはまりませんが、関連しています。tmuxを実行しているシステム/ターミナルのタイプによっては、でいくつかの調整が必要になる場合があります.tmux.conf。たとえば、.tmux.confOS 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"
于 2012-07-11T14:06:55.820 に答える
0

.tmux.conf遅い答えですが、次の行が含まれている可能性もあります。

set -g set-clipboard off

.vimrc含むと組み合わせる

set clipboard=unnamed

これにより、vimはそこにないクリップボードを使用しようとします。

于 2017-05-29T12:02:39.850 に答える
0

OSXでの私の経験からのいくつかのメモを受け入れられた答えに追加するには:

  • あなたがすることを確認しset clipboard=unnamed、しないでくださいset clipboard=unnamedplus
  • tmuxサーバーを強制終了する必要がありました($ killall tmuxまたは$ tmux kill-session -a)。tmux構成ファイルをリロードすると、default-commandが設定されていることが示されましたが、vimがシステムクリップボードにアクセスすることはできませんでした。
于 2018-08-15T21:46:35.463 に答える