Всем привет!
Не судите строго, это моя первая статья не только на Хабр, но и в целом для ИТ мира
Немного о себе - зовут меня Сергей, я начинающий разработчик на С++, большой любитель программирования, 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 - цветовая схема. Использую ее не первый год, начал еще во времена работы в QtCreator

  • neoclide/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 пободный режим, в каждом современном редакторе кода имеется встроенный терминал, стандартные терминалы вроде и так хорошо кастомизируются, да и многие операции можно сделать не прибегая к его помощи. Но всё же плюсы имеются, и причем довольно весомые:

  1. Минимизация ненужных функций - в моей среде есть только самое необходимое, только то, что мне понадобилось. IDE всегда предоставляет самый большой набор команд, скрытый в недрах менюшек, хоткеев и команд и чтобы научиться этим пользоваться необходимо пройти 10 туториалов. Всё это круто, НО это всё придумали крутые прогеры для крутых прогеров, а когда ты не пишешь одной ногой со скорость 10 000 символов в минуту, такое изобилие тебе мешает ну или как минимум не очень помогает

  2. Изучение командной строки - когда за тебя никто и ничего не делает, будь то глобальный поиск про проекту, поиск файлов в проекте, создание нового класса, запуск и конфигурация проектов, тебе приходится делать это самому и тут ты начинаешь искать инструменты, которые тебе доступны в командной строке, писать для удобного использования скрипты, или или углубленно изучать уже знакомые утилиты. Всё это прокачивает тебя как разработчика, еомандная строка есть везде, и стандартные утилиты (они как правило на всех unix-based одинаковые) тоже

  3. Ну и конечно внимание со стороны колег и знакомых. Как же люди дуреют, когда видят всё это сочетания - nvim запущенный в сессии tmux с обилием вкладок, всё это происходит в нестандартном терминальном эмуляторе. Как они столбинеют, когда ты навигируешься на hjkl, как недоумевают при виде поиска по проекту с помощью grep в терминале

Всем спасибо!

