gikeymarcia.neovim

Neovim

从 GitHub 部署最新的 neovimtree-sitter,适用于 x86_64 的 Debian 系统。

可选:

  • 安装每日构建的 neovim 应用镜像为 nnvim
  • 将本地 nvim 配置同步到远程机器
  • 安装支持的 apt 软件包
  • 安装支持的 pip 软件包(使用 pipx)
  • 安装支持的 npm 软件包

要求

无。

角色变量

默认配置

默认情况下,该角色将从 GitHub 安装 neovim 和 tree-sitter。你可以通过变量关闭此功能或更改每个应用程序的安装版本。

neovim: true
neovim_version: "0.10.1"

treesitter: true
treesitter_version: "0.22.6"

每日构建的 Neovim 版本

如果你想要从 GitHub 获取最新的每日构建的 neovim 应用镜像,可以设置 '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 (默认为 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 中存在某个文件夹,则应使用 /home/{{ primary_user }} 作为路径的根目录在 neovim_config_dirs 列表中定义它。例如,上述代码确保 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 配置文件复制到远程主机。

依赖关系

无。

示例剧本

下面我将上述所有配置组合成一个单一剧本。

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

许可证

GPLv3

作者信息

在 GitHub 上找到我 @ https://github.com/gikeymarcia

关于项目

Deploy the latest Neovim and sync your configs.

安装
ansible-galaxy install gikeymarcia.neovim
许可证
lgpl-3.0
下载
508
拥有者
Code enthusiast and FOSS commoner. I love writing software that makes people's lives easier.