Vi / Vimのすべてのテキストを選択するにはどうすればよいですか?


193

VIツールを使用して構成ファイルを編集します。

ファイル内のすべてのテキスト(約1000行)を選択してコピーし、Googleドキュメントに貼り付けるにはどうすればよいですか?

回答:


159

最も簡単で最速の方法は、使用することです。: % y +その後、Googleドキュメント(またはどこでも)に移動して貼り付けます。説明:

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

もう1つの方法はg g " + y G、上記の方がより高速で簡単であることを認めるでしょう。


10
@Tuxmentatでは、各キーが何をするのか説明していただけますか:%y+
Jas 14年

10
この答えは、各キーが両方のシーケンスに対して何をするのかを説明していればより良いでしょう。
AsksAnyway

6
私の最良の推測:「:」は、「exモード」コマンドを使用していることを意味します(と思います)。とにかく、それはコマンドです。'%'は、ファイル全体を指定する特別なコマンドライン範囲指定子です。「y」はすべてをヤンクし、「+」はクリップボードレジスタを指定します。:help <command>は、これを理解するのに役立ちました。
ホークアイパーカー14

11
私は何か間違ったことをしているに違いない。を入力し:%y+、取得しますE488: Trailing characters
ジョニーなぜ

25
「E850:Invalid register name」と表示されます。2番目の方法はコピーにはうまくいきましたが、Ubuntu 16.04のシステムクリップボードには到達しません(少なくとも、私にとっては、物事に影響を与える可能性のある.vimrcがあります)。
エンタングルドループ

95

与えられた返信の多くは、私が探していなかった選択をヤンクします。

私はggVGこの目的のために使用しています(通常モードで実行する必要があります)。このコマンド、ドキュメント内のテキスト全体のみを選択します。

Ctrl+Aショートカット(既定のCtrl+Aマップ)で整数を実際にインクリメントする必要がないため、この目的のために再マップしました。

にこれを追加してください.vimrc

map <C-a> <esc>ggVG<CR>

それは持っている<esc>ユーザーが通常モードであることを確認するために、最初に。


2
まさに私が探していたものであり、Ctrl + Aがデフォルトでvimで占有されていないことを見るのは素晴らしいことです。副作用がないことを願っています。
ニコスアレクサン

2
私は個人的に使用していますggVGgg0vG$、「通常の」Ctrl + A操作をより厳密に複製するため、より適切かもしれません。
Sheharyar

39

cat fileブラウザに貼り付ける必要がある場合は、出力を使用して選択し、コピーして貼り付けることができます。

viの場合、これはすべてのテキストを選択して新しいファイルに書き込む方法です。

shift v  -- visual mode
shift g -- jump to eof
"*y -- yank select text
:e my_new_file -- create a new file
"*p -- paste into a new file

理論的には、これはLinuxとWindowsの両方で動作するはずです-Macで試しましたが、動作しません。


1
Webブラウザーに貼り付けるのcat fileが方法です。このshift vメソッドは、Viの内部バッファーにのみコピーします。
アレクサンドルレフチュク

*レジストリを使用するシステムクリップボードを使用する場合ではありませんが、これはXでのみ機能し、Windowsで聞こえます。したがって、sshの場合は-Xが必要です。 =名前

新しいファイルを作成せずにこれを行う代替方法はありますか?サーバーでライブ編集している場合、元に戻すことができるように、ローカルマシンにバックアップコードを保持する必要があります。
-NJInamdar

猫の場合は+1、パテで選択します。もちろん、巨大なファイルでは機能せず、最もユーザーフレンドリーな方法ではありません。ただし、画面のビューポートの外にある小さなスクリプトファイルをコピーするには十分です。
アーニスジュラガ

16

ggVGを使用します。「gg」と入力してテストの先頭に移動し、次にVGと入力します。


8

CentOS-7環境でVim 7.4を使用しています。すべてのテキストを選択するのに役立ちました

:%y

次にp、完全なコピーが必要な次のファイルだけで。

または

catコマンドを使用できます。

cat copyfile > pastefile

このgitリポジトリには他にも便利なコマンドがいくつかあります。


7

gg"+yG

または

gg"*yG

+または*がシステムクリップボードかどうかによって異なります。(多くのUNIXでは、+は中マウスクリック用のマウス選択バッファーであり、*はシステムクリップボードです)。


1
私はそれが他の方法だと思う:「*は選択であり、「+はクリップボードです。vimdoc.sourceforge.net/htmldoc/gui_x11.html#x11-selection
Mikel

あなたが正しい。私もそれを知っていましたが、間違ったことをタイプしました。☹
frabjous

3

Macの場合、pbcopy(ペーストボードコピー)を使用します。

cat file.txt | pbcopy

file.txtの内容は、別のアプリケーション(ブラウザーなど)に貼り付けるためにクリップボードに保存されます。

pbpasteを使用して、クリップボードの内容をファイルに貼り付けることもできます。

pbpaste > file.txt

これには特にviは含まれませんが、Macでも同じ目標を達成します。


1

Linuxデスクトップを使用している場合は、xclipまたはxselを使用してクリップボードに読み込むことができます。そのようなサイズの場合は、Googleドキュメントのアップロード機能を使用するだけです。


1

別の方法は次のとおりです。

あなたは押しvキーボードのキーをし、VISUALにVIMを回します

次に、下にスクロールしてすべてのテキストを選択します

^+ INSERTコピーする

SHIFT+ INSERTを使用して、Googleドキュメントの任意の場所にテキストを貼り付けます。



0

これを行う方法のオプションについては、http://vim.wikia.com/wiki/Accessing_the_system_clipboardを参照してください。( "*でコンパイルされている場合は、システムのクリップボードを参照する必要があります。)また、vimでxselを使用する方法についての指示もあります。


「*は選択されたもの、「+」はコピーされたものです。vimdoc.sourceforge.net/htmldoc/gui_x11.html#x11-selection
Mikel

0

次のコマンドを使用します。

cat <your file name>

ファイルの内容をエコーし​​ます。選択、スクロール、コピー、貼り付けを行います。
ゲームオーバー

例:

cat bobis.txt
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.