Ubuntu10.10でgVimを使用しています。コピーしたテキストを他のアプリケーションで使用できるように、テキストをシステムクリップボードにコピー(ヤンク)したいと思います。
これは"+y
で機能します。しかし、私はそれをy
で動作させたいと思っています。
y
を"+y
にマップしようとしましたが、yy
が機能しなくなりました("+y"+y
が生成されるため)。
:set clipboard=unnamed
も試しましたが、これは他の方向でしか機能しません。p
で貼り付けることができるシステムクリップボードのテキスト。
このコマンドでマップしようとしましたか?
noremap y "+y
?このマッピングには重大な誤りが含まれています。通常モードと視覚モードのみが必要なのに対し、通常モード、視覚モード、およびオペレーター保留モードでy
をマップします。以下を使用してください。
nnoremap y "+y
vnoremap y "+y
set clipboard=unnamedplus
も試してください(少なくともvim-7.3.74が必要です)。 set clipboard=unnamed
は両方向で機能しますが、クリップボードレジスタ(*
)とは異なる"マウス"(+
)レジスタを設定します。
ほとんどのオンラインソリューションは、y
を"+y
にマップするように指示するだけです。しかし、問題は"+y
が機能しないこともあります。 vim
がコンパイルされている機能を確認する必要があります。
以下の手順を試してください。
vim –-version | grep xterm_clipboard
を実行しますxterm_clipboard
の前の記号を確認し、+
(プラス記号)の場合は、手順4に進みます。Sudo apt-get install vim-gnome
、次にSudo update-alternatives –config vim
を実行し、リストからvim.gnome
を選択します(システムに対応する適切なコマンドを使用する必要があります)。コマンドvim –-version | grep xterm_clipboard
をもう一度実行すると、+
(プラス記号)を取得できるはずです。+
(プラス記号)または*
(スター記号)レジスタを使用しているかどうかを確認します。これは、使用しているOSによって異なり、同等の場合もあります。確認方法は?ランダムなテキストをコピーしてから、vim
を開いて:reg
と入力し、コピーした文字列がどのレジスタに表示されているかを確認します。 +
(プラス記号)の場合は、set clipboard=unnamedplus
を.vimrc
に追加します。 *
(星座)の場合は、set clipboard=unnamed
を追加します。vim
内に何かをコピーしてから、:reg
と入力して、システムクリップボードが変更されているかどうかを確認します。含まれている場合は、vim
の外に貼り付けると、そのレジスタにあるものはすべて取得されます。私はあなたとまったく同じ考えを持っていますが、私は何年もそれをしました。
nnoremap yy yy"+yy
vnoremap y ygv"+y
ここで、yy
コマンドは2つのことを行うことに注意してください。最初に通常どおり登録するためにヤンクし、次に"
レジスタ(システムクリップボード)にヤンクします。 y
コマンドも同じことをします。これは、Vimの複数のクリップボード機能を維持したいためです。
システムクリップボードからの貼り付けには、以前はnoremap gp "+p
(グローバル貼り付け)を使用していましたが、現在は優れたプラグインYankringを使用しています。
ビジュアルモード でテキストを選択すると、システムクリップボードに挿入されます(中クリックして貼り付けると、正確な名前を思い出せません)。
もし、あんたが set mouse=a
他の多くのアプリケーションと同じように、マウスを使用して視覚的に選択できます。
私の場合、gvimからシステムクリップボードにコピーできる場合とできない場合があります。根本的な問題はわかりませんが、回避策を見つけました。別のアプリケーション(Windows 7を使用している場合のメモ帳など)でテキストをコピーすると、gvimからテキストをコピーして別の場所に貼り付けることができます。 gvimからのコピーごとにこれを行う必要があるようです。