Открытие, подсветка и форматирование
Текстовые/кодовые файлы открываются в редакторе (Scintilla) с подсветкой синтаксиса. Есть комментирование/раскомментирование (Ctrl+/), перемещение и дублирование строки, закладки (Ctrl+F2), список символов/функций, автодополнение по словам, направляющие отступов, перенос строк, масштабирование и обнаружение изменений файла на диске. При включённом версионировании на полях отмечаются строки, добавленные или изменённые с последней версии.
Есть также макросы (запись/воспроизведение последовательности правок клавишами Ctrl+Shift+R / F4, в Инструменты → Выполнить → Макросы), форматирование/причёсывание (Shift+Alt+F), таблица ASCII на панели инструментов вкладки (для вставки символов/псевдографики) и орфографический словарь (Hunspell). pt-BR и en-US встроены сразу; остальные языки скачиваются по требованию из таблицы в Настройки → Заметки и письмо → Орфография (по одной строке на язык, с кнопкой Скачать/Удалить). Чтобы следить за растущим лог-файлом, используйте кнопку Мониторинг (tail -f) на панели инструментов самой вкладки. Очень большие файлы (свыше ~1 МБ) открываются в виртуализированном облегчённом редакторе, который загружает только видимые фрагменты; его можно вызвать принудительно через Открыть → Открыть в облегчённом редакторе... Если памяти не хватает, чтобы проиндексировать все строки, полоса редактора предупреждает об этом, и доступны только первые строки.
Форматирование и линтинг: Shift+Alt+F форматирует документ.
JSON, XML и SQL LightNote форматирует сам, ничего не нужно устанавливать, —
и меняет только пробелы: порядок ключей, числа и тексты остаются такими, как вы их
написали. Учитывается тип, показанный в строке состояния, а не только расширение:
во вкладке черновика вставьте JSON, выберите тип JSON и отформатируйте
(текст, начинающийся с {, [ или <,
распознаётся и без выбора). При ошибке текст не меняется: место подчёркивается
красным, курсор переходит к нему, а строка состояния называет строку, столбец и
причину (не хватает запятой, ключ без кавычек…). Стрелка кнопки форматирования
предлагает Сжать (JSON или XML в одну строку), а при выделении обе команды
действуют только на выделенный фрагмент — удобно для JSON внутри строки журнала.
Текст, в котором на каждой строке записан полный документ JSON (JSON Lines, он же NDJSON — частый формат журналов и выгрузок), распознаётся и форматируется построчно, не превращаясь в один документ.
F7 выполняет проверку: JSON и XML проверяются прямо в тексте, без сохранения; для остальных языков запускается линтер (ruff, eslint, shellcheck, luacheck…), который отмечает проблемы в редакторе и на панели Проблемы (нижняя область, с переходом по клику). Для остальных языков используется внешний форматтер (black, prettier, clang-format, gofmt, rustfmt…); если для типа его ещё нет, форматирование, F7 и F5 открывают помощник, который показывает только инструменты для этого типа, сообщает, какие уже установлены, и устанавливает выбранный одним щелчком (или принимает команду другой программы). Полные списки находятся в Настройки → Инструменты кода → Форматтеры по языкам и → Линтеры по языкам, вместе с опциями форматировать при сохранении / проверять при сохранении. Запустите файл на панели вывода клавишей F6 (фиксирует код завершения и длительность, можно остановить/перезапустить) или только фрагмент — клавишей F8.
Преобразование из одного формата в другой: подменю Преобразовать есть в меню Правка, в стрелке кнопки форматирования, в меню типа в строке состояния и в контекстном меню редактора — в том числе в заметке. Оно действует на выделение, а если ничего не выделено — на весь текст. Вверху указано, что распознано («Выделение: JSON», «Весь текст: CSV»), и сначала идут преобразования, подходящие к этому содержимому; остальные собраны в группы и, если не подходят, показаны серым с причиной. Есть JSON ↔ YAML, JSON ↔ XML (атрибуты становятся @имя), JSON ↔ CSV и JSON → таблица Markdown (вложенный объект становится столбцом a.b), CSV ↔ таблица Markdown, CSV → INSERT SQL, JSON Lines (NDJSON) ↔ массив JSON, HTML ↔ Markdown, параметры URL ↔ JSON, Base64, кодирование URL, HTML-сущности, строка JSON и метка времени Unix ↔ дата ISO 8601. Порядок ключей и числа остаются такими, как вы их написали, а CSV распознаёт ; из Excel. Преобразование всего текста меняет и тип вкладки (CSV, ставший таблицей, становится Markdown), но расширение файла остаётся прежним — строка состояния об этом сообщает. В JSON подменю Имена полей переименовывает только ключи в camelCase, PascalCase, snake_case или kebab-case: значения, числа и отступы остаются как есть, и ничего не меняется, если два поля одного объекта получили бы одинаковое имя. Стили имён (camelCase, PascalCase, snake_case, kebab-case и CONSTANT_CASE) находятся в Правка → Регистр, под ВЕРХНИМ и нижним регистром и «Каждое Слово С Заглавной». Они действуют на выделение или, без выделения, на имя под курсором — никогда на весь файл — и меняют только имена: кавычки, двоеточия и фигурные скобки остаются на месте. Строка, состоящая из одной фразы («customer name»), превращается в одно имя (customerName).
Файл .md, открытый как код, возвращается к заметке одним щелчком. На панели редактора появляется Открыть как заметку, когда открытый файл — заметка. Это обратная операция к Открыть как → Код из меню дерева: вкладка возвращается к виду заметки с форматированным редактированием, чтением, оглавлением и свойствами. Кнопка появляется только когда переключение возможно: слишком большая заметка остаётся в редакторе кода.
Мультикурсор, история и определение
Дополнительные возможности редактирования: мультикурсор по
вхождениям (Ctrl+D, все сразу — Alt+F3), дублирование строки
(Ctrl+Shift+D), объединение строк (Ctrl+Shift+J), расширение/
сужение выделения по области видимости (Ctrl+Shift+Space /
Ctrl+Alt+Space), прямоугольное выделение (Alt+перетаскивание),
свернуть/развернуть все блоки, сниппеты (Ctrl+J, редактируются в
Настройки → Редактор), Перейти к символу в файле (#
в палитре) и в проекте (Ctrl+T или ##), история
навигации (Alt+←/→), дорожка «хлебных крошек» в верхней части
редактора, линейки колонок, подсветка парных скобок цветом,
автозакрытие/оборачивание парных символов и очистка при сохранении (обрезка
пробелов, финальный перевод строки) — всё в Настройки → Редактор.
Фрагменты по Tab. Наберите триггер и нажмите Tab: в SQL-файле sf превращается в SELECT * FROM TABLE;, где TABLE уже выделено — наберите имя таблицы, и Tab перейдёт к следующему полю (Shift+Tab — назад, Esc — выход). Готовы sf, sc, sw, sj, sg, ins, upd и del (последние два сразу с WHERE). Каждый фрагмент действует в одном языке или во всех, а в Настройки → Редактор можно создать свои для любого языка, с полями ${1:NAME}, повторами $1 и конечной позицией курсора $0; щелчок правой кнопкой по выделению предлагает Создать фрагмент из выделения. Фрагменты появляются и в списке автодополнения. Пока список открыт, Tab принадлежит ему; чтобы Tab не разворачивал фрагменты, выключите Разворачивать фрагменты по Tab — Ctrl+J продолжает работать.
Локальная история и буфер обмена: при каждом сохранении LightNote хранит версию файла (Файл → Локальная история…, с возможностью восстановления), независимо от Git. Ctrl+Alt+V открывает историю буфера обмена для вставки ранее скопированного элемента. Ctrl+Shift+T заново открывает последнюю закрытую вкладку; вкладки можно закрепить (контекстное меню) — это защищает их от освобождения при простое.
Перейти к определению: F12 или Ctrl+щелчок по идентификатору переходит к месту его определения в рабочем пространстве; Shift+F12 находит его использования.
Мини-карта и операции с текстом
Мини-карта. У правого края редактора показывается миниатюра всего документа: она передаёт «форму» кода (цвета подсветки синтаксиса в уменьшенном виде) и отмечает видимую область. Щёлкните или перетащите по ней, чтобы перейти в любое место файла. Включается в Вид → Мини-карта или в Настройки → Редактор. Кнопка Мини-карта на панели самой вкладки кода (рядом с ASCII) включает и выключает её, не покидая редактор. Вдоль левого края миниатюры идёт полоса меток: синим — строки с закладкой (тот же кружок, что и на поле), янтарным — совпадения быстрого поиска. Так с одного взгляда видно, как они распределены по всему файлу, включая части за пределами экрана.
Операции с текстом. В меню Правка — и в контекстном меню редактора — есть подменю Строки (переместить, дублировать, удалить, отсортировать, объединить, перевернуть, пронумеровать) и Очистка (убрать пробелы, удалить пустые/повторяющиеся строки, табуляции ↔ пробелы). При выделении контекстное меню также предлагает Сохранить выделение в новый файл…: фрагмент записывается в файл рядом с текущим и открывается во вкладке (оригинал не меняется).
Отступы, комментарии и скобки
Отступ файла. В строке состояния, рядом с кнопкой конца строки, кнопка Пробелы: 4 (или Табуляция: 4) показывает, как вкладка делает отступы. Щелчок открывает меню: Отступ пробелами или Отступ табуляцией, Ширина отступа (2, 3, 4 или 8 столбцов), Преобразовать отступ в пробелы и в табуляцию (переписывает отступы уже существующих строк), Определить по содержимому и Использовать по умолчанию — последнее сохраняет выбор для новых файлов. Выбранное здесь действует для этой вкладки.
Откуда берётся отступ. При открытии файла LightNote ищет .editorconfig в его папке и в папках выше (до файла с root = true) и применяет indent_style, indent_size и tab_width; trim_trailing_whitespace и insert_final_newline действуют при сохранении, а end_of_line и charset — только для нового файла. Без .editorconfig он смотрит на строки самого файла и берёт найденный отступ, если он однозначен; иначе остаётся значение по умолчанию. Порядок такой: .editorconfig, затем файл, затем значение по умолчанию из Настройки → Редактор, где находятся Отступ по умолчанию, Определять отступ каждого файла при открытии и Учитывать .editorconfig рабочего пространства.
Умный отступ. Enter после {, ( или [ — и после : в конце строки, только в Python — открывает следующую строку на уровень глубже. Между {} Enter раскрывает блок на три строки с курсором в средней, и одно нажатие Ctrl+Z отменяет всё. Скобка }, ) или ], набранная в пустой строке, возвращается к отступу строки, которая её открыла. Чтобы Enter только копировал отступ строки выше, отключите Умный отступ в Настройки → Редактор.
Комментарии, скобки и автодополнение. Ctrl+/ комментирует в синтаксисе языка, который использует вкладка, — в том числе в черновике без файла и когда вы меняете подсветку синтаксиса в строке состояния, — а там, где у языка есть только блочный комментарий (HTML, CSS), использует блочный. Ctrl+Shift+\ переводит курсор к парной круглой, квадратной или фигурной скобке, а Ctrl+Shift+Alt+\ выделяет до неё; обе команды есть и в контекстном меню. После слов документа список автодополнения предлагает ключевые слова языка (def, return…), даже те, которых ещё нет в файле. А Вид → Номера строк скрывает или показывает поле с номерами.
Недавние вкладки (Ctrl+Tab)
Ctrl+Tab возвращает к вкладке, которой вы пользовались до этого, в той же панели, — а не к соседней. Если удерживать Ctrl, каждое нажатие Tab спускается по списку недавних вкладок, который появляется посередине панели; отпустив Ctrl, вы открываете выбранную, а Esc отменяет. Ctrl+Shift+Tab идёт в обратном порядке. У каждой панели свой список, закрытая вкладка из него исчезает, а при одной вкладке ничего не появляется.
Панели рядом и сеткой
Сетка. Область редактирования делится на панели, у каждой свои вкладки, а панели расставлены по строкам и столбцам: в строке одна или несколько панелей рядом, а строки идут одна под другой. Панель в левом верхнем углу — основная и никогда не исчезает, а последняя строка — строка терминалов. Панель появляется только тогда, когда вы её просите, и сама исчезает, когда из неё уходит последняя вкладка.
Разделение. Окно → Разделить вправо открывает второе представление активной вкладки в новом столбце, сразу справа от панели, в которой вы находитесь; Окно → Макет → Разделить вниз делает то же в новой строке — сразу под строкой активной панели и над строкой терминалов. Оба представления редактируют один и тот же текст. Когда места для ещё одной панели нет, представление попадает в соседнюю панель. Окно → Убрать разделение закрывает панель справа от основной. Кнопка Разделить на панели инструментов содержит те же пункты.
Перетаскивание вкладки. Пока вы перетаскиваете вкладку, у каждой панели появляется полоса вдоль правого края и ещё одна вдоль нижнего края: если отпустить вкладку на правой, справа от этой панели появится новый столбец, а на нижней — новая строка прямо под ней. Полосы у нижнего края области переносят вкладку в строку терминалов. Полоса, которая не смогла бы создать панель из-за нехватки места, не появляется. В меню вкладки (правый щелчок) пункт Переместить в новую панель справа делает то же без перетаскивания, а Переместить в следующую панель и Переместить в предыдущую панель переносят её к соседу.
Готовые макеты. Окно → Макет (есть и в кнопке Разделить) расставляет сетку за один раз: 1 панель, 2 столбца, 3 столбца или Сетка 2×2. Применение макета никогда не закрывает вкладки: вкладки лишней панели переходят к соседней, которая остаётся, а терминалы не меняются. Выровнять размеры делает столбцы каждой строки одинаковой ширины, а строки — одинаковой высоты. Макет, который не помещается на этом экране, показан неактивным, и подсказка объясняет почему.
Пустая панель. Панель, которую макет создаёт пустой, показывает Перетащите сюда вкладку или щёлкните здесь и откройте файл: щелчок выбирает её, и следующий открытый файл попадёт в неё. Сама она не исчезает; её убирает кнопка Закрыть панель.
Сколько панелей помещается. Предел задаёт размер экрана, а не число: новый столбец появляется, только если каждая панель строки сохраняет ширину не меньше примерно 420 пикселей, а новая строка — только если каждая строка сохраняет высоту около 240, — но два столбца и две строки помещаются всегда. На ноутбуке сетка остаётся в два столбца; на сверхшироком мониторе помещается четыре или пять.
С клавиатуры. Ctrl+Alt+PgDn и Ctrl+Alt+PgUp переводят фокус на следующую и на предыдущую панель, по строкам, по кругу; терминалы тоже учитываются. В Окно → Макет есть также Переместить вкладку в следующую панель и Переместить вкладку в предыдущую панель.
При повторном открытии папки. Сетка возвращается такой, какой вы её оставили: строки, столбцы, размеры и вкладки каждой панели (файл загружается, только когда вы выбираете вкладку). Если открыть её на экране поменьше, столбцы, которые не помещаются, объединяются в последнем поместившемся — ни одна вкладка не теряется.
Задачи проекта
Сборка, тесты и lint проекта запускаются без перехода в терминал, через Инструменты → Задачи проекта. LightNote сам находит задачи открытой папки: scripts из package.json (через npm, pnpm или yarn — по имеющемуся lock-файлу), цели Makefile, buildPresets из CMakePresets.json, cargo build/test/run/check в проекте Rust, pytest в настроенном для него pyproject.toml и рецепты justfile.
Свои задачи. Задачи, написанные вручную, хранятся в tasks.json в формате VS Code (версия 2.0.0), который читается из .vscode/tasks.json и из .lightnote/tasks.json: если у вас уже есть файл VS Code, писать ничего не нужно. Поддерживаются label, type (shell или process), command, args, options.cwd и options.env, group с isDefault, блоки windows/linux/osx, комментарии и переменные ${workspaceFolder}, ${file}, ${fileDirname} и ${fileBasenameNoExtension}. Файл с ошибкой показывается в меню с причиной и пропускается; читается до 200 задач.
Запуск. Выберите задачу в меню или нажмите Ctrl+Shift+B, чтобы запустить задачу по умолчанию: выбранную в Инструменты → Задачи проекта → Задача по умолчанию (хранится для каждой папки); если выбора нет — ту, что tasks.json помечает isDefault; если нет и её — LightNote спрашивает, какую запустить. Вывод идёт в панель вывода, с кодом выхода и кнопкой остановки. Изменить задачи проекта открывает .vscode/tasks.json, если он есть, или создаёт .lightnote/tasks.json с примером. Если программа задачи не установлена, строка состояния называет её и предлагает Внешние программы.
Языковые серверы (LSP)
Без настройки переход к определению, поиск использований, переименование и автодополнение ищут по имени: это быстро, но без понимания области видимости. Языковой сервер (LSP) — отдельная программа, та же, что использует VS Code, которая действительно понимает язык. По умолчанию он выключен: включите его в Настройки → Инструменты кода, в группе Языковые серверы (LSP), или в Инструменты → Языковой сервер → Использовать языковые серверы (LSP). У каждого типа файлов свой сервер: pyright (Python), typescript-language-server (JavaScript и TypeScript), clangd (C и C++), gopls (Go), rust-analyzer (Rust), lua-language-server (Lua) и bash-language-server (shell).
Что меняется. Когда сервер работает, F12 переходит к определению, на которое он указывает, Shift+F12 показывает настоящие использования в панели поиска, а переименование меняет только нужный символ: LightNote спрашивает «Переименовать в N файлах?», меняет открытые вкладки (в каждой это отменяется одним Ctrl+Z) и записывает закрытые файлы, сохраняя их кодировку. Автодополнение предлагает то, что советует сервер, ошибки подчёркиваются и выводятся в панели Проблемы, подсказка над именем показывает его тип и документацию, а Shift+Alt+F форматирует через сервер, если для этого типа не настроен форматировщик. Если сервер не отвечает, медлит (автодополнение ждёт 1,5 с) или не знает ответа, работает поиск по имени, как раньше; настроенный линтер продолжает работать при Ctrl+S.
Индикатор и установка. В строке состояния индикатор показывает сервер вкладки и его состояние (pyright · готов, запуск…, ошибка, не установлен); щелчок по нему открывает Перезапустить сервер, Остановить сервер, Показать журнал… и настройку. Для установки используйте Инструменты → Языковой сервер → Настроить для .py…: тот же помощник, что и для форматировщиков, показывает команду и устанавливает в один щелчок — простое открытие вкладки никогда не предлагает ничего устанавливать. Сервер запускается с первой вкладкой своего типа и останавливается через 5 минут после закрытия последней; одновременно работают не более 4 серверов, файл больше 1 МБ ему не отправляется, а для каждого файла показывается до 500 ошибок.
Указатель
Редактирование
- Обзор
- Первые шаги
- Рабочее пространство и окна
- Центр активности: задачи и сообщения
- Редактор кода
- Markdown и вики-ссылки
- Диаграммы (Mermaid)
- Математика и химия (LaTeX)
- Календарь в заметке
- Нумерация и перекрёстные ссылки
- Цитаты и список литературы
- Стандарт оформления работы
- Граф связей
- Таблицы (Parquet, CSV, JSON, Excel)
- Область анализа: сводная таблица и несколько диаграмм
- PDF и изображения
- Изображения: пометки на снимке
- HTML-страницы (.html)
- Печать
- Zip как папка (.zip)
- Блоки (.lnb)
- Задачи (Kanban / Gantt)
- Пользовательская таблица (.lnd)
- Базы (сохранённые запросы по заметкам)
Инструменты
- Поиск по файлам и раздел «Незавершённые»
- Версионирование (упрощённый Git)
- Снимки состояния и резервные копии
- Просмотр изменений (контрольные точки)
- Сравнение файлов (diff)
- Запуск кода (F5)
- Терминал и ИИ-CLI
- ИИ-ассистент для выделенного текста (Ctrl+K / Ctrl+I)
- ИИ на вашем компьютере
- Сеансы ИИ
- Чат с ИИ
- Тестирование HTTP API (.lnh)
- Базы данных (.lnc)
- SSH-подключение (.lns)
- Безопасность: секретная фраза, PIN и защищённый Markdown
- Ежедневные заметки, быстрый захват и трей
- Вернуть старые заметки
- Ваши заметки на телефоне
- Запись аудио (голос, встреча) с транскрипцией ИИ
- Стикеры
- Календарь
- Палитра команд
Автоматизация (ИИ / скрипты)
Справочник