Поговорим об относительных мерах. Мой Vim выглядит так:
aaaaaaaaaaaaa
bbbbbbbbbbbbb
ccccccccccccc
etc
Хотелось бы, чтобы было меньше:
aaaaa
aaaaa
bbbbb
bbbbb
ccccc
ccccc
etc
Как я могу это получить? А как мне управлять настройкой длины такого блока?
vim
indentation
Лео Леопольд Герц 준영
источник
источник
Ответы:
На самом деле вы можете сделать две вещи:
Какой ты хочешь?
Вариант 1 будет достигнут путем установки
textwidth
(например:set textwidth=30
(из ответа Swaarop)). Затем вы можете переформатировать текст, выделив его (в визуальном режиме) и набравgq
. (textwidth
может быть сокращено какtw
, таким образом:set tw=30
.)Вариант 2 можно переключить, запустив
:set wrap
/:set nowrap
. Это приведет к переносу строк, которые слишком длинные для окна.Оба независимы.
источник
fold
команду, как в ответе fgm.wrap
будет переноситься на границе окна, а не наtextwidth
.После установки «textwidth» вы можете выделить текст в визуальном режиме и нажать gq, чтобы красиво обернуть его (вы также можете использовать Q в некоторых старых / устаревших конфигурациях).
Несколько полезных советов:
источник
gqq
также переносит текущую строку (вместоgqgq
илиgq$
).Использование fold (1) - это одна из возможностей:
Результат:
источник
источник
textwidth
не справится с ситуацией без пробелов. Для этого вы можете написать свою собственнуюformatexpr
функцию.Если у вас есть текст без пробелов, который вы хотите разбить на определенную длину, нет необходимости использовать внешний
fold
или писать свой собственныйformatexpr
.:%s/\(.\{80\}\)/\1\r/g
разбивает все строки на 80 символов.
источник