gikeymarcia.neovim

Neovim

Despliega la última versión de neovim y tree-sitter desde GitHub para sistemas basados en Debian de arquitectura x86_64.

Opcionalmente:

  • Instalar la versión nocturna de neovim como nnvim
  • Sincronizar la configuración local de nvim con máquinas remotas
  • Instalar paquetes de apt de soporte
  • Instalar paquetes de pip de soporte (usa pipx)
  • Instalar paquetes de npm de soporte

Requisitos

Ninguno.

Variables del Rol

Configuración predeterminada

De forma predeterminada, este rol instalará neovim y tree-sitter desde GitHub. Puedes desactivar esta opción o cambiar la versión de cada aplicación que se instala con las variables.

neovim: true
neovim_version: "0.10.1"

treesitter: true
treesitter_version: "0.22.6"

Versión Nocturna de Neovim

Si deseas la última versión nocturna de la imagen appimage de neovim desde GitHub, puedes establecer 'neovim_nightly: true' (predeterminado: false)

neovim_nightly: true

Neovim PDE (Entorno de Desarrollo Personal)

Como la mayoría de los usuarios de vim te dirán, con el tiempo se convierte en una herramienta adaptada a tus necesidades. El problema de esta herramienta es mantener todas las partes en movimiento en sincronía en varias máquinas. El conmutador 'neovim_pde' busca ayudarte a capturar la configuración de tu entorno de desarrollo en un solo lugar y transferirla a múltiples máquinas sin problemas.

A continuación se presentan los valores predeterminados del rol.

neovim_pde: false

# paquetes
neovim_apt_packages: []
neovim_pip_packages: []
neovim_npm_packages: []

# configuración
neovim_external_config: []
neovim_config_dirs: []
neovim_config_syncs: []
  • neovim_pde es el interruptor que habilita/deshabilita este modo de sincronización extendido. Cuando este valor es falso (predeterminado), ninguna de las demás características de PDE se ejecutará. Sin paquetes, sin sincronizaciones.

Paquetes

Actualmente hay 3 sistemas de empaquetado compatibles:

  • neovim_apt_packages
  • neovim_pip_packages
  • neovim_npm_packages

Cada variable de empaquetado debe contener una lista de paquetes a instalar. Si seleccionas paquetes de una fuente dada, el gestor de paquetes también se instalará. Tu archivo de variables puede verse algo así.

neovim_pde: true
neovim_npm_packages:
  - neovim
neovim_pip_packages:
  - pynvim
  - flake8

En este caso, los gestores de paquetes 'npm' y 'pip' también se instalarán en su último estado. Hay controles más detallados en las variables predeterminadas bajo "profundizando".

Configuración

Al sincronizar la configuración, necesitas definir un primary_user que recibirá la configuración. A continuación, uso la lista 'neovim_config_syncs' para enumerar qué archivos y carpetas dentro de mi ~/.config/nvim/ local sincronizaré en la máquina remota.


Consejo: Las carpetas que deseas sincronizar deben tener un / al final.


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"

Si necesitas que una carpeta exista en el $HOME remoto, entonces debe definirse en la lista neovim_config_dirs utilizando /home/{{ primary_user }} como la raíz del camino. Por ejemplo, arriba me aseguro de que la carpeta de configuración de nvim exista en /home/{{ primary_user }}/.config/nvim.


Finalmente, si necesitas copiar archivos de configuración que están fuera de tu ~/.config/nvim, puedes usar la variable neovim_external_config. Esta variable debería ser una lista de pares clave-valor, 'src:' y 'dest:'.

  • src es la ruta al archivo local.
  • dest es la ruta de la máquina remota que recibiría el archivo 'src'. En general, estos comenzarán con /home/{{ primary_user }}.
neovim_external_config:
  - src: ~/.config/flake8
    dest: "/home/{{ primary_user }}/.config/flake8"
  - src: ~/.config/shellcheckrc
    dest: "/home/{{ primary_user }}/.config/shellcheckrc"

Arriba copio los archivos de configuración locales de flake8 y shellcheck a los hosts remotos.

Dependencias

Ninguna.

Ejemplo de Playbook

A continuación, combino toda la configuración anterior en un único playbook.

---
- hosts: all
  become: true

  roles:
    - 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"
...

Licencia

GPLv3

Información del Autor

Encuéntrame en GitHub @ https://github.com/gikeymarcia

Acerca del proyecto

Deploy the latest Neovim and sync your configs.

Instalar
ansible-galaxy install gikeymarcia.neovim
Licencia
lgpl-3.0
Descargas
508
Propietario
Code enthusiast and FOSS commoner. I love writing software that makes people's lives easier.