Почему вообще Neovim
VSCode я любила. Но с каждым проектом он становился медленнее, расширений накапливалось всё больше, и в какой-то момент при открытии файла я стала ждать дольше секунды. Для меня это неприемлемо.
Neovim запускается мгновенно. Всё работает в терминале. Никаких Electron, никаких лишних процессов. И конфиг — это просто Lua-файлы, которые я контролирую полностью.
Структура конфига
nvim/
├── init.lua # точка входа
└── lua/
└── molly/
├── core/
│ ├── options.lua # базовые настройки
│ └── keymaps.lua # мои биндинги
└── plugins/
├── lsp.lua # language servers
├── telescope.lua # fuzzy finder
└── ui.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-lspconfig | LSP: автодополнение, goto definition, ошибки |
telescope.nvim | Fuzzy search по файлам, grep, буферам |
nvim-treesitter | Синтаксическое дерево — подсветка лучше regex |
oil.nvim | Файловый менеджер как буфер — редактируешь как текст |
catppuccin | Тема, которую невозможно разлюбить |
LSP за три строки
local lspconfig = require("lspconfig")
-- Rust
lspconfig.rust_analyzer.setup({})
-- Python
lspconfig.pyright.setup({})
-- Go
lspconfig.gopls.setup({})
Итог
Мой конфиг лежит на GitHub — можете форкать и использовать как базу. Я намеренно держу его минималистичным: только то, что реально использую каждый день.
Лучший редактор — тот, который не мешает думать. Для меня это Neovim.