Автоматически переносить строки в столбец в VSCode

109

Как я могу автоматически переносить строки в VSCode? Под этим я подразумеваю, что если строка достигает указанного столбца, автоматически вставлять новую строку на границе слова, ближайшей к этому столбцу, без перехода. В Vim есть параметр textwidth, который делает это, и мне нравится использовать его при редактировании Markdown. Насколько я могу судить, это не похоже на VSCode. Просто у него есть способы контролировать мягкую упаковку.

Брайан Шленкер
источник
2
Кто-нибудь, пожалуйста, ответьте на это уже!
umayfindurself
Вы блестяще используете это в отношении уценки, я никогда не думал об использовании таких жестких разрывов.
Марк Карпентер-младший,

Ответы:

148

VSCode не поддерживает это из коробки. Но вы можете установить Rewrapрасширение, которое позволяет форматировать блок, в котором в данный момент находится курсор, нажав Alt+ Q.

Rewrap не требует дополнительных настроек, так как он считывает настройки VSCode, чтобы получить столбец, в котором нужно разорвать.

Rewrapтакже поддерживает автоматическое обертывание (по умолчанию отключено): https://github.com/stkb/Rewrap/wiki/Auto-wrap

oli_obk
источник
2
Пометить это как принятый ответ и отредактировать, чтобы упомянуть, что теперь он поддерживает автоматическую перемотку!
Брайан Шленкер
1
Кажется, это только для блочных комментариев? как насчет строк кода? Я попробовал последнюю версию 1.9.1, и комментарии к блокам автоматически переносятся, однако для строк кода (я использую язык C) этого не происходит.
Юсуф Хусаини
3
Стоит упомянуть, что он очень хорошо работает с MarkDown ❤
chesterbr
2
Я не могу обернуть строки кода ReWrap, как указал @YusufHusainy.
Фавваз Юсран
39

К сожалению, в VSCode пока нет этой функции. Но мы все еще можем сделать его максимально похожим на красивую функцию автоматического переноса слов vim .


Первый шаг

Нам нужно настроить функцию мягкого переноса слов в VSCode.

  1. Откройте настройки VSCode через Code => Preferences => Settings.
  2. Добавьте эти 3 строки настроек редактора.

    "editor.wordWrap": "wordWrapColumn",
    "editor.wrappingIndent": "same",
    "editor.wordWrapColumn": n

    Не забудьте изменить ( n ) на желаемую длину строки столбцов. Мне удобнее ставить 60.

  3. Сохраните эту настройку.

Основная цель этого первого шага - заставить нас чувствовать себя более комфортно при вводе текста, потому что нам не нужно вводить вручную Enterи видеть длинную строку текста.


Второй шаг

Нам нужно установить эмуляцию Vim для VSCode и установить vim textwidth.

  1. Установите эмуляцию Vim через расширения VSCode.
  2. Откройте настройки VSCode через Code => Preferences => Settings.
  3. Добавьте эту строку настройки vim.

    "vim.textwidth": n,

    Не забудьте изменить ( n ) на желаемую длину строки столбцов. Для меня я сделаю то же самое с ( n ) на первом шаге.

  4. Сохраните эту настройку.


Фактическое использование

Когда вы закончите писать весь документ, вы можете отформатировать его таким образом, чтобы он выглядел как строки с жестким переносом.

  1. Блокировать весь текст в режиме визуальной линии ( Shift+ v)
  2. Введите "gq"
Ванда Ичсанул Исра
источник
Вы говорите «пока». Вы знаете какие-либо планы или текущую работу?
oli_obk
Нет, я не уверен. У меня есть план предложить эту функцию команде разработчиков VSCode. Вот почему я говорю «пока», потому что все еще может существовать вероятность того, что эта функция будет добавлена ​​в будущем VSCode.
Ванда Ичсанул Исра
Что подразумевается под «визуальным линейным режимом»? Использование Shift + v просто вводит заглавную
букву
Введите его, когда вы находитесь в нормальном режиме, а не в режиме вставки
Ванда Ичсанул Исра
16

Теперь VSCode поддерживает автоматическое обертывание из коробки.

Настройки -> Текстовый редактор -> Последние 3 параметра (как на сегодня) предназначены для автоматической упаковки.

  1. Перенос по словам (управляет переносом строк)
  2. Столбец переноса слов (управляет столбцом переноса текста в редакторе)
  3. Отступ обтекания (управляет отступом строк с переносом)

По умолчанию Word Wrap отключен.

Арун Кумар Хаттри
источник
26
Это для «мягкого» обтекания, иначе говоря, обертывания, когда оно отображается в редакторе, но не обертывания вашего фактического текста.
forivall
3

В настоящее время есть открытый запрос для этого в трекере VS Code Issue на GitHub, вы можете найти его здесь

Марк Карпентер-младший
источник
К сожалению, проблема закрыта, а тема заблокирована. «Мы стараемся сохранить VS Code
компактным
2

Комментарии в жесткой упаковке

Используйте расширение Rewrap .

Код мягкой упаковки

Добавьте следующий параметр (замените ширину столбца на свое предпочтение): "editor.wordWrapColumn": 100

Затем добавьте либо "editor.wordWrap": "wordWrapColumn"(переносит столбец), либо"editor.wordWrap": "bounded" (перенос в столбец, либо в область просмотра).

Комментарии для жесткой упаковки и код для мягкой оболочки

К сожалению, настройки расширения и VSCode не работают должным образом.

Не стесняйтесь голосовать за этот запрос функции .

Jabacchetta
источник