Несмотря на то , что вопрос довольно старый и помечено как ответили, я хотел бы расширить ответ, говоря , что вы можете использовать обычные команды режима, которые были предоставлены Sven Marnach с nnoremapпримерно так:
:nnoremap <C-Up> <Up>ddp<Up>
:nnoremap <C-Down> ddp
Это позволит вам перемещать строки с помощью Ctrl+ Upи Ctrl+ Downвнутри вашего файла. Однако это перезапишет @"регистр, в котором хранится ваша последняя скопированная строка / слово / буква / и т. Д. Итак, добавив "(reg) перед ddи pкоманды, мы можем исправить это:
:nnoremap <C-Up> <Up>"add"ap<Up>
:nnoremap <C-Down> "add"ap
Здесь мы добавляем "aперед удалением и вставкой команды для сохранения нашей строки в @aрегистре, поэтому ваш регистр копирования по умолчанию не будет перезаписан. Однако он может перезаписать содержимое @aрегистра (кто знает, но вы можете использовать его для чего-то важного в вашем случае использования, но этот шаг немного параноидален, вы можете пропустить его, если хотите), давайте исправим и это:
: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>необходимо для предотвращения вывода наших команд в строку сообщений внизу.)
Теперь у нас есть два сопоставления, которые позволяют нам перемещать строки в файле с помощью сочетаний клавиш. Вы можете переопределить кнопки, я использую Alt+ j/ k, который был бы <A-j>и <A-k>для этих команд. Однако не все эмуляторы терминала поддерживают сопоставление клавиш Alt AFAIK.
git config --global core.editor <whatever>или сразу для многих (включая git), включивexport EDITOR=<whatever>в свой.bashrc.