Комментарии (37)


  1. Cheater
    12.06.2025 10:24

    xterm-256color

    Зачем? Alacritty есть в terminfo в современных дистрибутивах. TERM=alacritty / alacritty-direct. Установка TERM в xterm-256color в Alacritty чревата неработой настроек цветовой схемы Alacritty и возможно каких-то Esc-последовательностей, специфичных для Alacritty.


    1. VtripleG Автор
      12.06.2025 10:24

      Надо будет попробовать. Не работали цвета и символы некоторые не отображались, нашел в интернете такое решение — заработало


    1. A1EF
      12.06.2025 10:24

      Хорошо быть программистом:) Когда занимаешься администрированием, нарваться на на машинку, что ничего не знает про Alacritty, удаётся часто. Так что для меня xterm-256color - это норма жизни, а вот с проблемами из-за этого сталкиваться как раз не приходилось.


  1. swame
    12.06.2025 10:24

    А можно было назвать статью "Как меня покусал тимлид"


  1. anonymous
    12.06.2025 10:24


    1. VtripleG Автор
      12.06.2025 10:24

      А он не настаивал. Показал , а мне и понравилось


  1. artptr86
    12.06.2025 10:24

    А отладку тоже в консоли делаете как труЪ-линуксоид?


    1. Jijiki
      12.06.2025 10:24

      ну на линуксе можно найти визуальный отладчик

      а так)

      Скрытый текст


    1. VtripleG Автор
      12.06.2025 10:24

      Естественно )

      Благо гдб имеет туи версию


  1. winorun
    12.06.2025 10:24

    neoclide/coc.nvim зачем? В чем его приемущество перед lsp сервером?
    Не совсем понятно зачем нужен tmux. Что не так с обычными вкладками в эмуляторе терминала? Лично мое мнение tmux нужен либо при подключение к серверу либо если приходится работать под windows.
    Ну и третий вопрос: А чем стрелки не угодили?


    1. CrazyOpossum
      12.06.2025 10:24

      Ну и третий вопрос: А чем стрелки не угодили?

      Всё по тем же причинам, чем {idename} не угодило - эргономика.

      Не совсем понятно зачем нужен tmux. Что не так с обычными вкладками в эмуляторе терминала? Лично мое мнение tmux нужен либо при подключение к серверу либо если приходится работать под windows.

      tmux много плюсов на самом деле имеет. Можно хранить большую сессию в виме (да, можно делать это плагинами), можно поставить какой-нибудь долгий шелл-скрипт и детачнуться от него.


    1. IUIUIUIUIUIUIUI
      12.06.2025 10:24

      coc.nvim зачем? В чем его приемущество перед lsp сервером?

      Пользуюсь coc.nvim потому, что это клиент для lsp-серверов.

      Не совсем понятно зачем нужен tmux. Что не так с обычными вкладками в эмуляторе терминала?

      Они не переживают перезапуск иксов, а tmux — переживает. Плюс, это двухуровневая группировка: например, у меня есть вкладка с tmux с одним проектом, другая вкладка с tmux с другим проектом, и так далее. И очень мало эмуляторов терминала умеют в шорткаты вроде «перейди к третьей вкладке», а Ctrl-A 3 — просто работает.

      А чем стрелки не угодили?

      Далеко руку уносить надо.


    1. Jijiki
      12.06.2025 10:24

      я пользуюсь гном шелл жму плюсик для вкладок), и клангдом в емаксе, coc.nvim вроде от js, на винде я бы наверно вообще не выбирал бы ничего пользовался бы визуалкой, а так просто пользуюсь таким сетапом )


    1. VtripleG Автор
      12.06.2025 10:24

      coc.nvim - проверенное решение со своей экосистемой, большим количеством внутренних плагинов под разные кейсы — просто удобно и без заморочек

      В alacritty нет привычных вкладок :) так что tmux единственный вариант их туда добавить. Да и очень удобно создавать разные сессии под разные задачи - одна сессия рабочая со своими нужными вкладками, вторая под пет проект — и от них можно детачнуться и заниматься своим делами и всегда вернуться, даже позже закрытия самого терминала

      А стрелки — идеологически — если vim, то добро пожаловать в hjkl, ну и руки далеко от основных клавиш не уносишь


  1. 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.


    1. VtripleG Автор
      12.06.2025 10:24

      Да, но опцию с красивой системой оставить хотелось. Полностью в мир консоли уходить цели не было


      1. 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


  1. Enigma08
    12.06.2025 10:24

    Спасибо за материал, но есть ощущение, что статья — это просто набор советов из разных мест, без личного опыта. Может, планируется вторая часть с более практической стороной и реальными кейсами? Было бы интересно.


    1. VtripleG Автор
      12.06.2025 10:24

      Проба пера, конфигурации и сам набор утилит получился по мере пользования. Мыслей о второй части пока нет, НО если появится что-то - с огромным удовольствием поделюсь! Если есть более конкретные предложения - буду только рад


  1. 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'


    1. VtripleG Автор
      12.06.2025 10:24

      Возможно, но пока кейса, где не получается поставить npm не было, а большое количество удобных плагинов для разных языков и не только - штука приятная


  1. alef13
    12.06.2025 10:24

    Все 3 пункта перечисленные в конце статьи с лихвой перекрывает редактор ed :)


    1. VtripleG Автор
      12.06.2025 10:24

      Да. Но до такого надо дорасти, ну и можно сразу PDP11 доставать с пыльного склада :)


  1. shoytov
    12.06.2025 10:24

    консоль - это отлично, но использовать только cli и tui интерфейсы все-таки не совсем продуктивно. Если бы что-то было однозначно лучше - другого бы просто не существовало в силу естественности выбора первого. Как любитель терминала, искренне рад, что автор пришел к тому, что многие моменты рабочей деятельности проще решать в терминале, но надеюсь, он не будет зацикливаться только на нем. Лично я чередую использование инструментов типа полноценных IDE с GUI интерфейсом и nvim с преднастроенной конфигурацией AstroVim и некоторомыми своми плагинами - это дает возможность не застревать (твердеть в сових принципах и убеждениях, что, я считаю, не совсем правильное решение в стремительно меняющимся мире технологий), что мотивирует лично меня на производство кода при помощи этих подходов и технологий.
    Ну, и в завершение хочу порекомендовать автору, GUI редактор кода, который работает быстрее nvim, имя которому Zed - куча плагинов, поддержка lsp и т.д. Не знаю, насколько он подойдет для c++ (не трогал его со времен студенчества), но для Rust - прекрасно!


    1. Octagon77
      12.06.2025 10:24

      Если бы что-то было однозначно лучше - другого бы просто не существовало в силу естественности выбора первого.

      Это нелогично. По закону 20/80, всегда есть малограмотное большинство и продукты, которые его обслуживают.


      1. shoytov
        12.06.2025 10:24

        мне кажется, закон 80/20 или "правило Парето" несколько о другом ;)


        1. Octagon77
          12.06.2025 10:24

          Я пытался выяснить чьё это правило и потерпел неудачу - его приписывают всем подряд. Как побочный эффект - оказалось, что оно обо всём.

          Само правило наводит на антинаучные размышления. Например, 20 - это похоже на принадлежность к одному из 5 первоэлементов, разница в эффективности в 16 раз - похожа на 2-кратное превосходство в каждой из 4-х стихий, а само 16 хорошо стыкуется как с наблюдаемым уровнем естественного неравенства, так и, по порядку величины, с тем, что профессор Савельев пишет и рассказывает о мозге.


    1. VtripleG Автор
      12.06.2025 10:24

      Мой путь программиста начался не так давно и пока переход в терминал дал много полезного. Понимаю, что некоторые вещи возможно в гуи будут проще, но никто не мешает вернуться позже с новыми кейсами и опытом )


      1. wander
        12.06.2025 10:24

        Главное, чтобы вы не заменяли профессионализм на ритуалы. Все эти приставки ТруЪ - это фанатизм в худшем его проявлении. Все эти ТруЪ стремятся поделить мир на белое и чёрное, на труъ и не труъ. Но не бывает хороших или плохих инструментов, бывают подходящие или неподходящие.


  1. evgeniy_kudinov
    12.06.2025 10:24

    А я почему-то потихоньку на Emacs (Doom) переползаю с VsCode, использую Helix вместо Vim/NVim. С Deepseek вполне себе (не без труда, конечно, учитывая мои познания Elisp около 5%) нужные функции делаю на Elisp, и как будто можно реализовать любые хотелки. ) А так Vim/NVim/Zed/Helix вполне отличные инструменты.


  1. Jijiki
    12.06.2025 10:24

    классный опыт, мне помогает всё больше годболт, для посмотреть попить кофе, нетбинс, ниже емакс-ванила и его я перестал трогать вообще, и еще ниже если надо сконцентрироваться и чтоб без овервыделения это нотпад(старый gedit с модулями там есть консоль под запуск и бар для просмотра файлов тоже)) оч помогает почемуто. я терминалом почти не пользуюсь теперь только если нужно, всякие посмотреть почитать уже всё нет 100%), единственное если придётся дебажить буду делать в терминале )


  1. Goodzonchik
    12.06.2025 10:24

    Классно, если есть навык работать в консоли. Так как я фронтендер, то приходится мышкой тыкать в экран, чтобы все проверять и перепроверять по 100 раз, поэтому 100% vim головного мозга не смогу получить. Но в один момент заметил, что VS Code делает кучу лишних вещей при переходе между ветками git. Мне это дело не понравилось, начал пользоваться консолью для гита. А чуть позже открыл для себя мир git alias и теперь популярные команды пишу еще короче. Теперь вместо `git checkout master` пишу `git cm`.


  1. Stanislavvv
    12.06.2025 10:24

    Вообще, очень походит на то, что вы делаете гуй в консоли, причём привязываетесь к конкретному эмулятору терминала, иначе пропадёт значительная часть фишек. Примерно то же самое, как некоторые не могут программировать вне конкретной IDE.

    Если вас устраивает — хорошо. Если стало лучше — вообще отлично. Но всё ж рекомендую чуть меньше фанатизма.

    Я не против консоли как таковой, я против крайностей, если что. "Работаем только в гуе" и "консоль наше всё" — примерно одно и то же по фанатизму, на мой взгляд. Стоит сочетать оба подхода. Как минимум, стоит попробовать гуёвый вим и гуёвый емакс (возможно, он понравится больше) — будут примерно те же возможности, но, как минимум, в емакс, чуть другие и побольше (не зря говорят про ОС emacs, но редактор там достаточно неплох и если не устраивает - есть viper)


    1. VtripleG Автор
      12.06.2025 10:24

      Фишки не пропадут, кроме пары алиасов. А вот консоль - штука универсальная. Просто на данный момент одно открытое окно терминала с включенной сессиией tmux заменяет сразу несколько вещей - окно редактора, окно терминала для запуска, окно терминала под разное

      Понимаю, что может выглядеть фанатизмом - но я не против гуи, мне пока по душе жизнь в консоли


    1. Jijiki
      12.06.2025 10:24

      уже есть браузер на лиспе и целое готовое окружение, я смотрел как-то обзор по этому, поэтому елисп может как научить ну типо изучая как переделать всё в емаксе понимаем, когда действительно это благотворно и нужно(потомучто тратится время), кстати ява не далеко ушла со свингом от елиспа на самом деле, там так же легко на свинге делать тоже самое, корни емакса как никак вроде)

      вообще лисп крутой язык, репл у него самый плодотворный и модный с кошками в псевдограффике на заставке )- очень еффективный, в емаксе прям чувствуешь себя как в годболте когда пишешь на лиспе


  1. vvbob
    12.06.2025 10:24

    Мне самому нравится работать в консоли, когда это необходимо, либо она предоставляет большие возможности (массовая обработка кучи файлов, например). Но все эти переходы на vi, как по мне попахивают каким-то фанатизмом. Выглядит это как цирковое представление - вот смотрите как я могу - ходить на руках одновременно жонглируя ножами и исполняя марж на губной гармошке. Выглядит круто и вызывает как минимум уважение что человек потратил такую массу времени на освоение всего этого, но все равно непонятно нафига оно лично мне..


    1. Jijiki
      12.06.2025 10:24

      java решение сьедает кучу памяти, а в случае с автокомплитом очень много порой, когда пользовался андроид студией это прям чувствуется, но можно тоже самое делать через консоль не испытывая это, открыть нетбинс тотже теже 500 мегабайт, у меня так же вышло когда разбирался как сделать редактор текста

      3000(память может подскочить под 300 ну точно видел) строк, и хочешь не хочешь консоль возьмёт ресурсы, надо же не только текст править, а показывать консоль, соотв проводить процессы и рисовать текст

      зато так легко как на java я еще нигде не делал текстовый редактор полностью с эмуляцией оболочки ) при желании на свинге можно эмулировать окружение и посмотреть сколько памяти займёт)

      хотя чо я жалусь надо только прикрутить lsp

      Скрытый текст

      225 мегабайт даже рад)