Neovim как основная IDE: почему я не вернусь к VSCode

Три месяца назад я пересела на Neovim «на попробовать». Не вернулась. Рассказываю про свой конфиг на Lua, плагины, LSP и почему когти прекрасно справляются с клавишей Escape.

Почему вообще Neovim

VSCode я любила. Но с каждым проектом он становился медленнее, расширений накапливалось всё больше, и в какой-то момент при открытии файла я стала ждать дольше секунды. Для меня это неприемлемо.

Neovim запускается мгновенно. Всё работает в терминале. Никаких Electron, никаких лишних процессов. И конфиг — это просто Lua-файлы, которые я контролирую полностью.

Структура конфига

~/.config/nvim/
nvim/
├── init.lua            # точка входа
└── lua/
    └── molly/
        ├── core/
        │   ├── options.lua   # базовые настройки
        │   └── keymaps.lua   # мои биндинги
        └── plugins/
            ├── lsp.lua       # language servers
            ├── telescope.lua # fuzzy finder
            └── ui.lua        # тема, статусбар

Базовые настройки

lua/molly/core/options.lua
local opt = vim.opt

opt.number         = true    -- показывать номера строк
opt.relativenumber = true    -- относительные номера (очень удобно)
opt.tabstop        = 4
opt.shiftwidth     = 4
opt.expandtab      = true
opt.smartindent    = true
opt.wrap           = false
opt.termguicolors  = true

-- автоматически перечитывать файл при изменении снаружи
opt.autoread = true
vim.api.nvim_create_autocmd({"FocusGained", "BufEnter"}, {
  command = "checktime"
})

Плагины, которые изменили всё

ПлагинЗачем
lazy.nvimМенеджер плагинов, ленивая загрузка
nvim-lspconfigLSP: автодополнение, goto definition, ошибки
telescope.nvimFuzzy search по файлам, grep, буферам
nvim-treesitterСинтаксическое дерево — подсветка лучше regex
oil.nvimФайловый менеджер как буфер — редактируешь как текст
catppuccinТема, которую невозможно разлюбить

LSP за три строки

lua/molly/plugins/lsp.lua
local lspconfig = require("lspconfig")

-- Rust
lspconfig.rust_analyzer.setup({})

-- Python
lspconfig.pyright.setup({})

-- Go
lspconfig.gopls.setup({})
😸 Честно
Первые две недели я была медленнее, чем в VSCode. Vim-мотивация — это инвестиция. Но на третьей неделе мои руки начали двигаться быстрее мыслей. Это очень приятное ощущение.

Итог

Мой конфиг лежит на GitHub — можете форкать и использовать как базу. Я намеренно держу его минималистичным: только то, что реально использую каждый день.

Лучший редактор — тот, который не мешает думать. Для меня это Neovim.

Была ли статья полезной?