私はファイルを猫にしたり、真ん中のボタンやシフト挿入でテキストをコピーして貼り付けることができます。
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でコピーされ、(^VMS Windowsのように)貼り付けられます。
Vimには、これらのクリップボードに対応する2つの特殊レジスターがあります。
*PRIMARYを使用します。ニーモニック:s tar is s elect(copy-on- s elect)+CLIPBOARDを使用します。ニーモニック:CTRL + C(一般的なキーバインド用)
レジスタにコピーするには、コピーコマンド(y)の前にレジスタ"の名前(*など)を付けます。"*y、次に中クリックで貼り付け、または"+yand 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,10p5-10行目を印刷するのに時々使用するので、vimがマウスに反応することなく、より簡単にコピーして貼り付けることができます。