VIエディタで開いているファイルからクリップボードにすべての行をコピーする方法はありますか。私は試した yG しかし、それはそれらの行を格納するためにクリップボードを使用していません。
それは可能ですか?
テキストを*
または+
register にヤンクする必要があります。
gg"*yG
説明:
gg
"*y
へのヤンクコマンドを開始する*
。G
つかいます:
:%y+
すべての行をヤンクする。
説明:
%
は、次のコマンドを参照してすべての行で機能するようにします。y
+
NB:Windowsでは、+
と*
は同等です この回答を参照 。
macの場合
選択した部分をコピーする:テキストを視覚的に選択し(通常モードでv
またはV
と入力)、:w !pbcopy
と入力します。
ファイル全体をコピーする:%w !pbcopy
クリップボードからの過去:r !pbpaste
クリップボードはバッファです +。クリップボードにコピーするには、 "+y そして[動き]。
そう、 - gg"+yGファイル全体をコピーします。
同様に、クリップボードから貼り付けるには、 "+p
VIの使用に問題がある場合にファイル全体をコピーするもう1つの簡単な方法は、単に "cat filename"と入力することです。それはスクリーンにファイルをエコーするでしょう、そしてあなたはただ上下にスクロールしてコピー/ペーストすることができます。
これは私がファイル全体をヤンクするためにすることです:
ggVGy
(@rshdevに返信して、OPのコメントで@nelstromごとに+ xterm_clipboardを使ってvimを再コンパイルする必要を避けるため)
ubuntu 11ではputclipのように動作するxclipというプログラムがあります。
:%!xclip -sel clip
u
デフォルトではインストールされていません。インストールするには、
Sudo apt-get install xclip
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
をインストールすることもできます。
私は人々が上で言及したコマンドのいくつかを試しました。どれもうまくいきませんでした。それから私はそれらすべてのうち最も単純なものを手に入れました。
ステップ1:vi <filename>
ステップ2:PuTTYウィンドウのタイトルバーを右クリックします
ステップ3:[Clear scrollback]を選択します(SSHセッションの残りの部分をコピーしないようにするため)
ステップ4:もう一度右クリックして[すべてをクリップボードにコピー]を選択します。
Vimをビジュアルモードで使用している場合は、少なくともWindowsでは、標準のカットアンドペーストキーも適用されます。
少なくともUbuntu端末(Gnome)の下では、標準コピーも動作します(CTRLSHIFTCただし、select all
には標準のキーボードショートカットはありません。 ALTE に続く A).
ggを押すとカーソルがファイルの先頭に移動します。次にyGを押すと最初から最後までのすべてのコンテンツ(Gがある場所)をbuffer.good luckにコピーできます。
ファイルを開くには "cat"コマンドを使用し、コピーするにはマウスを使用します。
: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.
:%y a
すべてのコンテンツをvimのバッファにヤンクします。コマンドモードでp
を押すと、現在カーソルが置かれている行の後にヤンクしたコンテンツが貼り付けられます。
さて、これらすべてのアプローチは興味深いものですが、怠惰なプログラマーとして私はnumber + y
の組み合わせを使用してyank all lineを使用します
たとえば、合計78行のソースコードファイルがある場合は、次のようにします。
gg
y
を挿入 - >カーソルと現在の行の下に78行をヤンクします。指のデフォルトが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>
にマッピングしました。
Bill Joyのviには「クリップボード」という概念はありませんでしたので、それを行うための組み込みの方法はないと思います。
gVimのクリップボードへのハイライトの自動コピー機能が最も簡単です。
Cygwinのvimには私が使っています
:%!putclip
u
たぶんUbuntuはputclipのようなCLIアプリを持っていますか?
ファイル全体をvimまたはそのタブ内にコピーしてください
y G
次にタブに移動してで貼り付けます
p
ファイル全体の使用を削減する
d G
これは、クリップボードへのすべてを選択するためのmapコマンドです。 CTRL+a:
"
" select all with control-a
"
nnoremap <C-a> ggmqvG"+y'q
それをあなたの。vimrcに付け加えてください。
私はこれに関する10年が解決されるべきであることを知っています、しかし最初の2つの答えは私のために働かなかったので私は掘り続けました。 Redhat(リモートサーバー) - Windows 10(ローカルマシン)では、マウスで全部を選択できないと、通常のコピーがリモートとローカルマシンのクリップボード間で機能しないため、動けなくなります。
そのため、リモートのLinuxにコピーしてローカルのWindowsに貼り付けるには、プライマリバッファを次のように指定します。 * そしてニースダブルヤンクをする
つかいます gg"*yy。
私の.vimrcに次の行を追加しました。
nnoremap <F5> :%y+<CR>
これにより、(コマンドモードで)F5
を押すことでVimのすべてのテキストをクリップボードにコピーすることができます。