Mặc dù thực tế rằng vấn đề là khá cũ và được đánh dấu là đã trả lời, tôi muốn mở rộng câu trả lời bằng cách nói rằng bạn có thể sử dụng các lệnh chế độ bình thường, được cung cấp bởi Sven Marnach với nnoremapnhư vậy:
:nnoremap <C-Up> <Up>ddp<Up>
:nnoremap <C-Down> ddp
Điều này sẽ cho phép bạn di chuyển các dòng có Ctrl+ Upvà Ctrl+ Downtrong tệp của bạn. Tuy nhiên, điều này sẽ ghi đè lên @"thanh ghi , nơi lưu trữ chuỗi / từ / chữ cái / vv được sao chép cuối cùng của bạn. Vì vậy, bằng cách thêm "(reg) vào trước ddvà pcác lệnh, chúng ta có thể sửa lỗi này:
:nnoremap <C-Up> <Up>"add"ap<Up>
:nnoremap <C-Down> "add"ap
Ở đây chúng tôi thêm "atrước khi xóa và dán các lệnh để lưu trữ dòng của chúng tôi trong @athanh ghi, vì vậy thanh ghi sao chép mặc định của bạn sẽ không bị ghi đè. Tuy nhiên, nó có thể ghi đè lên nội dung của @athanh ghi (ai biết được, nhưng bạn có thể sử dụng nó cho một việc quan trọng trong trường hợp sử dụng của mình, nhưng bước này hơi hoang tưởng, bạn có thể bỏ qua nếu muốn), hãy khắc phục điều đó:
: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>cần thiết để ngăn lặp lại các lệnh của chúng tôi tới dòng thông báo ở dưới cùng.)
Bây giờ chúng ta có hai ánh xạ cho phép chúng ta di chuyển các dòng trong tệp bằng các phím tắt. Bạn có thể xác định lại các nút, tôi sử dụng Alt+ j/ k, sẽ là <A-j>và <A-k>cho các lệnh đó. Tuy nhiên, không phải tất cả các trình giả lập đầu cuối đều hỗ trợ ánh xạ phím Alt AFAIK.
git config --global core.editor <whatever>hoặc cho nhiều thứ cùng một lúc (bao gồm cả git) bằng cách đưaexport EDITOR=<whatever>vào của bạn.bashrc.