gJ
Сочетание делает это; от :help gJ
:
Соедините [количество] строк, как минимум, из двух строк. Не вставляйте и не удаляйте пробелы.
Вы можете привязать его к J
, если хотите сохранить нажатие клавиши:
:nnoremap J gJ
Обратите внимание, что это не удаляет пробелы, поэтому, если текущая строка заканчивается пробелом или следующая строка начинается с одного или нескольких пробелов, они останутся как есть .
Так:
Hello
world
становится:
Hello world
Мы могли бы использовать Jx
в этом случае, тогда это будет Helloworld
, но это не будет работать во всех случаях; из справки:
Соедините выделенные строки, как минимум, двумя строками. Удалить отступ и вставить до двух пробелов
[...]
Эти команды, за исключением "gJ", вставляют один пробел вместо конечного пробела или следующая строка начинается с ')'.
Так что в некоторых случаях вставляется более одного пробела или нет пробела. Насколько я понимаю, нет простого способа изменить это поведение; Я создал функцию для изменения, gJ
чтобы всегда соединяться без пробелов:
" Like gJ, but always remove spaces
fun! JoinSpaceless()
execute 'normal gJ'
" Character under cursor is whitespace?
if matchstr(getline('.'), '\%' . col('.') . 'c.') =~ '\s'
" When remove it!
execute 'normal dw'
endif
endfun
" Map it to a key
nnoremap <Leader>J :call JoinSpaceless()<CR>
Смотрите также: :help J
,:help 'joinspaces'