Obecnie mam dwie podobne metody, aby zastąpić cały bufor innym tekstem (powiedzmy w schowku).
Metoda nr 1:
usunąć wszystkie wiersze:
:%d
.wklej tekst: "+P(lub podobny:)
:put+
.
Metoda nr 2:
wizualnie zaznaczyć wszystkie wiersze: ggVG.
wklej tekst: "+P.
Jednak nie mogłem znaleźć sposobu, aby to zrobić jednym poleceniem. Najbliższym z nich jest :change
polecenie. Ale wydaje się, że nie działa dobrze z rejestrami. Oczywiście mogę stworzyć jakąś funkcję i / lub zmapować klucz, aby to zrobić. Ale zanim będę mógł dokonać wszystkich tych dostosowań, chcę się upewnić:
Czy jest jakieś wbudowane polecenie zastępujące zakres wierszy innym tekstem? Czy możesz
:%replace+
zastąpić cały bufor tekstem w schowku?
cut-copy-paste
buffers
replace
Naitree
źródło
źródło
1,$s/\_./\=@+
nie jest rozwiązaniem: P:%d|put+
jest bliżej, ale nie do końca.1,$s/\_.*/\=@+
, która\_.
pasuje do dowolnej postaci, w tym nowej linii.:%d|put+
pasuje do rachunku. Jest krótki i niezapomniany. Drugie polecenie jest po prostu zbyt tajemnicze, aby poprawnie zapamiętać i wpisać.Odpowiedzi:
Możesz zrobić,
ggvG<CTRL-G>
aby wizualnie wybrać cały bufor i wejśćSelect-mode
. Jest to najprostszy sposób na zastąpienie bufora tekstem, który planujesz wpisać. Być może będziesz w stanie wykonaćSelect-mode
mapowanie,:smap
które rozwiąże twój problem.źródło
Jednym ze sposobów zastąpienia całego bufora schowkiem może być polecenie zewnętrzne, na przykład:
Zobacz także: Udostępnianie schowka w systemie Mac OS X.
Lub za pomocą podstawienia:
Alternatywnie użyj
:%d|put+
(jak już sugerowano w komentarzach).źródło