web-dev-qa-db-ja.com

テキストのブロックを外部ソースからviエディターに貼り付ける最も簡単な方法

たとえば、構成セクションをWebページからコピーして、viで開いている.confファイルに貼り付けます。

11
asfsadf

または、システムレジスタを使用する場合は、挿入モードにせずに貼り付けることができます。

"*p

これにより、システムのクリップボードがカーソルの位置に貼り付けられます。挿入モードは必要ありません。

15
Jordan Parmer
  1. 挿入モードに入ります(タイプ i
  2. タイプ: CtrlShiftv
16
RationalPi

本当の答え:

  1. :set paste

  2. 挿入モードに入る:ヒット i

  3. ペースト: Commandv または Controlv

  4. ESC

  5. :set nopaste

14
Arian Faurtosh

覚えておくべき1つのこと:Vimがテキストを自動インデントすることがあります。これはほとんど問題ありませんが、ドキュメントに貼り付けるテキストを台無しにすることがあります。

インデントに問題がある場合は、貼り付けたテキストを削除して:set pasteと入力し、テキストをもう一度貼り付けます。完了したら、:set nopasteと入力します。

11
matt

最も簡単な方法は、テキストをコピーして、Vimで貼り付ける場所を右クリックするだけです[〜#〜] insert [〜#〜]モード。

5
Barth

gVim を使用している場合は、 CtrlR そしてどちらか * または + 挿入モードで。最後にコピーしたテキストを貼り付けます。

1
Benoit

最も簡単な方法は、システムが使用する貼り付けキーを使用して貼り付けることです(例: ⌘-v Macの場合、 Ctrl-V 挿入モードのWindowsなど)。

一部の端末では使用が必要です Shift-Ctrl-V。ただし、コマンドラインに貼り付けることができるのは、Vimに貼り付ける方法です。ただし、これにより、:set pasteが入るインデントでいくつかの問題が発生する可能性があります。これに出入りする最も速い方法は、ペーストトグルを設定することです(:help pastetoggleを参照)。たとえば、私は

set pastetoggle=<leader>p

マッピングの代わりにpastetoggleを使用する理由は、マッピング挿入モードを設定すると、貼り付けモードのときに文字通り読み取られるためです。したがって、:set pasteの場合、挿入モードに入り、imapを入力すると、マッピングは完了しませんが、代わりにリテラル文字が挿入されます。 pastetoggleを使用すると、組み込み機能であるため、これを回避できます。

他の人が言っているように、挿入モードの場合は<C-r>*を使用することもできますが、なぜですか?通常の貼り付けフローの方がおそらく優れています。ただし、*レジスタと<C-r>を理解することは重要なスキルです。詳細については、:help registersおよび:help i_CTRL-Rをご覧ください。 "*pを使用することもできますが、通常の貼り付けよりも入力が速い場合は感心します。

もちろん、それを他の何かにマッピングすることもできますが、もう一度...なぜですか?正確にできるように、i, I, a, A, o, O, s, S, c, and Cを使用して挿入モードにすばやく入ることに慣れておく必要があります。

0
Conner

Ctrl-V/Apple-V? vi(i)で挿入モードになっていることを確認してください

0
Tyler Eaves

Insertモードでシステムの貼り付けショートカットキーを使用するか、ソースが別のファイルにある場合は、:r <fileName>と入力すると、に貼り付けられます。カーソルの現在の場所。

0
Ronnie Howell

* nixで最も簡単な方法は、viを挿入モードにした後、マウスで選択し、中クリックでVimに貼り付けることです。

タッチパッドを使用している場合は、中央のクリックが左右両方のキーになる可能性があります。

0
Metiu