viでファイル全体を選択してgeditに貼り付けるには?

viでファイル全体を選択してgeditに貼り付けるには?

%y aこれにより、ファイル全体がレジスタに保存されることがわかりますa。ただし、ファイルの内容を他のテキストエディタ(geditなど)に貼り付けるのには役立ちません。これを行う以外に別の選択肢がありますか?

答え1

ファイルの内容をaレジスタにインポートする*のではなく+、次のいずれかの方法でファイルの内容をXクリップボードにインポートします。

:%y*
:%y+

これを行うには、Xサポートでコンパイルされ、Xサーバーに接続できるvimコピーを使用する必要があります。どの方法が良いかは、ターゲットエディタが使用するクリップボードの種類によって異なります。

ファイルに次のいずれかを含めると、これらのレジスタの1つをコピー&ペースト操作のデフォルトとして使用できます.vimrc

set clipboard+=unnamed
set clipboard+=unnamedplus

答え2

viこれが必要かどうかはわかりません。

xclipコンソール出力のすべてをxサーバークリップボードにコピーするユーティリティがあります。

DISPLAY=:0.0環境を指定し、次のように実行する必要があります。

cat file | xclip

またはリモートファイルの場合

ssh remote "cat file" | xclip

またはvi(注:この方法はviバッファの内容を一時的に消去します。元に戻すにはEsc+を押しますu。データはX cilpboardに残ります):

:%!xclip

マウスの中央ボタンを使ってどこにでも貼り付けることができます(注:機能しない可能性CTRL+Vがありますshift+ins)。

答え3

Vimとgeditを一緒に使用することが多い場合は、VimのGUIバージョンgVimに切り替える必要があります。

Ubuntuを使用していて、gVimがデフォルトでインストールされていないようです。これを行うには、次のコマンドを使用します。

 $ sudo apt-get install vim-gnome

Gnomeに依存しないものもありますが、vim-gtkgeditを使用しているので、GnomeベースのバージョンのUbuntuの1つを使用する必要があります。

答え4

私は私のエントリに次のエイリアスを追加することでこれをしました。.bashrc

alias vim='gvim -v'

そして.vimrcクリップボードを次のように設定します。unnamedplus

set clipboard=unnamedplus

次に、yank:edテキストをグローバルバッファにコピーし、ctrl + vを使用してgeditに貼り付けることができます。グローバルにコピーされたテキストは、pvimコマンドを使用して貼り付けることもできます。

関連情報