Код Visual Studio: как показать окончания строк

211

Как я могу отобразить линейные окончания (CR, LF) в коде Visual Studio (не в Visual Studio).

Я использую следующие настройки, но ни один из них не показывает окончания строки.

"editor.renderWhitespace": true,
"editor.renderControlCharacters": true,
"editor.renderIndentGuides": true

Есть ли настройки для линейных финалов?

Изменить 1: я открыл проблему на GitHub: https://github.com/Microsoft/vscode/issues/12223

Редактировать 2: Сохам Камани сделал расширения для этого: code-eol

Тонко
источник
16
Я сделал расширения для этого на тот случай, если он вам все еще нужен: marketplace.visualstudio.com/…
Сохам Камани
@SohamKamani Ваш комментарий должен быть принятым ответом на вопрос.
Николас Сейллер
Это расширение бесполезно: оно фактически не отображает, являются ли символы возвратом каретки или переводом строки, оно просто создает глифы в конце строк, которые соответствуют тому, что vscode говорит о файле. Это не помогает точно определять файлы со смешанными стилями конца строки. (Это или vscode автоматически нормализует EOL файлов, что делает любое расширение этого эффекта бесполезным.)
Tustin2121

Ответы:

342

AFAIK нет способа визуально увидеть окончания строк в пространстве редактора, но в правом нижнем углу окна есть индикатор, который говорит «CLRF» или «LF», который позволит вам установить окончания строк для конкретного файла , Нажав на текст, вы также сможете изменить окончания строк.

введите описание изображения здесь

Llewey
источник
15
Можете ли вы изменить значение по умолчанию для этого? Прямо сейчас каждый раз, когда я открываю файл, я должен вручную нажимать на это.
Дэвид Мартинес
16
@DavidMartinez Да. В настройках пользователя или рабочей области: // Символ конца строки по умолчанию. "files.eol": "\ r \ n",
Llewey
4
@Llewey Но это глобальное изменение, верно? Могу ли я установить его как-то только для .shфайлов?
Костас Демирис
@KostasDemiris Я не проверял это, но вы можете попробовать сделать "[sh]": { "files.eol": "\n" }. Не все настройки могут быть установлены для конкретного языка, и я не уверен, что это тот, который может, но стоит попробовать.
Майкл Дорст
91

Если вы хотите установить его в LF по умолчанию, вы можете перейти в File-> Preferences-> Settings, и в пользовательских настройках вы можете вставить эту строку ниже ваших других пользовательских настроек.

"files.eol": "\ n"

Например.

"git.confirmSync": false,
"window.zoomLevel": -1,
"workbench.activityBar.visible": true,
"editor.wordWrap": true,
"workbench.iconTheme": "vscode-icons",
"window.menuBarVisibility": "default",
"vsicons.projectDetection.autoReload": true,
"files.eol": "\n"
Исак Ла Флер
источник
13
Я сделал это, но каждый раз, когда я открываю файл, он все еще открывается с помощью CRLF, и мне приходится вручную изменять его.
pixelwiz
1
@pixelwiz Если вы сохраните файл, он изменится на LF? github.com/Microsoft/vscode/issues/26626 github.com/Microsoft/vscode/issues/2957 Я перешел на mac, поэтому у меня больше нет этой проблемы при разработке собственных проектов. Так что я не могу проверить, извините.
Исак Ла Флер
5
То же самое для меня в Windows - установка пользовательских настроек files.eol на «\ n», но файлы по-прежнему отображаются как CLRF
Marko
У меня работает на Windows 7 с VS Code 1.18.0
darkwing
1
Я только что успешно проверил это с Win 10 и VS Code 1.20.1. Новый файл создан с разрывом строки LF!
января
18

Есть расширение, которое показывает окончания строки. Вы можете настроить используемый цвет, символы, которые представляют CRLF и LF, и логическое значение, которое включает и выключает его.

Name: Line endings 
Id: jhartell.vscode-line-endings 
Description: Display line ending characters in vscode 
Version: 0.1.0 
Publisher: Johnny Härtell 

VS Marketplace Ссылка

Shanimal
источник
3
В настоящее время это расширение не делает то, к чему оно стремится. В файле смешанных концов строк он показывает окончания строк, как если бы они были согласованными, основываясь на том, что VS Code утверждает, что файл следует.
Эндрю Арнотт
@AndrewArnott спасибо за обновление, нам нужно будет посмотреть проблему, которую вы представили ... github.com/jhartell/vscode-line-endings/issues/1
Shanimal
@AndrewArnott, не могли бы вы сказать, почему у вас это не работает? У меня оно работает идеально, просто иконки маленькие
Джон Балвин Ариас
@JohnBalvinArias Проблема, с которой я столкнулся, на которую ссылается Шанимал, описывает проблему: на самом деле она не показывает окончаний смешанных строк. Он всегда показывает их так, как если бы они были согласованы с настройками VS Code.
Эндрю Арнотт
1
@AndrewArnott Это потому, что сам VSCode не поддерживает смешанные окончания строк. github.com/Microsoft/vscode/issues/127
Chev
3

Render Line Endings - это расширение кода VS, которое все еще активно поддерживается (по состоянию на апрель 2020 года):

https://marketplace.visualstudio.com/items?itemName=medo64.render-crlf

https://github.com/medo64/render-crlf/

Это можно настроить так:

{
    "editor.renderWhitespace": "all",
    "code-eol.newlineCharacter": "¬",
    "code-eol.returnCharacter" : "¤",
    "code-eol.crlfCharacter"   : "¤¬",
}

и выглядит так:

введите описание изображения здесь

friederbluemle
источник