vim: Как объединить открытые / закрытые скобки без пробелов

Я немного озадачен форматированием фигурных скобок. Предположим, у меня есть следующий текст:

[
(
{
text
}
)
]

Чтобы объединить все строки, я нажал JJJ... и я получил:

[ ( { text }) ]

Это нормальное поведение? Почему Vim не присоединяется ( без пробелов, тогда как он подавляет пустое пространство для )?

2 ответа

Решение

От :help J (прокрутите немного вниз или немного вверх от :help replacing):

These commands, except "gJ", insert one space in place of the <EOL> unless
there is trailing white space or the next line starts with a ')'.  These
commands, except "gJ", delete any leading white space on the next line.

Я не уверен, почему это работает таким образом - возможно, это удобно для редактирования C - но это хорошо задокументировано.

Ты должен нажать gJ вместо J

:h gJ

и есть :join команда. вам нужно прочитать :h join

по вашему требованию вы можете:

:%j!

или сначала выберите строки, затем::'<,'>j! (vim автоматически заполнит диапазон '<,'>)

Другие вопросы по тегам