2015-11-12 4 views
12

Ich benutze vundle als Plugin-Manager für vim. Und ich möchte Ansible verwenden, um vundle Plugin-Installation zu automatisieren.Wie verwende ichsible zur Bereitstellung von vim vundle plugin?

Aber ich kann einfach nicht ansible Bestimmung automatisch zu tun:

- name: install vundle plugin 
    shell: vim +PluginInstall +qall 

oben ist die ansible Textbuch YML Datei für vim. Wenn ansible beginnt, diese Aufgabe auszuführen, geht es für immer weiter, es hört nie auf und es versagt nie. Bis ich es zwinge durch CTRL C zu stoppen.

Wenn ich diesen Befehl direkt im Gast os ausführen, funktioniert es gut, Vim zeigt und beendet die Installation.

Was ist das Problem hier?

==========================================
bearbeiten :

, Nach Roy Zuo ‚s Antwort zu lesen und auf den ausführlichen Modus von vim drehen, habe ich versucht, den folgenden Befehl ein:

vim -E -s -c "source ~/.vimrc" +PluginInstall +qall -V 

und unten ist die Ausgabe:

continuing in /home/vagrant/.vimrc 
Searching for "/usr/share/vim/vimfiles/after/syntax/syncolor.vim" 
Searching for "/home/vagrant/.vim/after/syntax/syncolor.vim" 
Searching for "/home/vagrant/.vim/bundle/Vundle.vim/syntax/syncolor.vim" 
Searching for "/after/syntax/syncolor.vim" 
Searching for "colors/solarized.vim" in "/home/vagrant/.vim,/usr/share/vim/vimfiles,/usr/share/vim/vim74,/usr/share/vim/vimfiles/after,/home/vagrant/.vim/after,/home/vagrant/.vim/bundle/Vundle.vim,/after" 
Searching for "/home/vagrant/.vim/colors/solarized.vim" 
Searching for "/usr/share/vim/vimfiles/colors/solarized.vim" 
Searching for "/usr/share/vim/vim74/colors/solarized.vim" 
Searching for "/usr/share/vim/vimfiles/after/colors/solarized.vim" 
Searching for "/home/vagrant/.vim/after/colors/solarized.vim" 
Searching for "/home/vagrant/.vim/bundle/Vundle.vim/colors/solarized.vim" 
Searching for "/after/colors/solarized.vim" 
not found in 'runtimepath': "colors/solarized.vim" 
line 188: 
E185: Cannot find color scheme 'solarized' 
finished sourcing /home/vagrant/.vimrc 
continuing in command line 

Es scheint, vi m wurde gestoppt, wenn das in .vimrc angegebene Plugin nicht gefunden werden konnte. Irgendeine Idee, wie man fortfährt?

+0

Könnte zu den Umgebungsunterschieden sein. Führen Sie Ihre Wiedergabe als denselben Benutzer aus, mit dem Sie sich beim Gastbetriebssystem anmelden? – Petro026

Antwort

7

Sie möchten, dass vim in diesem Fall im EX-Modus ausgeführt wird. Dadurch wird vermieden, dass die visuelle Schnittstelle angezeigt wird, für die ein TFT angezeigt werden muss. Versuchen Sie stattdessen den folgenden Befehl.

vim -E -s -c "source ~/.vimrc" -c PluginInstall -c qa 

Hier -E erzählt vim in EX-Modus, und „es“ (nur in EX-Modus, help -s-ex) zu starten bedeutet, dass wir wollen, dass es ohne Eingabeaufforderungen oder informative Nachrichten leise laufen. Darüber hinaus weiß der EX-Modus nicht, wie Sie den PluginInstall Befehl ausführen, ohne Ihre Laufzeitdatei zu beschaffen.

-s   Silent or batch mode. Only when Vim was started as "ex" or 
      when preceded with the "-e" argument. Otherwise see -s, 
      which does take an argument while this use of "-s" doesn't. 
      To be used when Vim is used to execute Ex commands from a file 
      instead of a terminal. Switches off most prompts and 
      informative messages. Also warnings and error messages. 
      The output of these commands is displayed (to stdout): 
        :print 
        :list 
        :number 
        :set  to display option values. 

====================

Was Ihre Solarisation Farbschema fehlt, da Sie bereits mit Vundle sind, ist es leicht zu Habe folgendes in deiner .

Plugin 'altercation/vim-colors-solarized' 

und Sie sollten sicher colorscheme solarized Linie kommen, nachdem es machen.

+0

Bitte denken Sie daran, dass Ansible nicht in der Lage ist, '~' zu erweitern, aber ich habe mich nicht damit beschäftigt. Es ist immer leicht, sie durch den vollständigen Pfad oder eine Variable zu ersetzen. –

+0

Ich habe Ihren Befehl versucht, aber Ansible schlägt fehl: '' ' fehlgeschlagen: [Standard] => {" geändert ": wahr," cmd ":" vim -E -s -c "Quelle ~ /. Vimrc" -c PluginInstall -c qa "," delta ":" 0: 00: 00.050793 "," end ":" 2015-11-16 12: 56: 56.527921 "," rc ": 1," start ":" 2015- 11-16 12: 56: 56.477128 "," warnings ": []} ' '' –

+0

Ich habe versucht, ein Playbook einzurichten und dieser Befehl installiert Plugins wie erwartet korrekt. Der Befehl, den ich verwendet habe, war "vim -E -s -c" Quelle ~ /.vimrc "-c PlugInstall -c qa', von dem' PlugInstall' der Befehl von [vim-plug] ist (https://github.com/junegunn/vim-plug). Der Rückgabecode ist jedoch tatsächlich ** 1 ** Wenn ich denselben Befehl direkt im Terminal ausprobiere, ergibt sich eine ** 0 **. Ich weiß nicht, was los ist, aber wenn du willst, dass dein Playbook weiterläuft, könnte ein 'ignore_errors: yes' helfen. –

Verwandte Themen