2015-11-12 15 views
12

Używam vundle jako menedżera wtyczek dla vima. I chcę używać ansible do automatyzacji instalacji wtyczki vundle.Jak używać ansiblisa do obsługi wtyczki vim vundle?

Ale ja po prostu nie można dostać ansibl zrobić przepis automatycznie:

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

powyżej jest ansibl plik PlayBook yml dla vim. Kiedy ansible zaczyna wykonywać to zadanie, po prostu trwa wiecznie, nigdy się nie kończy i nigdy nie zawodzi. Dopóki nie zmusię go do zatrzymania przez CTRL C.

Jeśli uruchomię to polecenie bezpośrednio w guest OS, działa dobrze, vim pokazuje się i kończy instalację.

Na czym polega problem?

==========================================
Edycja :

Po czytać Roy Zuo „s odpowiedź i włącz trybie opisowym z vim, próbowałem następujące polecenia:

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

i poniżej jest wyjście:

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 

wydaje vi m zatrzymany, gdy nie może znaleźć wtyczki określonej w .vimrc. Każdy pomysł, jak kontynuować?

+0

Może to być spowodowane różnicami w środowisku. Czy grasz jako ten sam użytkownik, który logujesz się do systemu-gościa? – Petro026

Odpowiedz

7

Chciałbyś, aby w tym przypadku vim działał w trybie EX, co pozwala uniknąć wywołania interfejsu wizualnego, który wymaga tty do wyświetlenia. Zamiast tego spróbuj użyć następującego polecenia.

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

Tutaj -E mówi vim, aby uruchomić w trybie EX, oraz „-s” (dostępne tylko w trybie EX, help -s-ex) oznacza chcemy go uruchomić po cichu, bez podpowiedzi i komunikatów informacyjnych. Co więcej, bez pobierania twojego pliku środowiska wykonawczego, tryb EX nie wie, jak wykonać komendę PluginInstall.

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

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

Jak dla solarized kolorów brakuje, skoro jesteś już z Vundle, łatwo jest w swoim vimrc mają następujące elementy.

Plugin 'altercation/vim-colors-solarized' 

i powinieneś upewnić się, że linia colorscheme solarized jest po nim.

+0

Proszę również przypomnieć, że ansible może nie być w stanie rozwinąć '~', ale nie zagłębiłem się w niego. Łatwo jest go zastąpić pełną ścieżką lub zmienną ansibli. –

+0

Próbowałem twojego polecenia, ale ansible zawiedzie: '' ' failed: [default] => {" changed ": true," cmd ":" vim -E -s -c \ "source ~/.vimrc \" -c PluginInstall -c qa "," delta ":" 0: 00: 00.050793 "," koniec ":" 2015-11-16 12: 56: 56.527921 "," rc ": 1," start ":" 2015- 11-16 12: 56: 56.477128 "," ostrzeżenia ": []} ' '' –

+0

Próbowałem zainstalować książkę i to polecenie poprawnie instaluje wtyczki zgodnie z oczekiwaniami. Polecenie, którego użyłem, było źródłem 'vim -E -s -c ~ ~.vimrc "-c PlugInstall -c qa', którego' PlugInstall' jest poleceniem z [wtyczki vim] (https://github.com/junegunn/vim-plug) .Jeśli kod powrotu jest rzeczywiście ** 1 ** Próba wykonania tego samego polecenia bezpośrednio w terminalu daje ** 0 **. Nie wiem, co się dzieje, ale jeśli chcesz, aby Twój playbook był kontynuowany, może pomóc ci 'ignore_errors: yes'. –

Powiązane problemy