2014-11-16 10 views
46

Vim scheint nicht korrekt auf ein Bindestrichsymbol in YAML-Dateien zu reagieren, wodurch das Format durchbrochen wird.Falsche Einrückung beim Bearbeiten von Yaml in Vim

Zum Beispiel habe ich einen Block, der sollte wie folgt aussehen:

handlers: 
     - name: restart exim4 
      service: name=exim4 state=restarted 

Wenn ich restart exim4 eingegeben haben und geben service: Vim reindents meine letzte service Linie:

handlers: 
     - name: restart exim4 
     service: name=exim4 state=restarted 

So klar Vim versucht, Sätze spaltenweise ausrichten, aber das ist nicht, was in YAML benötigt wird. Ich möchte ein Array mit zwei Werten erstellen.

Wie das beheben?

Antwort

20

Installieren Sie dieses Plugin:

https://github.com/chase/vim-ansible-yaml

Es wird mit ansible im Kopf, aber in der Theorie wird es mit allen Arten von YAML-Dateien arbeiten. Sie müssen: filetype = ansible leider einstellen, wenn Sie nicht mit verwandten Dateien arbeiten.

+0

Ich sah dieses Plugin - es erwartet Dateiname einen bestimmten Namen und/oder in einem bestimmten Ordner zu sein. Ansible Playbooks sind nicht die einzigen Dateien, die ich bearbeite. Deshalb habe ich nicht einmal versucht es zu installieren. Danke, ich werde Yml auf den Typ 'ansible' setzen. – Glueon

+0

wow, macht einen großen Unterschied, ich denke, obwohl die regelmäßige 'Yaml'-Syntax Wert zu beheben – akostadinov

8

Sie können reindent deaktivieren, wenn Sie : Schlüssel eingeben:

:set indentkeys-=<:> 

Bitte bearbeiten ~/.vimrc Datei, und fügen Sie die folgenden Zeilen:

filetype plugin indent on 
autocmd FileType yaml setl indentkeys-=<:> 

Hinweis:autocmd nach filetype kommt.


Sie können reindent auslösen, indem CTRL-F eingeben in INSERT Modus, zum Beispiel:

hello: world 
    foo: bar<C-F> 
44

Um den schönen 2-Raum YAML als Standard zu erhalten, wenn ich Hit Wagenrücklauf nach dem Doppelpunkt, fügte ich das zu meinem .vimrc:

Dies spielt auch gut mit dem Strich für das erwartete Ergebnis des OP.

+1

Danke, es macht den Job. – reversiblean

Verwandte Themen