Текст и данные · Инструкция
VS Code font ligatures: как включить
VS Code font ligatures: как включить — сначала установить шрифт, который действительно содержит программные лигатуры.
Короткий ответ
Установите шрифт с лигатурами, укажите его точное имя в `editor.fontFamily` и задайте `"editor.fontLigatures": true`. Для встроенного терминала используется отдельная настройка `terminal.integrated.fontLigatures.enabled`.
Что такое лигатуры и почему код не меняется
Программная лигатура — это способ отрисовать несколько символов как единый глиф. Например, шрифт может визуально объединить `=>` или `>=`, хотя в файле по-прежнему остаются два отдельных ASCII-символа. Поэтому включение ligatures не меняет исходный код, не влияет на компилятор и не создаёт неожиданный git diff. Функция зависит от возможностей конкретного шрифта: VS Code лишь разрешает использовать его OpenType features. В официальных tips and tricks показан пример с Fira Code, но подойдёт любой корректно установленный шрифт, который поддерживает нужные лигатуры. Если редактор откатился на fallback-font без таких glyphs, визуального эффекта не будет.
Совет: Проверяйте результат на строке с несколькими известными последовательностями вроде `=> != >=`, но помните: это только визуализация, символы файла не изменяются.
Как правильно задать fontFamily и editor.fontLigatures
Сначала установите выбранный моноширинный шрифт средствами операционной системы и перезапустите VS Code, если он был открыт во время установки. Затем в Settings найдите Editor: Font Family и укажите имя семейства, а Editor: Font Ligatures включите. В `settings.json` это может выглядеть как `"editor.fontFamily": "Fira Code"` и `"editor.fontLigatures": true`. Порядок в fontFamily важен: если первый шрифт не найден, VS Code использует следующий fallback. Поэтому ситуация «лигатуры не работают, но текст выглядит почти так же» часто означает, что редактор фактически показывает другой шрифт. Для необычных семей с пробелами следуйте обычному синтаксису CSS font-family.
Предупреждение: Не скачивайте случайные font-файлы из непроверенных архивов ради одной настройки. Используйте официальный релиз шрифта или надёжный пакетный источник вашей ОС.
Как включить лигатуры и проверить, что используется нужный шрифт
- Установите поддерживающий шрифт: Выберите программный шрифт с ligatures и установите его в ОС. Запомните точное имя семейства, а не имя файла .ttf или .otf.
- Откройте настройки VS Code: Найдите Editor: Font Family и Editor: Font Ligatures. Для контроля можно открыть User Settings JSON.
- Включите editor.fontLigatures: Установите `true`. Если нужен расширенный контроль отдельных OpenType features, VS Code также поддерживает строковое значение font feature settings.
- Проверьте на коде: Откройте файл и сравните `=>`, `>=`, `!=`, `===` или другие пары, которые поддерживает ваш шрифт. Курсор должен по-прежнему работать с исходными символами.
- Настройте терминал отдельно: Если ligatures нужны и в Integrated Terminal, выберите совместимый terminal font и включите `terminal.integrated.fontLigatures.enabled`; editor setting сам по себе на терминал не распространяется.
Важно: Если лигатура затрудняет чтение конкретного оператора, отключите функцию или настройте feature set шрифта. Красивый глиф не должен ухудшать различимость кода.
Лигатуры редактора и терминала — разные настройки
[object Object]
Почему лигатуры включены, но ничего не видно
Самая частая причина — выбранный fontFamily не содержит нужных features или VS Code не смог найти семейство и переключился на fallback. Вторая причина — вы проверяете последовательность, для которой конкретный шрифт не рисует лигатуру: набор glyphs отличается между семействами. Третья — настройка переопределена profile, workspace или language-specific секцией. Если проблема только в терминале, это ожидаемо: терминал имеет отдельные font и ligature settings, причём в современных версиях включение задаётся через `terminal.integrated.fontLigatures.enabled`. Диагностика должна идти от фактического шрифта к настройкам scope, а не от переустановки всех расширений. Расширение для обычных editor ligatures обычно не требуется.
Как выбрать лигатуры, которые не мешают ревью
Лигатуры — личная настройка чтения, поэтому их лучше оценивать на реальном коде вашей команды, а не по скриншоту шрифта. Некоторые разработчики быстрее различают составные операторы с объединёнными glyphs, другим важнее видеть каждый ASCII-символ отдельно. Особенно внимательно проверьте языки, где похожие последовательности имеют разный смысл, и работу курсора при редактировании рядом с лигатурой. Если в парном программировании или обучении визуальная форма создаёт путаницу, функцию легко отключить без изменения проекта. Поскольку исходник не меняется, разные участники команды могут использовать разные настройки шрифта и получать одинаковые файлы в репозитории.
Отдельно проверьте лигатуры во встроенном терминале
Редактор кода и встроенный терминал VS Code используют разные настройки шрифта и лигатур, поэтому успешная настройка одного не гарантирует тот же вид в другом. Для терминала есть отдельный параметр `terminal.integrated.fontLigatures.enabled`; его имеет смысл менять только после того, как выбранный терминальный шрифт действительно поддерживает нужные лигатуры. Если символы вроде `=>` красиво объединяются в редакторе, но остаются обычными в терминале, это не ошибка `editor.fontLigatures`. И наоборот, при странном отображении командной строки сначала временно выключите терминальные лигатуры, не трогая редактор. Так проще понять, какой именно слой отвечает за результат, и не превращать проверку шрифта в перебор нескольких несвязанных настроек одновременно.
Как понять, что VS Code действительно использует выбранный шрифт
Запись в `editor.fontFamily` ещё не доказывает, что редактор нашёл семейство в системе. Если имя указано неверно или шрифт не установлен для текущего пользователя, VS Code молча переходит к следующему fallback в списке. Поэтому проверяйте не только переключатель ligatures, но и визуальные особенности выбранного семейства: форму нуля, цифр, фигурных скобок и других характерных glyphs. После установки нового шрифта полностью перезапустите редактор, особенно если система не обновила список шрифтов для уже запущенных приложений. Если в одном Profile лигатуры есть, а в другом нет, сравните User Settings и профильные overrides. Для workspace обычно нет причины закреплять конкретный личный шрифт в репозитории: это настройка интерфейса разработчика, а не свойство исходного кода.
Почему лигатуры могут отличаться между редактором и терминалом
Integrated Terminal использует собственный механизм рендеринга и отдельные параметры `terminal.integrated.fontFamily` и `terminal.integrated.fontLigatures.*`. Поэтому одинаковое имя шрифта не гарантирует идентичный набор визуальных эффектов в двух областях, особенно если терминал использует другой fallback для Powerline или Nerd Font glyphs. Сначала добейтесь корректного отображения обычного текста и специальных символов, затем включайте terminal ligatures. Если после этого команды выглядят странно, временно отключите только `terminal.integrated.fontLigatures.enabled`, оставив `editor.fontLigatures` без изменений. Так вы точно определите, относится проблема к терминалу или к основному редактору. Раздельная диагностика особенно полезна после обновлений VS Code, потому что настройки терминальных ligatures развиваются отдельно от настройки `editor.fontLigatures`.
Проверка, если ligatures не появились
- Шрифт установлен в операционной системе и поддерживает программные лигатуры.
- Точное семейство стоит первым в `editor.fontFamily`.
- `editor.fontLigatures` включён в фактически применяемом scope настроек.
- Workspace или language-specific settings не отключают функцию.
- Проверяемая последовательность поддерживается выбранным шрифтом.
- Для терминала настроены отдельные `terminal.integrated.*` параметры.
Что учитывать
Программная лигатура — это способ отрисовать несколько символов как единый глиф. Например, шрифт может визуально объединить `=>` или `>=`, хотя в файле по-прежнему остаются два отдельных ASCII-символа. Поэтому включение ligatures не меняет исходный код, не влияет на компилятор и не создаёт неожиданный git diff. Функция зависит от возможностей конкретного шрифта: VS Code лишь разрешает использовать его OpenType features. В официальных tips and tricks показан пример с Fira Code, но подойдёт любой…
Источники и проверка
Фактическая часть сверена по первичным источникам (в т.ч. Visual Studio Code tips and tricks). Пример и формулировки — редакция N1RO на 2026-09-20.