%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-gtk
geditを使用しているので、GnomeベースのバージョンのUbuntuの1つを使用する必要があります。
答え4
私は私のエントリに次のエイリアスを追加することでこれをしました。.bashrc
alias vim='gvim -v'
そして.vimrc
クリップボードを次のように設定します。unnamedplus
set clipboard=unnamedplus
次に、yank:edテキストをグローバルバッファにコピーし、ctrl + vを使用してgeditに貼り付けることができます。グローバルにコピーされたテキストは、p
vimコマンドを使用して貼り付けることもできます。