Jakie jest polecenie (lub skrót), aby przesunąć linię w górę lub w dół w vimie? Mój obecny obieg pracy polega na szarpaniu (kopiowaniu) linii i usuwaniu tej linii, a następnie wstawianiu (wklejaniu) tej linii.
47
Jakie jest polecenie (lub skrót), aby przesunąć linię w górę lub w dół w vimie? Mój obecny obieg pracy polega na szarpaniu (kopiowaniu) linii i usuwaniu tej linii, a następnie wstawianiu (wklejaniu) tej linii.
ddkP
, przesunięcie w dół jest łatwiejsze:ddp
.Odpowiedzi:
Po pierwsze, nie musisz szarpać i usuwać; ten drugi umieści również usuniętą zawartość w rejestrze (domyślnym lub określonym). Dlatego
ddp
/ddkP
są typowymi poleceniami do przesuwania linii o jeden w dół / w górę.Alternatywnie możesz użyć
:move
polecenia, tj.:move +1
/:move -2
; nie blokuje to rejestru, a także można przenosić całe zakresy. Możesz łatwo zdefiniować kluczowe odwzorowania, aby to skrócić.Jeśli nie masz nic przeciwko wtyczkom (i dodatkowemu komfortowi, który często się z nimi wiąże), zarówno nienaruszona wtyczka Tima Pope'a, jak i moja wtyczka LineJuggler zapewniają
]e
/ mapują[e
ruchy linii (i kilka innych; Tim do różnych zastosowań, mój koncentruje się na obsłudze linie)).źródło
Najłatwiej jest:
:m+
lub:m-2
który jest skrótem,:move
jak sugeruje Ingo.Lub używając trybu wizualnego ( V), przecinając linię ( d/ x), a następnie wklej ją ( p- pod kursorem, Pnad kursorem) po przesunięciu kursora we właściwe miejsce przed wklejeniem (tak w skrócie to Vxp/ Vdp).
Przenosząc wiele linii w trybie wizualnym, musisz użyć
:m '>+1
(aby przesunąć jedną linię w dół) lub:m '<-2
(aby przesunąć jedną linię w górę).Oto przykładowe przydatne mapowanie ( Shift+ ↑/ Shift+↓):
który jest podobny do Sublime Text ( Win / OSX ).
Oto kilka sugestii na vim wiki :
Zobacz też:
źródło
Jeśli chcę zamienić jedną linię z linią powyżej, zwykle wykonuję następujące czynności
Wyjaśnienie
źródło
ddp
FWIW, oto, czego używałem od lat. Przesuwa bieżącą linię w górę i w dół w trybie normalnym lub wybór w trybie wizualnym, automatycznie dostosowując wcięcie.
źródło