Pomimo tego, że pytanie jest dość stare i oznaczone jako udzielone, chciałbym rozszerzyć odpowiedź, mówiąc, że możesz użyć poleceń trybu normalnego, które zostały dostarczone przez Svena Marnacha w następujący nnoremap
sposób:
:nnoremap <C-Up> <Up>ddp<Up>
:nnoremap <C-Down> ddp
Umożliwi to przenoszenie linii za pomocą Ctrl+ Upi Ctrl+ Downw pliku. Jednak spowoduje to nadpisanie @"
rejestru, który przechowuje ostatnio skopiowany ciąg / słowo / literę / itd. Więc dodając komendy „(reg) przed dd
i p
, możemy to naprawić:
:nnoremap <C-Up> <Up>"add"ap<Up>
:nnoremap <C-Down> "add"ap
Tutaj dodajemy "a
przed usunięciem i wklejaniem poleceń, aby zapisać naszą linię w @a
rejestrze, więc domyślny rejestr kopii nie zostanie nadpisany. Jednak może nadpisać zawartość @a
rejestru (kto wie, ale możesz go użyć do czegoś ważnego w swoim przypadku użycia, ale ten krok jest nieco paranoiczny, możesz go pominąć, jeśli chcesz), naprawmy to również:
:nnoremap <silent><C-Up> :let save_a=@a<Cr><Up>"add"ap<Up>:let @a=save_a<Cr>
:nnoremap <silent><C-Down> :let save_a=@a<Cr>"add"ap:let @a=save_a<Cr>
( <silent>
potrzebne, aby zapobiec wyświetlaniu naszych poleceń w wierszu komunikatów na dole).
Teraz mamy dwa mapowania, które pozwalają nam przesuwać linie w pliku za pomocą skrótów klawiaturowych. Możesz przedefiniować przyciski, ja używam Alt+ j/ k, które byłyby <A-j>
i <A-k>
dla tych poleceń. Jednak nie wszystkie emulatory terminali obsługują odwzorowania klawiszy Alt AFAIK.
git config --global core.editor <whatever>
, albo do wielu rzeczy na raz (w tym git), włączającexport EDITOR=<whatever>
w twojej.bashrc
.