Как я могу автоматически обернуть строки в VSCode? Под этим я подразумеваю, что если строка достигает указанного столбца, автоматически вставлять новую строку на границе слова, ближайшей к этому столбцу, без перехода. В Vim есть параметр textwidth, который делает это, и мне нравится использовать его при редактировании Markdown. Насколько я могу судить, это не похоже на VSCode. Просто у него есть способы контролировать мягкую упаковку.
Автоматически переносить строки в столбец в VSCode
Ответы (6)
VSCode не поддерживает это из коробки. Но вы можете установить расширение Rewrap
, которое позволяет вам форматировать блок, в котором находится ваш курсор, нажав Alt + Q.
Rewrap
не требует дополнительных настроек, так как он считывает настройки VSCode, чтобы получить столбец, в котором нужно прервать работу.
Rewrap
также поддерживает автоматическое обертывание (по умолчанию отключено): https://github.com/stkb/Rewrap/wiki/Auto-wrap
К сожалению, в VSCode пока нет этой функции. Но мы все еще можем сделать его максимально приближенным к красивой функции vim автоматического переноса слов.
Первый шаг
Нам нужно настроить функцию мягкого переноса слов в VSCode.
- Откройте настройки VSCode через
Code => Preferences => Settings
. Добавьте эти 3 строки настроек редактора.
"editor.wordWrap": "wordWrapColumn", "editor.wrappingIndent": "same", "editor.wordWrapColumn": n
Не забудьте изменить (n) на желаемую длину строки столбцов. Мне удобнее ставить 60.
Сохраните эту настройку.
Основная цель этого первого шага - заставить нас чувствовать себя более комфортно при вводе текста, потому что нам не нужно вручную вводить Enter и видеть длинную строку текста.
Второй шаг
Нам нужно установить эмуляцию Vim для VSCode и установить vim textwidth
.
- Установите эмуляцию Vim через расширения VSCode.
- Откройте настройки VSCode через
Code => Preferences => Settings
. Добавьте эту строку настройки vim.
"vim.textwidth": n,
Не забудьте изменить (n) на желаемую длину строки столбцов. Для меня я сделаю то же самое, что и (n) на первом шаге.
Сохраните эту настройку.
Фактическое использование
Когда вы закончите писать весь документ, вы можете отформатировать его таким образом, чтобы он выглядел как строки с жестким переносом.
- Заблокируйте весь текст, используя визуальный линейный режим (Shift + v)
- Введите gq.
Теперь VSCode поддерживает автоматическое обертывание из коробки.
Настройки -> Текстовый редактор -> Последние 3 параметра (как на сегодня) предназначены для автоматической упаковки.
- Перенос по словам (управляет переносом строк)
- Столбец переноса слов (управляет столбцом переноса текста в редакторе)
- Отступ при переносе (управляет отступом переносимых строк)
По умолчанию Word Wrap отключен.
Комментарии в твердой оболочке
Используйте расширение Rewrap.
Код мягкой упаковки
Добавьте следующий параметр (замените ширину столбца на свое предпочтение): "editor.wordWrapColumn": 100
Затем добавьте "editor.wordWrap": "wordWrapColumn"
(перенос на столбец) или "editor.wordWrap": "bounded"
(перенос на столбец или область просмотра).
Комментарии и код мягкой упаковки
К сожалению, настройки расширения и VSCode не работают должным образом.
Не стесняйтесь проголосовать за этот запрос функции.
По состоянию на 2020 год и если вы используете плагин Prettier - Code formatter
:
Go to Plugins -> Find Prettier -> Cog -> Extension Settings -> Prettier: Print Width Fit code within this line limit
и установите все, что хотите. По умолчанию 80.
Когда вы сохраните файл, Prettier отформатирует его автоматически.
proseWrap
в always
(по умолчанию preserve
).
- person Max Ivanov; 23.10.2020
В настоящее время есть открытый запрос для этого в трекере VS Code Issue на GitHub, Вы можете найти его здесь