vimでコマンド出力をコピーするにはどうすればよいですか?


33

たとえば、「:pwd」と入力して現在の作業ディレクトリを取得すると、gvimでテキストを選択できますが、クリップボードにコピーする方法がわかりません。コンソールvimで同じことを試しても、マウスで選択することさえできません。出力set guifontをコピーするなど、すべてのvimコマンドでこれが動作するようにしたいと思いguifont=Consolas:h10:cANSIます。

回答:


41

これを探していますか、

:redir @* | set guifont | redir END

:redirコマンドは、コマンドの出力をレジスター(@ *)にリダイレクトします。レジスタ@ *はクリップボードを指します。

詳細については、

:help :redir

vim-gtkでいくつかの手がかりがうまくいかなかった?
セルヒオアブレウ

@SergioAbreuの@+代わりに試してください@*(まあ、それはgvimで動作します)。
leeand00

10

:r !pwd」を試して、現在の作業ディレクトリをGVIMで開いたファイルに直接取得します。
その後、他のテキストファイルのコンテンツを開くようにクリップボードにコピーできます。


これは便利ですが、set guifontたとえばこれを使用できますか?
スティーブン

いいえ、それはシェルコマンドではないため、動作しません。
ケビンパンコ

4

この特定の例では、次のことができます(シェルを通過させる「!」に注意してください)。

:!pwd | xclip

または

:!pwd | xclip -selection secondary

(どのXセレクションを使用するかによって異なります)。

最初にxclipをインストールする必要があるかもしれません

sudo apt-get install xclip

(または同等)


3

xtermでvimを実行している場合、Shiftキーを押しながらテキストを選択すると、テキストがクリップボードに相当するXにコピーされます。


Xには(少なくとも)2つのクリップボードがあります。提案では、CLIPBOARD hselection(ほとんどのアプリではCtrl + Vで貼り付け)ではなく、PRIMARY選択(中クリックで貼り付け)にテキストが配置されます。
マリウスゲドミナス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.