%y a
は、完全なファイルをレジスタa
にヤンクします。ただし、これは別のテキストエディター(geditなど)でファイルの内容を貼り付けるのに役立ちません。そうするための代替手段はありますか?
この操作にvi
が必要かどうかはわかりません。
コンソール出力からxサーバーのクリップボードに何でもコピーできるxclip
ユーティリティがあります。
DISPLAY=:0.0
環境を指定して、次のように実行する必要があります。
cat file | xclip
またはリモートファイルの場合
ssh remote "cat file" | xclip
またはvi
から(この方法でviバッファーのコンテンツが一時的にクリアされます。取り消すには、Esc
+ u
を押します。データはX cilpboardに残ります):
:%!xclip
これで、マウスの中央ボタンで任意の場所に貼り付けることができます(注、CTRL+V
またはshift+ins
は機能しません)。
a
レジスタにヤンクするのではなく、*
または+
レジスタにヤンクして、次のいずれかを使用してファイルの内容をXクリップボードにヤンクします。
:%y*
:%y+
これには、Xサポートがコンパイルされており、Xサーバーに接続できるvimのコピーを使用している必要があります。それらのうちどれがあなたにとってより良い働きをするかは、ターゲットエディタが使用するクリップボードのタイプに依存します。
.vimrc
ファイルに次のいずれかを含めることで、これらのレジスタの1つをヤンクアンドペースト操作のデフォルトとして使用することもできます。
set clipboard+=unnamed
set clipboard+=unnamedplus
Vimとgeditの両方を一緒に使用する必要があることに定期的に気づいている場合は、おそらくVimのGUIバージョンであるgVimに切り替える必要があります。
GVimがデフォルトでインストールされていないUbuntuを使用しているようです。このコマンドを使用して取得します。
$ Sudo apt-get install vim-gnome
Gnomeに依存しないvim-gtk
もありますが、geditを使用しているため、GnomeベースのバージョンのUbuntuのいずれかを使用している必要があります。
たぶん、
behave mswin
、
そして^C / ^V
コンテンツをコピーして貼り付けます。これが目的のものかどうかはわかりません
これを解決するには、次のエイリアスを.bashrc
に追加します
alias vim='gvim -v'
.vimrc
で、クリップボードをunnamedplus
に設定します
set clipboard=unnamedplus
次に、yank:edテキストがグローバルバッファーにコピーされ、ctrl + vを使用してgeditに貼り付けることができます。グローバルにコピーされたテキストは、vim p
コマンドを使用して貼り付けることもできます
通常モードでは、ggvG$
はすべてのテキストを選択して"*
レジスタに保存し、geditに移動して中マウスボタンをクリックすると、テキストがそこに表示されます。