Чи є команда розділити рядки у Vim?


15

У Vim Jключ з'єднує дві лінії. Чи існує схожа, вбудована, комбінація клавіш для розділення рядків новим рядком (у позиції курсору чи подібної)?

Як варіант, що було б найбільш надійним способом визначити комбінацію клавіш для цього (у звичайному режимі, а не вставний режим)?


Відповіді:


16

Ні, для цього немає вбудованої команди.

Коли я хочу поділитися на a <Space>, я роблю r<CR>.

--- редагувати ---

Коментар @ keith-nicholas нагадав мені це питання. FWIW Я придумав "універсальний" метод у той час:

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

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

4
Використовувати r<CR>просто розумно! Дякую!
Марсело

1
це чудово! супер дратівливий збір вставки для вставки рядків
Кіт Ніколас

Я знайшов s<CR>відступи, тоді як r<CR>ні.
токсикс

5

a Enter Escрозділити праворуч від курсору або i Enter Escрозділити ліворуч.


1
Це все. Просто вставте один новий рядок. Крім того, використовуйте r + <return> для заміни символу під курсором на новий рядок. Було б непогано мати команду з однієї літери, але наскільки я знаю, її немає.
Тонні

2

Найпростіший спосіб, який я знайшов для розділення рядків у Vim, - це команда звичайного режиму gq(введіть обидві літери швидкою послідовністю у звичайному чи візуальному режимі):

  • У візуальному режимі він розділить все, що вибрано.
  • У звичайному режимі ви стежите gqза рухом.

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

:set textwidth=<n>

Де n = кількість символів, які ви хочете в рядку, наприклад, 10, і поверніться до звичайної ширини, коли закінчите.

Отримав цю інформацію з відео від Kholidfu на Youtube, що показує, як з'єднати та розділити лінії в звичайному режимі за допомогою руху: Підручник Vim - Lines Join and Split Lines .


1

Ви можете визначити власну за допомогою карти. Щоб визначити z як команду, наприклад:

:map z i<CTRL+m>

0

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

у звичайному режимі введіть "q +", щоб розпочати запис. натисніть "i", макрос, який потрібно записати. потім знову натисніть "q", щоб зупинити запис.

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

у моєму випадку я використовував "b", щоб використовувати цей макрос: для запису типу в звичайному режимі "qbiq", щоб використовувати тип у звичайному режимі "@b"

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.