Несмотря на то , что вопрос довольно старый и помечено как ответили, я хотел бы расширить ответ, говоря , что вы можете использовать обычные команды режима, которые были предоставлены 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
.