Lite XL
Это минималистичный редактор, но сделан на графическом движке и поэтому выглядит красиво. Поверх графического движка используются скрипты Lua, поэтому редактор может практически все что угодно, если вы умеете программировать :).
Достоинства:
- Мультикурсор - удерживая Ctrl щелкаем в нужных местах
- Идет со встроенными красивыми шрифтами JetBrains Mono
- Приятная цветовая схема из коробки
- Есть куча своих плагинов
- Есть куча дополнительных плагинов
- Есть плагин LSP и все отсюда вытекающее
- Лаконичное оформление без сотен кнопок
- Умеет разделять окно на части
- Есть вкладки для открытых файлов
- Есть версия под Windows
- Файл настроек ~/.config/lite-xl/init.lua - можно в нем кодить
- Довольно активно обновляется
Недостатки:
- Плагин переноса слов срывается если файл изменен извне. По состоянию на апрель 2024 нашел в discord сообщение о том, что перенос слов сейчас сделан хаками и переписывают ядро чтобы сделать как положено и тогда же еще и фолдинг появится - схлопывание кусков кода. Ждемс.
- Иногда вылетает когда курсор по неизвестным и независимым от юзера причинам оказывается как бы вне строки и любое нажатие кнопок в этот момент приводит к вылету. Так что если такое увидите - пробуйте сохранить файл пока не поздно.
- Ломает подсветку в таком коде
<?php echo "good"; /* <?php echo 1; ?> */ echo "bad"; ?>
- виноват закрывающий тег?>
. Так же этот закрывающий тег в регулярных выражениях в одинарных кавычках тоже ломает подсветку - решение: записывать регулярное выражение в двойных кавычках.
Устанавливается командой:
pkg install lite-xl
При запуске редактора, пока не открыт ни один файл, в центре окна будет подсказка по комбинациям клавиш. Но даже и она не обязательна. В левом нижнем углу есть базовые кнопки и кнопка с иконкой книжки, через нее можно получить доступ ко всем командам редактора. Напротив каждой команды указаны комбинации клавиш которые вы со временем запомните.
Достаточно щелкнуть на шестеренке в левом нижнем углу и откроются настройки с выпадающими списками и полями ввода, но такой вид можно отключить, чтобы добавить свой код.

В конец файла ~/.config/lite-xl/init.lua
добавляем свои настройки:
-- Не игнорировать никакие файлы
config.ignore_files = {}
-- Отступы пробелами
config.tab_type = "soft"
-- Отступы 4 пробела
config.indent_size = 4
-- Автодополнение после ввода двух символов
config.plugins.autocomplete.min_len = 2
-- Шрифт помельче
style.code_font = renderer.font.load(DATADIR .. "/fonts/JetBrainsMono-Regular.ttf", 14 * SCALE)
-- Для FreeBSD
style.code_font = renderer.font.load("/usr/local/share/fonts/hack-font/Hack-Regular.ttf", 13 * SCALE)
-- Отключить графический плагин настроек
config.plugins.settings = false
-- Отключить оригинальную md-подсветку
config.plugins.language_md = false
-- Дублировать строку в которой стоит курсор с помощью Ctrl+D
keymap.add { ["ctrl+d"] = "doc:duplicate-lines" }
-- Перечитать файл
keymap.add { ["f5"] = "doc:reload" }
-- Закрыть редактор
keymap.add { ["ctrl+q"] = "core:quit" }
-- Широкий скролл
config.force_scrollbar_status = "expanded"
-- 20 табов до прокрутки
config.max_tabs = 20
-- замедлить мерцание курсора
config.blink_period = 1.5
-- Перемещение строк
keymap.add {
["alt+up"] = "doc:move-lines-up",
["alt+down"] = "doc:move-lines-down",
}
-- Двойным кликом открывать файлы
local TreeView = require "plugins.treeview"
local command = require "core.command"
command.add(function()
return core.active_view == TreeView, core.active_view
end, {
["custom-treeview:select-file-or-open-dir"] = function(view)
if view.hovered_item and view.hovered_item.type == "dir" then
command.perform("treeview:select-and-open")
else
command.perform("treeview:select")
end
end
})
keymap.add({
["2lclick"] = "treeview:select-and-open",
["1lclick"] = "custom-treeview:select-file-or-open-dir"
})
-- Не рисовать стрелочки рядом с папками
local TreeView = require "plugins.treeview"
function TreeView:draw_item_chevron()
return style.padding.x
end
-- Фикс цветов
style.selection = { 255, 128, 255, 50 }
Чтобы установить дополнительные плагины нужно создать папку ~/.config/lite-xl/plugins
и закидывать файлы плагинов туда. Скачать плагины можно отсюда https://github.com/lite-xl/lite-xl-plugins. Ниже приведены пропатченые плагины.
autoinsert.lua - вставка парных скобок и кавычек. Закомментирована строка вставки парной тильды.
bracketmatch.lua - переход к парной скобке по Ctrl+m. Оригинальный.
fix_md.lua - подсветка md-файлов. Убрана подсветка от * поскольку они часто встречаются в коде и ломают дальнейшую подсветку.
markers.lua - установка маркеров Ctrl+b и переход к ним по Ctrl+up и Ctrl+down. Изменены комбинации клавиш и добавлен переход к предыдущему маркеру.
minimap.lua - миникарта файла справа. Оригинальный.
selectionhighlight.lua - подсветка все вхождений выделенного. Сделана заливка вместо рамки.