Автоматически переносить строки в столбец в 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


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


2

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

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

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

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

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

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

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.