neovim
Neovim
Разверните последнюю версию neovim и tree-sitter из GitHub для x86_64 систем на основе Debian.
По желанию:
- Установите ночное приложение neovim в формате appimage под именем
nnvim
- Синхронизируйте локальную конфигурацию nvim с удаленными машинами
- Установите необходимые пакеты apt
- Установите необходимые пакеты pip (использует pipx)
- Установите необходимые пакеты npm
Требования
Нет.
Переменные роли
Настройка по умолчанию
По умолчанию эта роль установит neovim и tree-sitter из GitHub. Вы можете отключить любое из этих действий и/или изменить версию каждой из приложений, которые должны быть установлены, с помощью переменных.
neovim: true
neovim_version: "0.10.1"
treesitter: true
treesitter_version: "0.22.6"
Ночная версия Neovim
Если вы хотите последнюю ночную версию neovim в формате appimage из GitHub, установите 'neovim_nightly: true' (по умолчанию: false)
neovim_nightly: true
Neovim PDE (Личный рабочий процесс разработки)
Как сообщают многие пользователи vim, этот инструмент адаптируется под ваши нужды со временем. Проблема в том, чтобы поддерживать все его составляющие в синхронизации на нескольких машинах. Переключатель 'neovim_pde' помогает сохранить настройки вашей среды разработки в одном месте и без проблем перенести их на несколько машин.
Ниже приведены значения по умолчанию для роли.
neovim_pde: false
# пакеты
neovim_apt_packages: []
neovim_pip_packages: []
neovim_npm_packages: []
# настройка
neovim_external_config: []
neovim_config_dirs: []
neovim_config_syncs: []
neovim_pde
— это переключатель, который включает/выключает этот расширенный режим синхронизации. Если это значение равно false (по умолчанию), то остальные функции PDE не будут работать. Без пакетов, без синхронизации.
Пакеты
В настоящее время поддерживаются 3 системы управления пакетами:
neovim_apt_packages
neovim_pip_packages
neovim_npm_packages
Каждая из переменных для пакетов должна содержать список пакетов для установки. Если вы выбираете пакеты из конкретного источника, менеджер пакетов также будет установлен. Ваш файл переменных может выглядеть приблизительно так.
neovim_pde: true
neovim_npm_packages:
- neovim
neovim_pip_packages:
- pynvim
- flake8
В этом случае менеджеры пакетов 'npm' и 'pip' также будут установлены в последнем состоянии. Есть более тонкие настройки в значениях по умолчанию в разделе "более подробно".
Настройка
При синхронизации конфигурации нужно определить primary_user
, который
получит конфигурацию. Ниже я использую список 'neovim_config_syncs',
чтобы перечислить, какие файлы и папки из моей локальной ~/.config/nvim/
нужно синхронизировать с удаленной машиной.
Совет: Папки, которые вы хотите синхронизировать, должны заканчиваться на /
.
neovim_pde: true
primary_user: prime
neovim_config_syncs:
- init.vim
- coc-settings.json
- autoload/
- ftplugin/
- lua/
- plug-config/
- snips/
- spell/
- syntax/
neovim_config_dirs:
- "/home/{{ primary_user }}/.config/nvim"
Если вам нужно, чтобы папка существовала в удаленном $HOME
, она должна быть
определена в списке neovim_config_dirs
, используя /home/{{ primary_user }}
в качестве корня
пути. Например, выше я убедился, что папка конфигурации nvim существует по адресу
/home/{{ primary_user }}/.config/nvim
Наконец, если вам нужно скопировать файлы конфигурации, которые находятся вне
вашего ~/.config/nvim
, вы можете использовать переменную neovim_external_config
. Эта переменная
должна быть списком пар "ключ-значение": 'src:' и 'dest:'.
src
— это путь к локальному файлуdest
— это путь к удаленной машине, который получит файл 'src'. Обычно они начинаются с/home/{{ primary_user }}
.
neovim_external_config:
- src: ~/.config/flake8
dest: "/home/{{ primary_user }}/.config/flake8"
- src: ~/.config/shellcheckrc
dest: "/home/{{ primary_user }}/.config/shellcheckrc"
Выше я копирую локальные файлы конфигурации flake8 и shellcheck на удаленные хосты.
Зависимости
Нет.
Пример плейбука
Ниже я объединяю всю вышеуказанную конфигурацию в один плейбук.
---
- хосты: все
become: true
роли:
- gikeymarcia.neovim
vars:
neovim_nightly: true
primary_user: mikey
neovim_pde: true
neovim_npm_packages:
- neovim
neovim_pip_packages:
- pynvim
- flake8
neovim_config_syncs:
- init.vim
- coc-settings.json
- autoload/
- ftplugin/
- lua/
- plug-config/
- snips/
- spell/
- syntax/
neovim_config_dirs:
- "/home/{{ primary_user }}/.config/nvim"
neovim_external_config:
- src: ~/.config/flake8
dest: "/home/{{ primary_user }}/.config/flake8"
- src: ~/.config/shellcheckrc
dest: "/home/{{ primary_user }}/.config/shellcheckrc"
...
Лицензия
GPLv3
Информация об авторе
Найдите меня на GitHub @ https://github.com/gikeymarcia
Deploy the latest Neovim and sync your configs.
ansible-galaxy install gikeymarcia/ansible-role-neovim