Jak mogę usunąć linię bez umieszczania jej w domyślnym buforze?
Przykład:
line that will be copied.
line that I want to be substitued with the previous one.
Co próbuję zrobić:
yy
dd
p
Ale Vim zastępuje ostatnio skopiowany napis tym usuniętym (obciętym). Wiem, że można używać bufory podobnych "1yy
, dd
potem "1p
, ale ja zawsze zapomnij umieścić skopiowany ciąg w buforze potem muszę wkleić moje zawartość pierwsza (linii, które zostaną skopiowane), a następnie usunąć to, co chcę (wiersz, który chcę do zastąpienia poprzednim).
Jak naprawdę usunąć tekst w Vi (m) bez kopiowania go?
Innym pokrewnym pytaniem jest to, jak mogę dalej usunąć słowo w trybie wstawiania? Chcę czegoś podobnego do Ctrl+ w.
vim
copy-paste
MaikoID
źródło
źródło
Odpowiedzi:
Użyj „czarnej dziury register”,
"_
aby naprawdę coś usunąć:"_d
.Użyj,
"_dP
aby wkleić coś i zachować dostępność do dalszego wklejania.W przypadku drugiego pytania możesz użyć
<C-o>dw
.<C-o>
służy do wykonywania zwykłych poleceń bez wychodzenia z trybu wstawiania .Oczywiście możesz skonfigurować własne mapowania, aby zapisać wpisywanie. Mam te:
źródło
d
nadal "tnie" ip
nadal "wkleja", podczas gdy<leader>d
kasuje na poważnie i<leader>p
wyrzuca zaznaczony tekst i wkleja zawartość domyślnego rejestru.<leader>p
umożliwia mi wielokrotne wklejanie tego samego tekstu bez konieczności używania nazwanych rejestrów.Czarna dziura rejestr
"_
rade, ale jest lepsze rozwiązanie:Po wejściu do wiersza z powrotem za pomocą
p
polecenia wklejasz zawartość (ulotnego) rejestru domyślnego""
, który został nadpisany przezdd
. Ale nadal możesz wkleić z (nieulotnego) rejestru yank"0
, który nie zostanie nadpisany przez polecenie deletedd
.Oto polecenia, których chcesz użyć zgodnie z przykładem:
źródło
To jedna z rzeczy, których nie lubiłem w vimie ... Skończyło się na mapowaniu
dd
do rejestru czarnej dziury w moim .vimrc i życie toczy się dobrze, odkąd:źródło
v/V
zx
jest również wycięty. Cięcie za pomocąx
jest również spójne zCtrl + x
każdym systemem operacyjnym.następujące mapowania dadzą:
Ponadto dobrym sposobem jest ustawienie klucza „lidera” na przecinek, np .:
te 2 fragmenty spowodują, że ", d" będzie twoim nowym poleceniem cięcia.
Jeśli chcesz używać tych mapowań razem ze wspólną konfiguracją schowka systemowego, zapoznaj się z dalszymi szczegółami pod adresem https://github.com/pazams/d-is-for-delete
źródło
yydd
co było trochę nie do utrzymania na palcach;-)
.,dd
. Po dodaniunnoremap <leader>dd ""dd
zaczął działaćMożesz użyć,
"_d
aby zapobiec nadpisywaniu szarpanego tekstu. Możesz przechowywać szarpany lub usunięty tekst w dowolnym rejestrze, w którym chcesz"
, i_
jest to rejestr `` czarnej dziury '', w którym wysyłasz rzeczy, które Cię nie interesują.Aby uzyskać więcej informacji, wpisz
:help "_
lub:help deleting
źródło
W trybie wizualnym
x
usunie zaznaczenie, więc jeśli chcesz usunąć całą linię, najpierw naciśnij,V
aby wybrać linię w trybie wizualnym, a następnie naciśnij,x
aby usunąć zaznaczenie.źródło