Cara menyalin teks yang ditarik ke prompt perintah VI

118

Saya ingin tahu apakah ada cara untuk menempelkan teks yang ditarik ke jendela perintah. Misalnya jika saya telah menarik sebuah kata dan saya ingin grep di beberapa lokasi, saya tidak bisa begitu saja menempelkan kata tersebut menggunakan 'p'. Namun jika saya menyalinnya ke clipboard, Shift-Insert akan menempelkan hal yang sama.

Apakah ada tweak yang tersedia yang memungkinkan saya untuk menempelkan teks yang ditarik ke prompt perintah vim?

Saya menggunakan gvim di Windows.

Canopus
sumber

Jawaban:

174

coba gunakan

<ctrl+r>"

dimana "singkatan dari register default.

Mykola Golubyev
sumber
7
Perhatikan bahwa ini juga berfungsi dalam mode penyisipan normal, tidak hanya pada baris perintah.
pengguna55400
25
Jika Anda menggunakan *alih-alih ", Anda akan mendapatkan konten papan klip sistem sebagai gantinya (yang mungkin berguna).
dash-tom-bang
40

<C-R>"Akan menempelkan buffer default. Bergantian, Anda dapat menggunakan q:untuk membuka buffer untuk perintah berikutnya. mencoba:help q:

Soulmerge
sumber
10
q:
Sialan
19
  • pastikan terlebih dahulu Anda berada dalam mode normal dengan menekan Esc
  • sekali dalam mode normal, tekan :
  • lalu gunakan kombinasi keyboard ctrl-r, lalu ketik"

Catatan: jika Anda menarik baris penuh yang berisi jalur file relatif, umpan baris juga akan ditempelkan ... yaitu :! touch src/bash/script.sh^M

AKAN membuat "jalur file lucu" yang berisi "\ r" jika Anda tidak menghapus ^M...

Benteng
sumber
13

Untuk menghemat langkah menarik Anda, jika kursor Anda berada pada kata yang ingin Anda gunakan di Ex, gunakan:

 <ctl-r><ctl-w>

Ini menghindari penarikan untuk menempel ke baris perintah; sebagai gantinya, seseorang menempelkan kata di bawah kursor langsung ke baris perintah. Misalnya:

:%s/<ctl-r><ctl-w>/foo/g
gregory
sumber
5

Jika hanya kata yang ingin Anda salin, Anda dapat menggunakan <C-r><C-w>

  1. Arahkan kursor ke kata tersebut
  2. Kemudian Anda dapat mengetik sesuatu seperti :vim <C-r><C-w> *
SysCoder
sumber
3

Anda dapat menarik ke clipboard menggunakan *buffer bernama. Misalnya, ini akan menyalin baris saat ini ke clipboard:

"*yy

Jadi Anda dapat menyalin baris menggunakan ini, lalu menempelkannya dengan shift-insert di baris perintah.

Demikian pula, Anda dapat menempelkan dari papan klip seperti ini:

"*p
Nathan Fellman
sumber
2

Papan klip +, setidaknya di Mac. Jadi Anda akan menulis "+yyuntuk menarik garis ke papan klip, dan "+pmenempelkannya. Meskipun Anda selalu bisa menggunakan Command-C dan Command-V.

ABC
sumber