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
Лицензия
lgpl-3.0
Загрузки
449
Владелец
Code enthusiast and FOSS commoner. I love writing software that makes people's lives easier.