🌊 neovim + yazi + kitty#
Моя терминальная среда разработки: Neovim (IDE), Yazi (файловый менеджер), kitty (терминал).
Единая тема Kanagawa Wave и шрифт Lilex во всех трёх.
Устанавливается одной командой на macOS и Arch Linux.
| Что это | Конфиг | |
|---|---|---|
| 📝 Neovim | IDE: LSP, автодополнение, отладка, форматирование | config/nvim · основа — kickstart.nvim |
| 📂 Yazi | быстрый файловый менеджер с превью | config/yazi |
| 🐱 kitty | GPU-терминал со вкладками и сплитами | config/kitty |
⚡ Быстрая установка#
Перезапусти терминал — готово. Подробности ниже.
Важно
Не удаляй и не перемещай папку репозитория после установки: конфиги подключены симлинками на неё.
Нужна независимая копия — запусти./install.sh --copy.
📋 Что делает install.sh#
| # | Шаг | macOS | Arch Linux |
|---|---|---|---|
| 1 | Пакеты | Homebrew (ставит его, если нет) + packages/Brewfile |
pacman + packages/arch.txt |
| 2 | Шрифты | font-lilex, font-symbols-only-nerd-font |
Lilex с GitHub → ~/.local/share/fonts, ttf-nerd-fonts-symbols-mono |
| 3 | Конфиги | симлинки ~/.config/{nvim,yazi,kitty} → config/* |
то же |
| 4 | Shell | строка в ~/.zshrc / ~/.bashrc → shell/shellrc.sh |
то же |
| 5 | Neovim | плагины (точные версии из lazy-lock.json), LSP/форматтеры через Mason, парсеры Treesitter |
то же |
Существующие конфиги не удаляются — они переименовываются в ~/.config/nvim.bak-<дата> и т.п.
Скрипт можно запускать повторно: уже подключённое пропускается.
Флаги#
| Команда | Что делает |
|---|---|
./install.sh |
всё целиком |
./install.sh --skip-packages |
без установки пакетов (только конфиги, shell и плагины) |
./install.sh --copy |
копировать конфиги вместо симлинков |
./install.sh --help |
справка |
🍏 Установка на macOS — пошагово#
- Command Line Tools (git, компилятор):
- Клонировать и запустить:
Homebrew поставится сам, если его нет (попросит пароль). - Открыть kitty (Launchpad → kitty). Сделать его терминалом по умолчанию необязательно.
- Проверить:
nvim→:checkhealth.
🐧 Установка на Arch Linux — пошагово#
- git:
- Клонировать и запустить:
sudoспросит пароль дляpacman. - Запустить kitty из меню приложений.
- Проверить:
nvim→:checkhealth.
Заметка
Подходит и для производных Arch: EndeavourOS, Manjaro, CachyOS, Garuda.
Пакеты только из официальных репозиториев — AUR-хелпер (yay/paru) не нужен.
🎮 Как пользоваться#
| Команда | Что делает |
|---|---|
nvim / nvim файл |
редактор |
y |
yazi; при выходе (q) терминал остаётся в папке, где ты был |
z часть-пути |
прыжок в часто используемую папку (zoxide) |
Neovim — Leader = Пробел. Полная шпаргалка: config/nvim/COMMANDS.md.
| Клавиши | Действие |
|---|---|
<leader>sf |
поиск файлов |
<leader>sg |
поиск текста по проекту |
<leader>e |
дерево файлов (neo-tree) |
Shift+H / Shift+L |
предыдущий / следующий буфер |
<leader>tt |
терминал |
<leader>rr |
собрать и запустить C/C++ файл |
grd / grn / gra |
определение / переименовать / действия LSP |
F5 · <leader>b |
отладка · точка останова |
kitty
| macOS | Linux | Действие |
|---|---|---|
Cmd+T / Cmd+W |
Ctrl+Shift+T / Ctrl+Shift+W |
новая / закрыть вкладку |
Cmd+1…4 |
Ctrl+Shift+→ / ← |
перейти на вкладку |
Cmd+D / Cmd+Shift+D |
Ctrl+Shift+D / Ctrl+Shift+Alt+D |
сплит вертикальный / горизонтальный |
Cmd+K |
Ctrl+Shift+K |
очистить экран |
Cmd+Shift+R |
Ctrl+Shift+R |
перечитать конфиг |
🧩 Что внутри Neovim#
| Возможность | Плагины / инструменты |
|---|---|
| Менеджер плагинов | lazy.nvim (версии зафиксированы в lazy-lock.json) |
| Тема | kanagawa.nvim (wave) |
| Поиск | telescope.nvim + ripgrep + fd |
| LSP | clangd (C/C++), rust-analyzer, pyright + ruff (Python), vtsls + eslint (JS/TS), html, cssls, tailwindcss, emmet, jsonls, lua_ls — ставятся через Mason |
| Автодополнение | blink.cmp + LuaSnip |
| Форматирование | conform.nvim: clang-format, ruff, prettierd, stylua — при сохранении |
| Отладка | nvim-dap + dap-ui + codelldb (C/C++/Rust) |
| Подсветка | nvim-treesitter (недостающие парсеры ставятся сами при открытии файла) |
| Интерфейс | bufferline, neo-tree, which-key, gitsigns, render-markdown, toggleterm |
| Python | venv-selector (<leader>vs) |
| Web | autotag, подсветка цветов, понятные ошибки TS, версии пакетов в package.json |
🎨 Стиль#
Тема Kanagawa Wave одинаково настроена в трёх местах:
| Где | Файл |
|---|---|
| kitty | config/kitty/kitty.conf — цвета, шрифт Lilex 15pt (12pt на Linux) |
| yazi | config/yazi/theme.toml |
| neovim | config/nvim/init.lua — rebelot/kanagawa.nvim |
Основная палитра: фон #1f1f28 · текст #dcd7ba · синий #7e9cd8 · зелёный #98bb6c · жёлтый #e6c384 · красный #e46876.
🔄 Обновление#
Обновить плагины до свежих версий: в nvim :Lazy update, затем закоммитить изменившийся config/nvim/lazy-lock.json.
Поменял конфиг на этой машине? Благодаря симлинкам правки сразу в репозитории — просто git commit и git push.
🗑️ Удаление#
Затем убери строку с # neovim_yazi_settings из ~/.zshrc / ~/.bashrc.
Вернуть старые конфиги: mv ~/.config/nvim.bak-<дата> ~/.config/nvim (и т.д.).
🆘 Если что-то не так#
Вместо иконок квадратики / вопросы
Терминал не видит Nerd Font. Используй kitty из этой сборки. На Linux проверь: fc-list | grep -i -e lilex -e "Symbols Nerd";
если пусто — fc-cache -f и перезапусти kitty.
LSP не работает / нет автодополнения
В nvim: :checkhealth, :Mason (что установлено), :LspInfo. Переустановить: :MasonToolsInstall.
Ошибки Treesitter при открытии файла
Нужны tree-sitter CLI и компилятор C: tree-sitter --version, cc --version. Затем :TSUpdate.
C++: 'iostream' file not found (macOS)
xcode-select --install. Конфиг clangd сам передаёт пути к macOS SDK.
Нет превью картинок / PDF в yazi
yazi --debug покажет, каких программ не хватает. Картинки показываются в kitty (графический протокол).
Функция y не найдена
Перезапусти терминал или source ~/.zshrc. Проверь, что в ~/.zshrc есть строка # neovim_yazi_settings.
Конфиг Neovim основан на kickstart.nvim (MIT, см. config/nvim/LICENSE.md).