Есть ли Vim, эквивалентный команде Linux / Unix "fold"? - PullRequest
6 голосов
/ 05 февраля 2009

Я понимаю, что в Vim есть способ скрывать / складывать строки, но мне нужен способ выделить блок текста и сделать обтекание строк Vim столбцом 80 или рядом с ним.

В основном я хочу использовать это в комментариях в ситуациях, когда я добавляю некоторый текст в существующий комментарий, который выдвигает его на 80 символов. Также было бы хорошо, если бы он мог вставить маркер комментария в начале строки, когда он также переносится. Также я бы предпочел, чтобы решение не оборачивало весь файл автоматически, так как у меня есть особое соглашение, которое я использую, когда дело доходит до того, чтобы мой структурированный код имел длину строки 80 символов.

Это в основном для кода Python, но я также заинтересован в изучении общего решения проблемы на случай, если мне придется применять его к другим типам текста.

Ответы [ 2 ]

11 голосов
/ 05 февраля 2009
gq

Управляется параметром textwidth, см. ":help gq" для получения дополнительной информации.

gq будет работать с текущей строкой по умолчанию, но вы можете выделить визуальный блок с помощью Ctrl + V и отформатировать несколько строк / абзацев следующим образом.

gqap выполняет текущий «абзац» текста.

0 голосов
/ 06 февраля 2009

Взгляните на ": help =" и ": help 'equalprg"

:set equalprg=fold

и в обычном режиме == фильтрует текущую строку через внешнюю программу сгиба. Или визуально выберите что-нибудь и нажмите =

...