Версионирование
Основным преимуществом NeoVim является его простой перенос из одной среды в другую посредством клонирования конфига из удалённого репозитория в папку с конфигом
И далее на другой машине просто скопируем конфиг
Git плагины
Для работы с Git внутри Vim нам потребуется установить два плагина Fugitive и Flog
Параметр lazy
в конфиге отвечает за загрузку вместе с neovim либо только при использовании плагина
lua / plugins / figutive.lua
:G
откроет меню с изменениями, которые мы сделали в проекте, где s
застейджит изменения, u
заанстейджит их, X
сбросит текущие изменения
:Flog
откроет окно с коммитами
:G push
- запушить изменения
:G pull
- запулить изменения
LazyGit
Это плагин для отображения удобного интерфейса истории работы с гитом
Устанавливаем сначала саму утилиту:
Конфигурация lazygit:
.config / lazygit / config.yml
Далее устанавливаем плагин в neovim
lua / plugins / lazygit.lua
И теперь на <leader>lg
у нас открывается окошко с историей гита. Для перемещения по вкладкам, нужно использовать 1-4
. Для перемещения между табами вкладок [
/]
. Чтобы скроллить правую панель, нужно будет использовать PgUp
и PgDn
ctrl + ?
- откроет меню с подсказками для определённого окна, в котором мы сейчас находимся. Шорткаты будут отличаться в зависимости от активного окна, в котором мы работаем
Через /
можно запустить поиск по любому из окошек
При открытии файла через enter из второго меню, мы можем определять, какие строки мы хотим стейджить, а какие нет через space
. Переключение между вкладками на Tab
Через a
мы можем застейджить всё, а через c
открыть поле для создания коммита, где через enter
создадим новый коммит
P
- отправить коммит на удалённую репу
Во вкладке с ветками мы можем создавать новые ветки через n
и переключаться по ним через space
Так же через enter
мы можем просмотреть все коммиты, которые были сделаны в этой ветке
А уже дальше в 4 или 3 вкладке мы можем через enter
взглянуть на измения, которые были сделаны в этом коммите
Через M
мы смёрджим ветку, на которой мы находимся с целевой
И если у нас есть конфликты, то утилита предложит их разрешить
Через space
выбираем нужный вариант, через b
можем принять все изменения
Leap
Плагин Leap позволяет нам быстро перемещаться горизонтально и вертикально к определённому слову
lua / plugins / leap.lua
s
+ первые две буквы
- будет искать слово ниже нашего курсора и при нахождении вхождений подсветит возможные варианты, по которым мы сможем перейти после нажатия выделенной буквы
То же самое, но до курсора будет работать с S
Which key
Так же, чтобы не теряться в большом количестве сочетаний, которое присутствует в виме и его плагинах может помочь WhichKey, который активируется при нажатии клавиши без определения сочетания и выводит подсказку с доступными действиями по клавише
Просто нажали leader
:
Просто нажали g
:
Чтобы добавить описание для сочетания из плагина, мы можем добавить параметр desc
, в котором опишем его действие
lua / plugins / lsp.lua
Несколько сборок NVim
Так же ничто не мешает нам использовать сразу несколько сборок NeoVim
Для этого механизма в NeoVim было реализовано открытие определённой папки с конфигурацией по переменной окружения. Например, тут будет открываться папка nv
в качестве входной точки конфигурации
Поэтому в файле конфигурации нашего терминала, мы можем сделать алиас на вызов определённой конфигурации
.zshrc
А так же мы можем добавить окошко с выбором конфига по команде nvims
, в котором будут отображены варианты наших сборок (в поле items)
.zshrc
Dashboard
Далее для красоты сборки остаётся только добавить startup экран, прям как у взрослых с помощью dashboard-nvim
lua / plugins / dashboard.lua
И теперь наш стартапчик будет выглядеть примерно таким образом:
Описание плагинов
- Neotest - плагин для удобного запуска тестов в приложении
leader
+ t
запускает множество команд для прогонки тестов
- DAP - плагин для дебага приложения
Первым делом получаем сокет с активным дебагом от нашего приложения
leader
+ d
+ b
- ставим точку остановы
leader
+ d
+ u
- открытие окна с дебагом
leader
+ d
+ s
- запуск дебага
И когда выполнение кода дойдёт до точки, то окно заполнится нужными данными
- Lazydev - подсказка сигнатуры вызова метода и упрощение работы с LSP неовима
- Diffview - показывает изменения между файлами для гита
lead + g + f
- откроет историю изменений файла. Очень удобно смотреть на различные изменения файла в течение времени
- better-bqf
g + f
- позволяет быстро найти все определения функции / метода в коде и удобно предоставляет список внизу с окошком
На o
можно перейти на нужный референс
- Todo Comments
Подсвечивает тудушки и остальные ключевые слова в проекте
:TodoQuickFix