Переход на Vim

В 2024 году я окончательно мигрировал на Vim, а если быть точным — на NeoVim. Причин у этого перехода несколько:

  • у меня закончилась лицензия на WebStorm, а продлить с территории РФ ее больше нельзя;
  • мне удобно писать код без использования мыши и тач пада, а у Vim очень удобные и семантичные хот кеи, которые можно гибко настроить под себя;
  • каждый день я имею дело с несколькими проектами на разных языках программирования (11ty.js, Next.js, Laravel) и очень удобно использовать для них один редактор.

Своя сборка #

Есть несколько проектов — оберток вокруг NeoVim (готовых конфигураций, которые превратят NeoVim в IDE): AstroNvim, NvChad и другие. Я попробовал несколько из них и для себя отметил, что все они достаточно тяжело конфигурируются под себя. Поэтому в новогодние каникулы я сел и написал свою сборку, которая удовлетворяет моим потребностям.

Внешний вид моей сборки vim

Установка #

git clone git@github.com:ifelseapps/nvim-config.git ~/.config/nvim

Предварительно желательно удалить старые конфиги и артефакты:

rm -rf ~/.config/nvim
rm -rf ~/.local/share/nvim
rm -rf ~/.local/state/nvim
rm -rf ~/.cache/nvim

Замечание по поводу клавиши Ctrl #

Многие vim’еры советуют (и я присоединяюсь к этому совету) переназначить клавишу Caps Lock на Ctrl. Это необходимо, потому что клавиша Ctrl используется во многих сочетаниях клавиш. Очень удобно зажимать ее безымянным пальцем, не перемещая левую руку вниз с основных клавиш.

Горячие клавиши #

В сборке настроены следующие сочетания клавиш (в дополнение к стандартным):

Сочетание клавиш Операция
Дерево проекта
Ctrl + e Открыть дерево проекта
Ctrl + r Найти текущий файл в дереве проекта
Поиск
Space + f + f Поиск файла
Space + f + g Поиск по содержимому
Space + f + o Поиск среди недавно открытых файлов
Space + f + b Поиск среди открытых буфферов
Space + g + s Поиск среди файлов, находящихся под версионным контролем
Буферы
Ctrl + / Разделить экран по вертикали
Ctrl + 0 Разделить экран по горизонтали
Ctrl + l Перейти к буферу слева
Ctrl + h Перейти к буферу справа
Ctrl + k Перейти к буферу выше
Ctrl + j Перейти к буферу ниже
LSP (Language Server Protocol)
g + D Переход к декларации
g + d Переход к определению
g + i Переход к реализации
g + r Переход к ссылкам (на сущность)
K Hover на элементе
Space + r + n Переименование сущности
Space + c + a Список действий
Space + f Форматирование
Autocomplete
Shift + Tab Вызвать autocomplete
Ctrl + e Закрыть autocomplete
Ctrl + j/k Навигация между подсказками
Перемещение по строке (HOP)
f + [искомый символ] Переход к символу (после курсора)
F + [искомый символ] Переход к символу (до курсора)
Комментирование
Ctrl + 9 Комментировать/раскомментировать

Тема #

В данной сборке nvim используется тема Solarized Osaka.

Настройка под себя #

Настройка под себя интуитивно понятна.

Конфигурации всех плагинов находятся в директории lua/plugins.

Для добавления нового плагина создайте в этой директории новый файл. Далее выполните инициализацию плагина:

require("название плагина").setup({ ---опции })

В конце зарегистрируйте плагин в файле lua/plugins/plugins.lua и подключите конфигурацию плагина в файле init.lua.