Jak skopiować yankowany tekst do wiersza poleceń VI

118

Chcę wiedzieć, czy jest jakiś sposób, w jaki mogę wkleić szarpany tekst do okna poleceń. Na przykład, jeśli wyszarpnąłem słowo i chcę je grepować w jakimś miejscu, nie mogę po prostu wkleić słowa za pomocą „p”. Jeśli jednak skopiuję go do schowka, Shift-Insert wklei to samo.

Czy są dostępne jakieś poprawki, które pozwoliłyby mi wkleić szarpany tekst do wiersza poleceń vim?

Używam programu gvim w systemie Windows.

Canopus
źródło

Odpowiedzi:

174

Spróbuj użyć

<ctrl+r>"

gdzie „oznacza rejestr domyślny.

Mykoła Golubyev
źródło
7
Zauważ, że działa to również w normalnym trybie wstawiania, nie tylko w wierszu poleceń.
user55400
25
Jeśli użyjesz *zamiast ", otrzymasz zamiast tego zawartość schowka systemowego (co może być przydatne).
dash-tom-bang
40

<C-R>"Wklei domyślny bufor. Alternatywnie możesz użyć q:do otwarcia bufora dla następnego polecenia. próbować:help q:

soulmerge
źródło
10
O cholera, q:jest niesamowite
Hubro
19
  • upewnij się, że jesteś w trybie normalnym, naciskając Esc
  • raz w trybie normalnym naciśnij :
  • następnie użyj kombinacji klawiszy ctrl-ri wpisz"

Uwaga: jeśli szarpiesz pełną linię zawierającą względną ścieżkę pliku, nowy wiersz również zostanie wklejony ... tj :! touch src/bash/script.sh^M

Stworzy "zabawną ścieżkę do pliku" zawierającą znak "\ r", jeśli nie usuniesz ostatniego ^M...

Wieża
źródło
13

Aby zaoszczędzić sobie kroku szarpania, jeśli kursor znajduje się na słowie, którego chcesz użyć w Ex, użyj:

 <ctl-r><ctl-w>

Pozwala to uniknąć szarpania w celu wklejenia do wiersza poleceń; zamiast tego wkleja się słowo pod kursorem bezpośrednio do wiersza poleceń. Na przykład:

:%s/<ctl-r><ctl-w>/foo/g
gregory
źródło
5

Jeśli jest to tylko słowo, które chcesz skopiować, możesz użyć <C-r><C-w>

  1. Umieść kursor na słowie
  2. Następnie możesz wpisać coś w stylu :vim <C-r><C-w> *
SysCoder
źródło
3

Możesz szarpnąć do schowka za pomocą *nazwanego bufora. Na przykład spowoduje to skopiowanie bieżącej linii do schowka:

"*yy

Możesz więc skopiować linię za pomocą tego, a następnie wkleić ją za pomocą shift-insert w linii poleceń.

Podobnie możesz wkleić ze schowka w następujący sposób:

"*p
Nathan Fellman
źródło
2

Schowek +, przynajmniej na Macu. Więc piszesz, "+yyaby przeciągnąć linię do schowka i "+pwkleić. Chociaż zawsze możesz użyć Command-C i Command-V.

ABC
źródło