Всем привет!
Не судите строго, это моя первая статья не только на Хабр, но и в целом для ИТ мира
Немного о себе - зовут меня Сергей, я начинающий разработчик на С++, большой любитель программирования, Linux и консоли! Именно о последнем мы сегодня и поговорим. Я родился в эпоху повсеместного существования GUI, массивных IDE и всего прочего, и как многие молодые пользователи всегда не любил консоль, даже поступив в ВУЗ на программиста
Моё знакомство с ИТ
Моё знакомство с ИТ и программированием началось в школе на уроках информатики - мы писали небольшие странички с помощью HTML, маленькие алгоритмические задачи на Pascal, но затем нам показали мир разработки приложений с GUI - дивный мир Lazarus, вот это разорвало моё видение мира. Затем я поступил в ВУЗ, и просто по стечению обстаятельств и крутому названию выбрал направление Информатика и Вычислительная Техника, где я познакомился с С++, и влюбился (но статья не об этом). С самого начала мы пользовались IDE и практически не погружались в дебри командной строки | а зря! |, сборка и конфигурирование всегда происходило из GUI, переменные сборки добавлялись в табличку, там же проверялись, сборка происходила по нажатию магической кпоки зеленого треугольничка, изредка отправляясь в консоль для того, чтобы сделать коммит. И я долгое время около 2х лет искренне верил, что это так и надо, моим основным инструментом был QtCreator, основной единственной ОС была Windows 10. Но затем в мою жизнь ворвался ОН!
Прыжок в мир символов
Устроившись на свою первую она же единственная работу, я увидел, что мой тимлид пользуется neovim, в качестве основного редактора кода, cmake использует через консоль, по ФС перемещается там же... Меня это повергло в шок. Справедливости ради я уже какое-то продолжительное время пользовался Ubuntu в качестве основной ОС, по ошибке несколько раз открывал neovim и к работе с терминалом был немного приучен, но чтобы всю работу выполнять в нем!? НЕТ УЖ! Но по долгу службы пришлось много проектов собирать из исходников и каждый раз открывать QtCreator для этого - желания не нашлось. И сначала я привык пользоваться cmake через терминал, затем познакомился поглубже научился выходить с nvim, после чего узнал о существовании такой чудесной штуки как tmux и в какой-то день из чистого любопытства ну и необходимости работать внутри контейнера, не поднимая 10 инстансов QtCreator решил узнать - а зачем мой лид так страдает, что же там такого сладкого? Оооо! Если бы я только тогда знал, куда меня это заведёт...
Как это было
Решив, что я хочу попробовать переползти в консоль, я начал пользоваться nvim - это было больно! Очень! Переход на hjkl
навигацию, переключение между режимами, намеренный отказ от мышки (так рекомендуют трушные прогеры в интернетах), изучение всех многочисленных команд, практические полное отсутствие подсветки синтаксиса, нормального дополнения кода и просто консоль! Но мне на помощь пришла долгая поездка по поезде (суммарно туда обратно 2е суток чистого пути), где из развлечений было только изучение nvim. Когда руки освоились жить с клавиатурой, перестали при любой непонятной ситуации бежать и дёргать мышь, nvim стал раскрываться по новому - навигация ускорилась, руки постоянно готовы нажимать, так как не уходят с клавиатуры, каждое твоё действие становится обдуманным! - nvim может тебе не простить промаха, 2 раза спрашивать и предлагать красивую менюшку он не будет, ты перестаешь путаться в изобилии встроенных функций в разных IDE, используешь только те, что тебе нужны и ищешь их, только когда они нужны.
Плагины = всемогущество
Победив базовые функции nvim, я захотел больше удобства - дерево файлов, автокомплит, подсветка синтаксиса, диагностика ошибок - в общем всего того, что в IDE идёт по умполчанию (но почему кто-то может решать что мне нужно!?). И тогда я открыл для себя мир плагинов - по свяким статья в интернете выбрал для себя vim-plug
и начал пробовать и искать для себя то самое. Сразу предостерегу от использования vimscript
для написания конфигурации, самые свежие и интересные плагины на данный момент пишутся на lua
, да и официальные плагины от разработчиков nvim
. И в конце концов пришёл к такой конфигурации:
-- ~/.config/nvim/init.lua
-- Set encoding and colors
vim.opt.encoding = 'utf-8'
vim.opt.termguicolors = true
vim.cmd('set t_Co=256')
-- Enable lines number
vim.wo.number = true
-- Enable line wraping
vim.wo.wrap = true
-- Enable show mode in status bar
vim.opt.showcmd = true
-- Highlight cursor line
vim.wo.cursorline = true
-- Enable showing mode in status line
vim.opt.showmode = true
-- Setting tabs and indentation
vim.opt.tabstop = 4
vim.opt.shiftwidth = 4
vim.opt.softtabstop = 4
vim.opt.expandtab = true
vim.opt.autoindent = true
vim.opt.smarttab = true
-- Set background color
vim.opt.background = 'dark'
-- Set fixed column for text alignment
vim.opt.colorcolumn = '80'
-- Enable file type indentations
vim.cmd('filetype indent on')
-- Set terminal to fast
vim.opt.ttyfast = true
-- Plugins
local Plug = vim.fn['plug#']
vim.call('plug#begin')
Plug('Mofiqul/dracula.nvim')
Plug('neoclide/coc.nvim', { ['branch'] = 'master', ['do'] = 'npm ci'})
Plug('nvim-treesitter/nvim-treesitter')
Plug('nvim-tree/nvim-web-devicons')
Plug('nvim-tree/nvim-tree.lua')
Plug('nvimdev/indentmini.nvim')
vim.call('plug#end')
-- End Plugins
-- Plugins setup
-- TreeSitter setup
require'nvim-treesitter.configs'.setup{
ensure_installed = { "c", "cpp", "lua", "python", "bash" },
auto_install = true,
highlight = {
enable = true
}
}
-- NvimTree setup
require("nvim-tree").setup()
-- IndentMini
require("indentmini").setup{
exclude = {'lua', 'xxx'},
minlevel = 2
}
-- Set colorscheme
vim.cmd('colorscheme dracula')
-- FileType specific settings for C and C++ files
vim.api.nvim_create_autocmd("FileType", {
pattern = {"c", "cpp", "h", "hpp"},
callback = function()
require("indentmini").setup{
exclude = {'lua', 'xxx'},
only_current = true,
minlevel = 2
}
vim.api.nvim_buf_set_keymap(0, 'n', 'gh', ':CocCommand clangd.switchSourceHeader<CR>', {noremap = true, silent = true})
end
})
--End Plugins setup
-- Key mappings
-- Insert mode mappings
vim.keymap.set('i', '<C-Space>', 'coc#refresh()', {silent = true, expr = true})
vim.keymap.set('i', '<CR>', 'coc#pum#visible() ? coc#pum#confirm() : "<CR>"', {silent = true, expr = true})
-- Normal mode mappings
vim.keymap.set('n', 'gd', '<Plug>(coc-definition)', {silent = true})
vim.keymap.set('n', 'gy', '<Plug>(coc-type-definition)', {silent = true})
vim.keymap.set('n', 'gi', '<Plug>(coc-implementation)', {silent = true})
vim.keymap.set('n', 'gr', '<Plug>(coc-references)', {silent = true})
vim.keymap.set('n', '[g', '<Plug>(coc-diagnostic-prev)', {silent = true})
vim.keymap.set('n', ']g', '<Plug>(coc-diagnostic-next)', {silent = true})
-- Winresize mapping
-- Vertical
vim.keymap.set('n', '<M-j>', ':wincmd 5-<CR>', {noremap = true, silent = true})
vim.keymap.set('n', '<M-k>', ':wincmd 5+<CR>', {noremap = true, silent = true})
-- Horizontal
vim.keymap.set('n', '<M-h>', ':wincmd 10<<CR>', {noremap = true, silent = true})
vim.keymap.set('n', '<M-l>', ':wincmd 10><CR>', {noremap = true, silent = true})
-- Additional normal mode mapping
vim.keymap.set('n', '<F2>', ':NvimTreeToggle<CR>', {silent = true})
vim.keymap.set('n', '<C-/>', '<leader>c<space>', {silent = true})
vim.keymap.set('n', 'K', ':call CocActionAsync(\'doHover\')<CR>', {silent = true})
Опишу только самое интересное, самое начало - базовая настройка, с этим справится каждый и примеров в интеренете море. Блок с плагинами:
Mofiqul/dracula.nvim
- цветовая схема. Использую ее не первый год, начал еще во времена работы в QtCreatorneoclide/coc.nvim
- фундаментальный плагин в миреnvim
. Нужен для таких вещей как автодополнение, inlayHint и кучи других фишек (я до конца его так и не изучил). У меня он собирается из исходников сmaster
ветки, потому что я хочу иметь самый свежий код этого плагина. Для его лучший работы необходимо устанавливать дополнительные внутрнении расширения, дляC++
отлично подходитcoc-clangd
, для работы сcmake
-coc-cmake
. Список огромент и найти его можно в оф. репозитории проектаnvim-treesitter/nvim-treesitter
- плагин для расширенной подсветки синтаксиса. Без него встроенная подсветка крайне скуднаnvim-tree/nvim-web-devicons
- плагин для разных иконок в интерфейсе, чисто визуалnvim-tree/nvim-tree.lua
- расширение, которое добавляет боковое дерево в навигацией по ФС. Удобно, если в проекте больше 2-3 файлов и имеется сложная вложенная структураnvimdev/indentmini.nvim
- плагин, который добавляет линию идентификации вложенности кода, показывает, на какой глубине твоя конкретная строка
Многие из этих плагинов совместимы с моей цветовой схемой, но такую поддержку имеют не все плагины и цветовые схемы. Если вы планируете использовать что-то другое - лучше проверить их совместимость
Далее настраиваем плагины:
nvim-treesitter
- настраиваю список языков, для которых необходимо проверять наличие установленных модулей, включаю для них атвоматическую установку и по умолчанию включаем подсветкуnvim-tree
- просто включаемindentmini
- настраиваем файлыlua
, в качестве исключения и устанавливаем минимальный уровень 2, мне просто не нравится когда лишняя линия идёт
А так же добавляем специфичные настройки для C++
файлов:
Дополнительный мапинг переключения между заголовочником и исходным файлом по
gh
командеПеренастройка
indentmini
- вC++
проектах мне больше нарвится, когда показана вложенность не во всём файле, а только конкретной строки
Глубже, только глубже
Живость?
Как уже было сказано, одной из причин моего перехода на nvim
стало использование контейнеров, а в них никого рабочего стола - только консоль, только удовольствие, а встроенный GnomeShell
мне не очень нравился - странный дизайн, странная настройка доступная через гуи, но лучше всё таки файлики вручную. Немного посомтрев интернет и Хабр в частности, нашёл я Alacritty
- лёгкий, минималистичный, шустрый, настройка только через консоль - всё как и хотел. Минимальная настройка и вуа-ля. Файл конфигурации:
# ~/.config/alacritty.toml
import = [
"~/.config/alacritty/catppuccin-mocha.toml"
]
[font]
normal = {family = "MonaspiceNe NFM", style = "Regular"}
[env]
TERM = "xterm-256color"
Здесь расказать особо нечего - настроил цветовую схему, подходящую под мою любимую dracula
, взял nerd шрифт, чтобы отображались красивые значки и задал переменную окружения, для нормального отображения цветов
Навалим удобства
Стоило бы на этом моменте уже остановиться погружаться так глубоко в недры терминальный жизни, НО НЕТ! Для завершения нам нехватает всего одного шага, но очень важного
Так как работа проходит в контейнере, а для каждого действия запускать отдельный терминал и входить в новую сессию bash
- долго, нудно, неудобно и вообще держать 10 открытых окон alacritty
(он не поддерживает табы и сплит)? И тут на работе я узнаю про утилиту tmux
- консольный мультиплексор - программа, позволяющая создавать нужное число вкладкок, давать им имена, копировать текст из консоли в системный буфер и рулить всем этим не открывая рук от клавиатуры - ВЕЛИЧИЕ!
Его настройка тоже довольна тривиальна:
set -g default-terminal "xterm-256color"
set-option -ga terminal-overrides ",xterm-256color:Tc"
set -g status-bg colour0
set -g status-fg colour7
Рассказывать о конфигурации особо нечего, задаю нужные опции для корректного отображения цветов и символов, а так же меняю цвет статусбара, чтобы визуально отличать хостовую сессию (статусбар темный) от сессии в контейнере (в рабочем образе я добавил этот же файл, только с другим цветом - синий), или от сессии на рабочех серверах (там стандартный зелёный цвет)
Вот такой получился мой путь в мир консоли
И зачем?
Пожалуй самая важная часть всей этой сатьи - зачем всё это?
По большому счёту - не за чем, во многих современных IDE есть vim пободный режим, в каждом современном редакторе кода имеется встроенный терминал, стандартные терминалы вроде и так хорошо кастомизируются, да и многие операции можно сделать не прибегая к его помощи. Но всё же плюсы имеются, и причем довольно весомые:
Минимизация ненужных функций - в моей среде есть только самое необходимое, только то, что мне понадобилось. IDE всегда предоставляет самый большой набор команд, скрытый в недрах менюшек, хоткеев и команд и чтобы научиться этим пользоваться необходимо пройти 10 туториалов. Всё это круто, НО это всё придумали крутые прогеры для крутых прогеров, а когда ты не пишешь одной ногой со скорость 10 000 символов в минуту, такое изобилие тебе мешает ну или как минимум не очень помогает
Изучение командной строки - когда за тебя никто и ничего не делает, будь то глобальный поиск про проекту, поиск файлов в проекте, создание нового класса, запуск и конфигурация проектов, тебе приходится делать это самому и тут ты начинаешь искать инструменты, которые тебе доступны в командной строке, писать для удобного использования скрипты, или или углубленно изучать уже знакомые утилиты. Всё это прокачивает тебя как разработчика, еомандная строка есть везде, и стандартные утилиты (они как правило на всех unix-based одинаковые) тоже
Ну и конечно внимание со стороны колег и знакомых. Как же люди дуреют, когда видят всё это сочетания -
nvim
запущенный в сессииtmux
с обилием вкладок, всё это происходит в нестандартном терминальном эмуляторе. Как они столбинеют, когда ты навигируешься наhjkl
, как недоумевают при виде поиска по проекту с помощьюgrep
в терминале
Всем спасибо!
Комментарии (37)
winorun
12.06.2025 10:24neoclide/coc.nvim зачем? В чем его приемущество перед lsp сервером?
Не совсем понятно зачем нужен tmux. Что не так с обычными вкладками в эмуляторе терминала? Лично мое мнение tmux нужен либо при подключение к серверу либо если приходится работать под windows.
Ну и третий вопрос: А чем стрелки не угодили?CrazyOpossum
12.06.2025 10:24Ну и третий вопрос: А чем стрелки не угодили?
Всё по тем же причинам, чем {idename} не угодило - эргономика.
Не совсем понятно зачем нужен tmux. Что не так с обычными вкладками в эмуляторе терминала? Лично мое мнение tmux нужен либо при подключение к серверу либо если приходится работать под windows.
tmux много плюсов на самом деле имеет. Можно хранить большую сессию в виме (да, можно делать это плагинами), можно поставить какой-нибудь долгий шелл-скрипт и детачнуться от него.
IUIUIUIUIUIUIUI
12.06.2025 10:24coc.nvim зачем? В чем его приемущество перед lsp сервером?
Пользуюсь coc.nvim потому, что это клиент для lsp-серверов.
Не совсем понятно зачем нужен tmux. Что не так с обычными вкладками в эмуляторе терминала?
Они не переживают перезапуск иксов, а tmux — переживает. Плюс, это двухуровневая группировка: например, у меня есть вкладка с tmux с одним проектом, другая вкладка с tmux с другим проектом, и так далее. И очень мало эмуляторов терминала умеют в шорткаты вроде «перейди к третьей вкладке», а Ctrl-A 3 — просто работает.
А чем стрелки не угодили?
Далеко руку уносить надо.
Jijiki
12.06.2025 10:24я пользуюсь гном шелл жму плюсик для вкладок), и клангдом в емаксе, coc.nvim вроде от js, на винде я бы наверно вообще не выбирал бы ничего пользовался бы визуалкой, а так просто пользуюсь таким сетапом )
VtripleG Автор
12.06.2025 10:24coc.nvim - проверенное решение со своей экосистемой, большим количеством внутренних плагинов под разные кейсы — просто удобно и без заморочек
В alacritty нет привычных вкладок :) так что tmux единственный вариант их туда добавить. Да и очень удобно создавать разные сессии под разные задачи - одна сессия рабочая со своими нужными вкладками, вторая под пет проект — и от них можно детачнуться и заниматься своим делами и всегда вернуться, даже позже закрытия самого терминала
А стрелки — идеологически — если vim, то добро пожаловать в hjkl, ну и руки далеко от основных клавиш не уносишь
Johan_Palych
12.06.2025 10:24а встроенный GnomeShell мне не очень нравился - странный дизайн, странная настройка доступная через гуи
И тут на работе я узнаю про утилиту tmuxДля начала:
i3wm is a tiling window manager, completely written from scratch.
Sway is a tiling Wayland compositor and a drop-in replacement for the i3 window manager for X11.VtripleG Автор
12.06.2025 10:24Да, но опцию с красивой системой оставить хотелось. Полностью в мир консоли уходить цели не было
Johan_Palych
12.06.2025 10:24Ну тогда:
Tiling Shell extension. На github
или
Terminator is a terminal emulator which supports tabs and multiple resizable terminal panels in one window. It is based on GNOME Terminal.
wiki.archlinux - Terminator
Terminator - Official site
GitHub
Enigma08
12.06.2025 10:24Спасибо за материал, но есть ощущение, что статья — это просто набор советов из разных мест, без личного опыта. Может, планируется вторая часть с более практической стороной и реальными кейсами? Было бы интересно.
VtripleG Автор
12.06.2025 10:24Проба пера, конфигурации и сам набор утилит получился по мере пользования. Мыслей о второй части пока нет, НО если появится что-то - с огромным удовольствием поделюсь! Если есть более конкретные предложения - буду только рад
naccuracy
12.06.2025 10:24Раньше тоже пользовался neoclide/coc.nvim но он тянет за собой npm (это не всегда удобно), можно вместо него попробовать другие реализации lsp, к примеру:
'neovim/nvim-lspconfig'
'hrsh7th/nvim-cmp'
'hrsh7th/cmp-nvim-lsp'
'hrsh7th/cmp-buffer'
'hrsh7th/cmp-path'
'hrsh7th/cmp-cmdline'VtripleG Автор
12.06.2025 10:24Возможно, но пока кейса, где не получается поставить npm не было, а большое количество удобных плагинов для разных языков и не только - штука приятная
shoytov
12.06.2025 10:24консоль - это отлично, но использовать только cli и tui интерфейсы все-таки не совсем продуктивно. Если бы что-то было однозначно лучше - другого бы просто не существовало в силу естественности выбора первого. Как любитель терминала, искренне рад, что автор пришел к тому, что многие моменты рабочей деятельности проще решать в терминале, но надеюсь, он не будет зацикливаться только на нем. Лично я чередую использование инструментов типа полноценных IDE с GUI интерфейсом и nvim с преднастроенной конфигурацией AstroVim и некоторомыми своми плагинами - это дает возможность не застревать (твердеть в сових принципах и убеждениях, что, я считаю, не совсем правильное решение в стремительно меняющимся мире технологий), что мотивирует лично меня на производство кода при помощи этих подходов и технологий.
Ну, и в завершение хочу порекомендовать автору, GUI редактор кода, который работает быстрее nvim, имя которому Zed - куча плагинов, поддержка lsp и т.д. Не знаю, насколько он подойдет для c++ (не трогал его со времен студенчества), но для Rust - прекрасно!Octagon77
12.06.2025 10:24Если бы что-то было однозначно лучше - другого бы просто не существовало в силу естественности выбора первого.
Это нелогично. По закону 20/80, всегда есть малограмотное большинство и продукты, которые его обслуживают.
shoytov
12.06.2025 10:24мне кажется, закон 80/20 или "правило Парето" несколько о другом ;)
Octagon77
12.06.2025 10:24Я пытался выяснить чьё это правило и потерпел неудачу - его приписывают всем подряд. Как побочный эффект - оказалось, что оно обо всём.
Само правило наводит на антинаучные размышления. Например, 20 - это похоже на принадлежность к одному из 5 первоэлементов, разница в эффективности в 16 раз - похожа на 2-кратное превосходство в каждой из 4-х стихий, а само 16 хорошо стыкуется как с наблюдаемым уровнем естественного неравенства, так и, по порядку величины, с тем, что профессор Савельев пишет и рассказывает о мозге.
VtripleG Автор
12.06.2025 10:24Мой путь программиста начался не так давно и пока переход в терминал дал много полезного. Понимаю, что некоторые вещи возможно в гуи будут проще, но никто не мешает вернуться позже с новыми кейсами и опытом )
wander
12.06.2025 10:24Главное, чтобы вы не заменяли профессионализм на ритуалы. Все эти приставки ТруЪ - это фанатизм в худшем его проявлении. Все эти ТруЪ стремятся поделить мир на белое и чёрное, на труъ и не труъ. Но не бывает хороших или плохих инструментов, бывают подходящие или неподходящие.
evgeniy_kudinov
12.06.2025 10:24А я почему-то потихоньку на Emacs (Doom) переползаю с VsCode, использую Helix вместо Vim/NVim. С Deepseek вполне себе (не без труда, конечно, учитывая мои познания Elisp около 5%) нужные функции делаю на Elisp, и как будто можно реализовать любые хотелки. ) А так Vim/NVim/Zed/Helix вполне отличные инструменты.
Jijiki
12.06.2025 10:24классный опыт, мне помогает всё больше годболт, для посмотреть попить кофе, нетбинс, ниже емакс-ванила и его я перестал трогать вообще, и еще ниже если надо сконцентрироваться и чтоб без овервыделения это нотпад(старый gedit с модулями там есть консоль под запуск и бар для просмотра файлов тоже)) оч помогает почемуто. я терминалом почти не пользуюсь теперь только если нужно, всякие посмотреть почитать уже всё нет 100%), единственное если придётся дебажить буду делать в терминале )
Goodzonchik
12.06.2025 10:24Классно, если есть навык работать в консоли. Так как я фронтендер, то приходится мышкой тыкать в экран, чтобы все проверять и перепроверять по 100 раз, поэтому 100% vim головного мозга не смогу получить. Но в один момент заметил, что VS Code делает кучу лишних вещей при переходе между ветками git. Мне это дело не понравилось, начал пользоваться консолью для гита. А чуть позже открыл для себя мир git alias и теперь популярные команды пишу еще короче. Теперь вместо `git checkout master` пишу `git cm`.
Stanislavvv
12.06.2025 10:24Вообще, очень походит на то, что вы делаете гуй в консоли, причём привязываетесь к конкретному эмулятору терминала, иначе пропадёт значительная часть фишек. Примерно то же самое, как некоторые не могут программировать вне конкретной IDE.
Если вас устраивает — хорошо. Если стало лучше — вообще отлично. Но всё ж рекомендую чуть меньше фанатизма.
Я не против консоли как таковой, я против крайностей, если что. "Работаем только в гуе" и "консоль наше всё" — примерно одно и то же по фанатизму, на мой взгляд. Стоит сочетать оба подхода. Как минимум, стоит попробовать гуёвый вим и гуёвый емакс (возможно, он понравится больше) — будут примерно те же возможности, но, как минимум, в емакс, чуть другие и побольше (не зря говорят про ОС emacs, но редактор там достаточно неплох и если не устраивает - есть viper)
VtripleG Автор
12.06.2025 10:24Фишки не пропадут, кроме пары алиасов. А вот консоль - штука универсальная. Просто на данный момент одно открытое окно терминала с включенной сессиией tmux заменяет сразу несколько вещей - окно редактора, окно терминала для запуска, окно терминала под разное
Понимаю, что может выглядеть фанатизмом - но я не против гуи, мне пока по душе жизнь в консоли
Jijiki
12.06.2025 10:24уже есть браузер на лиспе и целое готовое окружение, я смотрел как-то обзор по этому, поэтому елисп может как научить ну типо изучая как переделать всё в емаксе понимаем, когда действительно это благотворно и нужно(потомучто тратится время), кстати ява не далеко ушла со свингом от елиспа на самом деле, там так же легко на свинге делать тоже самое, корни емакса как никак вроде)
вообще лисп крутой язык, репл у него самый плодотворный и модный с кошками в псевдограффике на заставке )- очень еффективный, в емаксе прям чувствуешь себя как в годболте когда пишешь на лиспе
vvbob
12.06.2025 10:24Мне самому нравится работать в консоли, когда это необходимо, либо она предоставляет большие возможности (массовая обработка кучи файлов, например). Но все эти переходы на vi, как по мне попахивают каким-то фанатизмом. Выглядит это как цирковое представление - вот смотрите как я могу - ходить на руках одновременно жонглируя ножами и исполняя марж на губной гармошке. Выглядит круто и вызывает как минимум уважение что человек потратил такую массу времени на освоение всего этого, но все равно непонятно нафига оно лично мне..
Jijiki
12.06.2025 10:24java решение сьедает кучу памяти, а в случае с автокомплитом очень много порой, когда пользовался андроид студией это прям чувствуется, но можно тоже самое делать через консоль не испытывая это, открыть нетбинс тотже теже 500 мегабайт, у меня так же вышло когда разбирался как сделать редактор текста
3000(память может подскочить под 300 ну точно видел) строк, и хочешь не хочешь консоль возьмёт ресурсы, надо же не только текст править, а показывать консоль, соотв проводить процессы и рисовать текст
зато так легко как на java я еще нигде не делал текстовый редактор полностью с эмуляцией оболочки ) при желании на свинге можно эмулировать окружение и посмотреть сколько памяти займёт)
хотя чо я жалусь надо только прикрутить lsp
Скрытый текст
225 мегабайт даже рад)
Cheater
Зачем? Alacritty есть в terminfo в современных дистрибутивах. TERM=alacritty / alacritty-direct. Установка TERM в xterm-256color в Alacritty чревата неработой настроек цветовой схемы Alacritty и возможно каких-то Esc-последовательностей, специфичных для Alacritty.
VtripleG Автор
Надо будет попробовать. Не работали цвета и символы некоторые не отображались, нашел в интернете такое решение — заработало
A1EF
Хорошо быть программистом:) Когда занимаешься администрированием, нарваться на на машинку, что ничего не знает про Alacritty, удаётся часто. Так что для меня
xterm-256color
- это норма жизни, а вот с проблемами из-за этого сталкиваться как раз не приходилось.