--- - name: Ensure vim and all dependencies are present apt: name: - vim-nox - git - ripgrep - python3-pip - python3-venv - powerline state: present - name: Ensure pynvim is present shell: "pip3 install pynvim" - name: create the vim autoload directory for all the provided users file: path: "{{ item.home }}/.vim/autoload" state: directory owner: "{{ item.username }}" group: "{{ item.group|default(item.username) }}" mode: 0755 recurse: yes with_items: "{{ dev_box.users }}" - name: create the vim swp directory for all the provided users file: path: "{{ item.home }}/.vim/swp" state: directory owner: "{{ item.username }}" group: "{{ item.group|default(item.username) }}" mode: 0755 recurse: yes with_items: "{{ dev_box.users }}" - name: create the vim backup directory for all the provided users file: path: "{{ item.home }}/.vim/backup" state: directory owner: "{{ item.username }}" group: "{{ item.group|default(item.username) }}" mode: 0755 recurse: yes with_items: "{{ dev_box.users }}" - name: Write the vimrc for all the provided users template: src: templates/vimrc.j2 dest: "{{ item.home }}/.vim/vimrc" owner: "{{ item.username }}" group: "{{ item.group|default(item.username) }}" mode: 0644 with_items: "{{ dev_box.users }}" - name: Symlink vimrc for all the provided users file: src: "{{ item.home }}/.vim/vimrc" dest: "{{ item.home }}/.vimrc" state: link with_items: "{{ dev_box.users }}" - name: Ensure vim.plug is present get_url: url: "https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim" dest: "{{ item.home }}/.vim/autoload/plug.vim" owner: "{{ item.username }}" group: "{{ item.group|default(item.username) }}" mode: 0644 with_items: "{{ dev_box.users }}" - name: Execute PlugInstall shell: cmd: "su - {{ item.username }} -c 'vim -E -c PlugInstall -c q -c q'" chdir: "{{ item.home }}" with_items: "{{ dev_box.users }}" ignore_errors: yes