9

В Vim клавиша J соединяет две строки вместе. Существует ли аналогичная встроенная комбинация клавиш для разделения строк с новой строкой (в позиции курсора или аналогичная)?

В качестве альтернативы, какой будет наиболее надежный способ определения комбинации клавиш для этого (в обычном режиме, а не в режиме вставки)?

5 ответов5

10

Нет, для этого нет встроенной команды.

Когда я хочу разделить на <Space> , я делаю r<CR> .

--- РЕДАКТИРОВАТЬ ---

Комментарий @ keith-nicholas напомнил мне об этом вопросе. В то же время я придумал, надеюсь, "универсальный" метод:

function! BreakHere()
    s/^\(\s*\)\(.\{-}\)\(\s*\)\(\%#\)\(\s*\)\(.*\)/\1\2\r\1\4\6
    call histdel("/", -1)
endfunction

nnoremap <key> :<C-u>call BreakHere()<CR>
4

a Введите Esc для разделения справа от курсора или i Введите Esc для разделения слева.

1

Самый простой способ разделить строки в Vim - это команда gq в нормальном режиме (быстро набрать обе буквы в обычном или визуальном режиме):

  • В визуальном режиме он будет разделять все, что выбрано.
  • В обычном режиме вы следуете за gq движением.

Например, gql разделит одну строку на текущую заданную ширину. Чтобы установить ширину разделенных линий, отличную от текущей, вы можете использовать

:set textwidth=<n>

Где n = количество символов, которое вы хотите в строке, например, 10, и когда вы закончите, вернитесь к нормальной ширине.

Получил эту информацию из видео Youtube от Kholidfu, которое показывает, как соединять и разбивать линии в обычном режиме с помощью движения: Vim Tutorial - Join и Split Lines.

1

Вы можете определить свой собственный, используя карту. Чтобы определить z в качестве команды, например:

:map z i<CTRL+m>
0

Вы можете записать макрос:

в обычном режиме введите «q +», чтобы начать запись. нажмите "i", макрос, который вы хотите записать. затем снова нажмите "q", чтобы остановить запись.

чтобы использовать макрос, перейдите в обычный режим и введите «@+ буква».

в моем случае я использовал "b" для использования этого макроса: для записи типа в обычном режиме "qbiq" для использования типа в обычном режиме «@b»

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .