web-dev-qa-db-ja.com

すべての行をクリップボードにコピーする

VIエディタで開いているファイルからクリップボードにすべての行をコピーする方法はありますか。私は試した yG しかし、それはそれらの行を格納するためにクリップボードを使用していません。

それは可能ですか?

487
Xinus

テキストを*または+register にヤンクする必要があります。

gg"*yG

説明:

  • ファイルの最初の文字にカーソルを合わせるためのgg
  • 最初の行からレジスタ"*yへのヤンクコマンドを開始する*
  • ファイルの末尾に移動する場合はG
564
CMS

つかいます:

:%y+

すべての行をヤンクする。

説明:

  • %は、次のコマンドを参照してすべての行で機能するようにします。
  • それらの行をヤンクするy
  • システムクリップボードにコピーする+

NB:Windowsでは、+*は同等です この回答を参照

612
Rook

macの場合

  • 選択した部分をコピーする:テキストを視覚的に選択し(通常モードでvまたはVと入力)、:w !pbcopyと入力します。

  • ファイル全体をコピーする:%w !pbcopy

  • クリップボードからの過去:r !pbpaste

70
Brian

クリップボードはバッファです +。クリップボードにコピーするには、 "+y そして[動き]。

そう、 - gg"+yGファイル全体をコピーします。

同様に、クリップボードから貼り付けるには、 "+p

48
Tordek

VIの使用に問題がある場合にファイル全体をコピーするもう1つの簡単な方法は、単に "cat filename"と入力することです。それはスクリーンにファイルをエコーするでしょう、そしてあなたはただ上下にスクロールしてコピー/ペーストすることができます。

36
Zack

これは私がファイル全体をヤンクするためにすることです:

ggVGy
25
EmilianoGNFNR

(@rshdevに返信して、OPのコメントで@nelstromごとに+ xterm_clipboardを使ってvimを再コンパイルする必要を避けるため)

ubuntu 11ではputclipのように動作するxclipというプログラムがあります。

:%!xclip -sel clip
u

デフォルトではインストールされていません。インストールするには、

Sudo apt-get install xclip
10
Stew

Ubuntu 12上

vim-gnomeパッケージをインストールしようとするかもしれません:

Sudo apt-get install vim-gnome

vim --versionがクリップボードの機能を使用するために必要なフラグ xterm_clipboard disabled( - で示される)を持つことを私に言ったのでそれを試みました。

- > vim-gnome パッケージをUbuntu 12にインストールすると、コンソールベースのバージョンのvimもインストールされます(これはこのオプションを有効にします(xterm_clipboardフラグの前に + で示されます))。

Arch Linuxの場合

同じ理由でvim-clipboardをインストールすることもできます。

9
Arch Linux Tux

私は人々が上で言及したコマンドのいくつかを試しました。どれもうまくいきませんでした。それから私はそれらすべてのうち最も単純なものを手に入れました。

ステップ1:vi <filename>
ステップ2:PuTTYウィンドウのタイトルバーを右クリックします
ステップ3:[Clear scrollback]を選択します(SSHセッションの残りの部分をコピーしないようにするため)
ステップ4:もう一度右クリックして[すべてをクリップボードにコピー]を選択します。

5

Vimをビジュアルモードで使用している場合は、少なくともWindowsでは、標準のカットアンドペーストキーも適用されます。

  • CTRLA 「ファイル全体をマークする」という意味です。
  • CTRLC "選択範囲をコピーします。
  • ESC 「選択を解除します。次のキーを押してもファイル全体が置き換えられるわけではありません:-)

少なくともUbuntu端末(Gnome)の下では、標準コピーも動作します(CTRLSHIFTCただし、select allには標準のキーボードショートカットはありません。 ALTE に続く A).

5
paxdiablo

ggを押すとカーソルがファイルの先頭に移動します。次にyGを押すと最初から最後までのすべてのコンテンツ(Gがある場所)をbuffer.good luckにコピーできます。

5
gameboy90

ファイルを開くには "cat"コマンドを使用し、コピーするにはマウスを使用します。

5
Pham Luan

gVim:

:set go=a

ggVG

:help go-aを参照してください。

'a' Autoselect:  If present, then whenever VISUAL mode is started,
 or the Visual area extended, Vim tries to become the owner of
 the windowing system's global selection.  This means that the
 Visually highlighted text is available for pasting into other
 applications as well as into Vim itself.  When the Visual mode
 ends, possibly due to an operation on the text, or when an
 application wants to paste the selection, the highlighted text
 is automatically yanked into the "* selection register.
 Thus the selection is still available for pasting into other
 applications after the VISUAL mode has ended.
     If not present, then Vim won't become the owner of the
 windowing system's global selection unless explicitly told to
 by a yank or delete operation for the "* register.
 The same applies to the modeless selection.
3
kev

:%y aすべてのコンテンツをvimのバッファにヤンクします。コマンドモードでpを押すと、現在カーソルが置かれている行の後にヤンクしたコンテンツが貼り付けられます。

3
Ma'moon

さて、これらすべてのアプローチは興味深いものですが、怠惰なプログラマーとして私はnumber + yの組み合わせを使用してyank all lineを使用します

たとえば、合計78行のソースコードファイルがある場合は、次のようにします。

  1. 最初の行にカーソルを置くためのgg
  2. 78 + yを挿入 - >カーソルと現在の行の下に78行をヤンクします。
2
arfo

指のデフォルトがCTRL-A CTRL-Cの場合は、$VIMRUNTIME/mswin.vimからのマッピングを試してください。

" CTRL-C and CTRL-Insert are Copy
vnoremap <C-C> "+y

" CTRL-A is Select all
noremap <C-A> gggH<C-O>G
inoremap <C-A> <C-O>gg<C-O>gH<C-O>G
cnoremap <C-A> <C-C>gggH<C-O>G
onoremap <C-A> <C-C>gggH<C-O>G
snoremap <C-A> <C-C>gggH<C-O>G
xnoremap <C-A> <C-C>ggVG

それらを<Leader><C-a><Leader><C-c>にマッピングしました。

2
go2null

Bill Joyのviには「クリップボード」という概念はありませんでしたので、それを行うための組み込みの方法はないと思います。

gVimのクリップボードへのハイライトの自動コピー機能が最も簡単です。

Cygwinのvimには私が使っています

:%!putclip
u

たぶんUbuntuはputclipのようなCLIアプリを持っていますか?

2
rshdev

ファイル全体をvimまたはそのタブ内にコピーしてください

y G 

次にタブに移動してで貼り付けます

p

ファイル全体の使用を削減する

d G
2
Abdul Basit

これは、クリップボードへのすべてを選択するためのmapコマンドです。 CTRL+a

"
" select all with control-a
"
nnoremap <C-a> ggmqvG"+y'q

それをあなたの。vimrcに付け加えてください。

1
jahroy

私はこれに関する10年が解決されるべきであることを知っています、しかし最初の2つの答えは私のために働かなかったので私は掘り続けました。 Redhat(リモートサーバー) - Windows 10(ローカルマシン)では、マウスで全部を選択できないと、通常のコピーがリモートとローカルマシンのクリップボード間で機能しないため、動けなくなります。

そのため、リモートのLinuxにコピーしてローカルのWindowsに貼り付けるには、プライマリバッファを次のように指定します。 * そしてニースダブルヤンクをする

つかいます gg"*yy

0
Lefty G Balogh

私の.vimrcに次の行を追加しました。

nnoremap <F5> :%y+<CR>

これにより、(コマンドモードで)F5を押すことでVimのすべてのテキストをクリップボードにコピーすることができます。

0
aks