私はファイルを猫にしたり、真ん中のボタンやシフト挿入でテキストをコピーして貼り付けることができます。
vimでテキストをコピーしてシステムのクリップボードから貼り付けるにはどうすればよいですか?
:!sed -n 5,10p %
:!cat %
私はファイルを猫にしたり、真ん中のボタンやシフト挿入でテキストをコピーして貼り付けることができます。
vimでテキストをコピーしてシステムのクリップボードから貼り付けるにはどうすればよいですか?
:!sed -n 5,10p %
:!cat %
回答:
あなたがVimを持っている必要がありますclipboard
し、xtermclipboard
中にコンパイルされています。ではUbuntuで、これらはvimのGUIパッケージ(でのみ利用可能ですvim-gnome
、vim-gtk
、vim-athena
、など)。
これらのいずれかをインストールすると、クリップボードレジスタにコピー(および貼り付け)できます(*
および+
)。ViとVimに関するこの非常に有益な投稿から:
以下のためにX11システム(すなわちベースのLinuxおよび他のほとんどのUNIXライクなシステム)、互いに独立した2つのクリップボードは、ありますが。
- PRIMARY-これは選択時コピーであり、マウスの中央ボタンで貼り付けることができます。
- CLIPBOARD-これは(通常)
^C
でコピーされ、(^V
MS Windowsのように)貼り付けられます。
Vimには、これらのクリップボードに対応する2つの特殊レジスターがあります。
*
PRIMARYを使用します。ニーモニック:s tar is s elect(copy-on- s elect)+
CLIPBOARDを使用します。ニーモニック:CTRL + C(一般的なキーバインド用)
レジスタにコピーするには、コピーコマンド(y
)の前にレジスタ"
の名前(*
など)を付けます。"*y
、次に中クリックで貼り付け、または"+y
and ShiftInsertで貼り付けます。
この質問から非常に興味深い解決策が得られます。xclipをインストールしてから、コマンドの出力をxclip(cat file | xclip -selection clipboard
たとえば)にパイプし、任意の場所に貼り付けます(ターミナルにある場合-を使用Ctrl ShiftV
)。ここで、実際にそのコマンドをに短縮できることがわかりましたxclip -sel clip
。これは、マニュアルページや例を読むことからは明らかではありません。
/dev
が、テキストはまだどこかに保持されていますよね?
vimがクリップボードをサポートしていないため、問題が発生しました:
vim --version | grep clip
-clipboard +insert_expand +path_extra +user_commands
+emacs_tags -mouseshape +startuptime -xterm_clipboard
vim-gnome(クリップボードをサポート)をインストールしてから、もう一度確認しました。
vim --version | grep clipboard
+clipboard +insert_expand +path_extra +user_commands
+emacs_tags +mouseshape +startuptime +xterm_clipboard
これで、それぞれ「+ y」と「+ p」を使用してコピーと貼り付けを行うことができます。
sed -n5,10p
5-10行目を印刷するのに時々使用するので、vimがマウスに反応することなく、より簡単にコピーして貼り付けることができます。