Wiele razy w vimie chciałbym całkowicie usunąć linię, więc używam dd. Muszę jednak wkleić tę linię do innej pozycji w linii, ale wstawia ona nową linię przed wklejeniem, co bardzo utrudnia uzyskanie pożądanego rezultatu. Na przykład,
while( pasteInHere )
{
cin >> n; // Delete this line completely with dd
}
kiedy robię to z powyższym kodem, otrzymuję:
while( pasteInHere )
cin >> n; // Delete this line completely with dd
{
}
co jest bardzo dalekie od wyniku, który chcę ... jak mogę ukryć to zachowanie nowego wiersza lub użyć innej metody, która robi to bardzo skutecznie? Nie sądzę, aby d $ było dobre, ponieważ nie tylko muszę przejść do początku linii, ale jeśli chcę również usunąć pustą linię, muszę ją usunąć w innym rejestrze, uważam, że powinien istnieć łatwiejszy sposób! Dzięki.
0D
usuń linię oprócz podziału linii. I niżgJ
łączyć linie. Teraz możesz umieścić tekst bez linii podziału i bez pustej linii.Odpowiedzi:
Możesz przejść w dowolnym miejscu linii powyżej linii, którą chcesz usunąć, a następnie naciśnij
JD
i wklej jąp
w żądanym punkcie.J
łączy dwie linie i przenosi cię na początku tekstu, który chcesz usunąć. Spowoduje to usunięcie znaku nowej linii i wcięcia linii, którą chcesz przenieść.D
usuwa z bieżącej pozycji kursora do końca linii, ale zachowuje znak nowej linii.Podpowiedź: Możesz użyć
:pu
jeśli usunięte zD
lub z szarpnięciemy$
i wklejony z nowej linii.źródło
Nie jest to naprawdę prostsze, ale nieco bardziej wydajne, można także tworzyć mapy w trybie normalnym dla obu sekwencji:
źródło
Możesz osiągnąć coś, co działa całkiem dobrze z
imap
. Dodaj następujące elementy dovimrc
:Spowoduje to utworzenie mapowania CTRL-a, które wklei ostatnio usunięty tekst (z
dd
lub podobnym). Jeśli wolisz, możesz oczywiście użyć innego klucza do mapowania.Bibliografia:
źródło
To też jest dla mnie trochę, nigdy wcześniej nie myślałem o optymalizacji, ale to mapowanie działa:
dil
jest „Usuń w wierszu”, podobniediw
,di"
itpźródło
Wklej bez nowej linii
Umieść to w swoim pliku .vimrc:
Przykład:
Teraz możesz wpisać,
gp
aby wstawić#D51B3F
po,color:
gdy mój kursor jest:
w trybie normalnym.Jank bez nowej linii
Użyj odpowiedzi Flukusa:
jako akronim usuwania linii wewnętrznej . Pozbywa się to również wiodących wcięć.
źródło
Możesz zaznaczyć tekst, który chcesz skopiować, naciskając,
v
a następnie przenieść go do bufora, naciskając,y
a następnie wklejając go w dowolnym miejscup
. Nie wstawia żadnej nowej linii.źródło