ctorgalson.vim

Ansible 角色 Vim

一个用于在 Linux 和 macOS 上安装 Vim 和插件的 Ansible 角色。

这个角色使用 Vim 8 的本地包管理器(参见 :help packages),所以角色将默认安装到以下位置:

  • ~/.vim/pack/ansible-managed/start
  • ~/.vim/pack/ansible-managed/opt

请注意,与 Pathogen 或其他 Vim 插件管理器不同,Vim 的本地包管理不自动创建帮助标签。这个角色期望成为包管理器(即期望在每次添加或移除插件时运行),因此会管理帮助标签的创建。

如果你的使用案例不涉及使用此角色管理所有的 Vim 插件,你需要使用以下方法之一来管理帮助标签:

  • 在 Vim 中运行 :helptags ALL
  • 编写脚本(在 cron 或其他触发器上,如 Git hooks), 类似于这个角色的做法:vim -c 'helptags ~/.vim/pack' -c q

要求

这个角色没有特殊要求,但 Vim 包管理仅适用于 Vim > 8.0,因此需要确保存在足够新版本的 Vim,或者通过适当设置 vim_installed_packages 变量来安装。

角色变量

此角色中使用了以下变量。另请参阅示例剧本(见下文)和 molecule/default/playbook.yml 以获取具体示例。

变量名称 默认值 描述
vim_installed_packages ["vim"] 要安装的包的列表(传递给 Ansible 的 Package 模块)。
vim_removed_packages [] 要移除的包的列表(例如在 Ubuntu 上,可能更希望移除 vim-tiny)。
vim_owner "" 为哪个系统用户安装 Vim 和/或相关插件。
vim_pack_subdirectory ansible-managed 此角色安装的插件放置的目录名称,默认创建,例如 ~/.vim/pack/ansible-managed/start~/.vim/pack/ansible-managed/opt
vim_installed_plugins [] 要安装到 ~/.vim/pack/ansible-managed/start 的插件列表——有关此的详细信息,请参见 :help packages。应该包含一个 repo 属性,type 属性设置为 'start' 或 'opt',以及(可选的)一个由 Ansible 的 Git 模块使用的 version 属性。
vim_removed_plugins [] 要从 ~/.vim/pack/ansible-managed/{opt,start} 中移除的插件列表。每个条目应包含一个目录属性,设置为插件的目录名称,以及一个 type 属性,设置为 'start' 或 'opt'。
vim_dotfiles [] 要安装到 ~/ 的本地 Vim 相关点文件列表。

示例剧本

---
# 注意:所有这些插件——即使是示例中被移除的插件——都是我每天使用的优秀插件。
#
- hosts: all
  vars:
    vim_removed_packages:
      - "vim-tiny"
    vim_owner: "molecule"
    vim_installed_plugins:
      - repo: "https://github.com/altercation/vim-colors-solarized.git"
        type: "start"
      - repo: "https://github.com/itchyny/lightline.vim.git"
        type: "start"
      - repo: "https://github.com/scrooloose/nerdcommenter.git"
        type: "start"
      - repo: "https://github.com/skammer/vim-css-color.git"
        type: "start"
      - repo: "https://github.com/vim-vdebug/vdebug.git"
        type: "opt"
      - repo: "https://github.com/godlygeek/tabular.git"
        type: "opt"
    vim_removed_plugins:
      - directory: "nerdcommenter"
        type: "start"
      - directory: "tabular"
        type: "opt"
    vim_dotfiles:
      - "{{ playbook_dir }}/files/dotfiles/.vimrc"
  roles:
    - role: ansible-role-vim

许可证

GPLv3

作者信息

克里斯托弗·托尔加尔森 (Christopher Torgalson)

关于项目

An Ansible role to install Vim and plugins on Linux and macOS.

安装
ansible-galaxy install ctorgalson.vim
许可证
gpl-3.0
下载
2.9k