Переход на Vim
В 2024 году я окончательно мигрировал на Vim, а если быть точным — на NeoVim. Причин у этого перехода несколько:
- у меня закончилась лицензия на WebStorm, а продлить с территории РФ ее больше нельзя;
- мне удобно писать код без использования мыши и тач пада, а у Vim очень удобные и семантичные хот кеи, которые можно гибко настроить под себя;
- каждый день я имею дело с несколькими проектами на разных языках программирования (11ty.js, Next.js, Laravel) и очень удобно использовать для них один редактор.
Своя сборка #
Есть несколько проектов — оберток вокруг NeoVim (готовых конфигураций, которые превратят NeoVim в IDE): AstroNvim, NvChad и другие. Я попробовал несколько из них и для себя отметил, что все они достаточно тяжело конфигурируются под себя. Поэтому в новогодние каникулы я сел и написал свою сборку, которая удовлетворяет моим потребностям.
Установка #
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
.