--- - name: "Include OS-specific variables" ansible.builtin.include_vars: "{{ ansible_facts['os_family'] | lower }}.yml" - name: "Ensure vim is installed" become: true ansible.builtin.package: name: "{{ vim_pkg }}" state: "present" - name: "Clone vimrc git repo" ansible.builtin.git: repo: "{{ vimrc_repo_url }}" dest: "{{ ansible_facts['env']['HOME'] }}/.vim" clone: true update: false single_branch: true version: "main" - name: "Ensure .vimrc is linked" ansible.builtin.file: src: "{{ ansible_facts['env']['HOME'] }}/.vim/.vimrc" dest: "{{ ansible_facts['env']['HOME'] }}/.vimrc" state: "link" # We don't care much if vim failed to install all plugins # this can be manually fixed later when needed - name: "Setup vim plugins" ansible.builtin.shell: cmd: "{{ vimrc_setup_script }}" executable: "/bin/bash" creates: "{{ ansible_facts['env']['HOME'] }}/.vim/bundle/" failed_when: false