Seite wählen

NETWAYS Blog

vim, puppet-lint und syntastic

Der letzte Blogpost von mir zeigte wie schnell und einfach man mit pathogen, tabular und vim-puppet die Konfigurationsdateien einheitlich formatieren kann. Von dem Puppet Style Guide ist das Ganze leider noch weit entfernt. Es wird eigentlich ja nur korrekt eingerückt und Syntaxhighlighting macht alles bunter. Mit Hilfe von syntastic, puppet und puppet-lint kann auch noch die Syntax überprüft werden (gemäß des Puppet Style Guides) und es kommt sofort Feedback wenn z.B. eine Variable in einfachen Hochkommas steht (z.B. bla => ‚$blubb‘).
syntastic ist ein Vim-Plugin zum überprüfen der Syntax verschiedenster Programmiersprachen (und Ähnliches). Im Fall von Puppet-Konfigurationsdateien greift es auf puppet-lint und puppet zurück, parsed die Ausgabe und zeigt uns durch kleine Spitze Klammern und Fehlermeldungen an was genau in unserem Code noch schief läuft. Jeder kennt das ganze aus halbwegs modernen IDEs wie Eclipse und Co.
Dank pathogen ist die Installation von syntastic mit Hilfe eines einfach git clone erledigt:

$ cd ~/.vim/bundle
$ git clone git://github.com/scrooloose/syntastic.git

Puppet und puppet-lint kann man über den Paketmanager installieren.

# apt-get install puppet puppet-lint

Wer eine aktuellere Version von puppet-lint bevorzugt kann dies auch über rubygems installieren:

$ gem install puppet-lint

Ob nun wirklich alles installiert ist und ob das ganze auch wirklich gut ist kann man ganz leicht mit einem kleinem Beispiel testen:

$ vim test.pp
   class test {
     file { '/tmp/test':
       ensure => present,
         owner  => 'root',
       group => 'root',
       mode   => "0440"
       source => 'puppet:///test/etc/test',
       force  => true,
     }
   }

Speichert man nun die Datei ab (:w), wird im Hintergrund puppet-lint gestartet und syntastic zeigt uns die Fehler. In der Statuszeile werden immer die Fehler der aktuellen Zeile angezeigt. Links am Rand werden Warnungen gelb und Errors mit rot dargestellt, aber seht selbst.
Die meisten von euch denken sich vermutlich: „Für was soll das ganze gut sein? Fehler? Mach ich doch keine!“
sytastic with vim

Achim Ledermüller
Achim Ledermüller
Senior Manager Cloud

Der Exil Regensburger kam 2012 zu NETWAYS, nachdem er dort sein Wirtschaftsinformatik Studium beendet hatte. In der Managed Services Abteilung ist er für den Betrieb und die Weiterentwicklung unserer Cloud-Plattform verantwortlich.

Puppet und vim

Die Formatierung von Quelltext ist für die Lesbarkeit natürlich entscheidend und sobald man im Team arbeitet sollte sich jeder an die gleiche Formatierung halten. Vermutlich gibt es für fast jede Programmier- oder Beschreibungssprache einen Styleguide, aber ganz ehrlich, wenn mein Editor das nicht für mich erledigt, lese ich selten irgendwelche Styleguides um herauszufinden, wie weit ich einrücken soll oder ob ich Tabs anstatt Leerzeichen verwenden soll. Glücklicherweise hat rodjek für meinen Lieblingseditor und Puppet eine einfache Lösung parat, welche sich um die Einrückungen und die Ausrichtung der Pfeiloperatoren kümmert und auch Syntax-Highlighting mitbringt. Damit das eigene .vim-Verzeichnis übersichtlich bleibt und die benötigten vim-Plugins auch wieder leicht entfernt werden können, werfen wir aber erstmal einen kurzen Blick auf pathogen, ein vim-Plugin zum Verwalten von vim-Plugins.
pathogen ist zum Glück schnell installiert (die paar Zeilen Code sind von pathogen geklaut):

mkdir -p ~/.vim/autoload ~/.vim/bundle;
curl -Sso ~/.vim/autoload/pathogen.vim  \
  https://raw.github.com/tpope/vim-pathogen/master/autoload/pathogen.vim

Jetzt muss man nur noch folgende Zeilen in die ~/.vimrc eintragen und pathogen ist fertig konfiguriert:

call pathogen#infect()
syntax on
filetype plugin indent on

Nachdem wir jetzt unsere vim-Plugins leicht verwalten können, zurück zum eigentlich Thema. Um das vim-Plugin vim-puppet zu installieren reicht dank pathogen ein einfaches git clone im neu angelegten bundle-Verzeichnis. Damit auch noch die automatische Ausrichtung der ‚=>‘-Operatoren funktioniert, muss man noch das vim-Plugin tabular installieren.

cd ~/.vim/bundle
git clone https://github.com/rodjek/vim-puppet.git
git clone https://github.com/godlygeek/tabular.git

Wenn man in vim einen Textbereich markiert und = drückt, richtet sich dieser wie von Zauberhand nach den Puppet Guidelines aus! Ein ggVG= im Commandmode und die ganze Datei ist richtig formatiert.
Mein Dank geht an tpope, rodjek und godlygeek. Dort findet Ihr auch ausführlichere Infos.
Im nächsten Blogpost von mir erfahrt Ihr dann mehr über das vim-Plugin syntastic, welches die Syntax eures Codes schon während des Schreibens überprüft.

Achim Ledermüller
Achim Ledermüller
Senior Manager Cloud

Der Exil Regensburger kam 2012 zu NETWAYS, nachdem er dort sein Wirtschaftsinformatik Studium beendet hatte. In der Managed Services Abteilung ist er für den Betrieb und die Weiterentwicklung unserer Cloud-Plattform verantwortlich.

Weekly Snap: Pyinotify, OpenLDAP & Birger's Sabbatical

11 – 15 June counted down to the OSMC and Birger’s sabbatical, but also shared a few tips on databases replication, working in VIM and a python library worth looking into.
Eva counted 128 days down to the OSMC 2012 with a video of Jens Schanz’s presentation on “Monitoring at Mueller Ltd. & Co.KG” and introduced the workshops on the conference eve.
While Dirk had fun with Pyinotify, Markus gave a quick tip on brightening the syntax in VIM, and Lennart shared his on what he dubbed N-way master replication for OpenLDAP.
Bound for his yearlong sabbatical, Birger bid farewell and started his “Birger Sabbatical” blog series. We wish him all the best!

Kurz gebloggt: vim auf schwarzer Konsole

Wer kennt es nicht: Das Blau vom Syntax in vim ist so dunkel, dass man auf einem schwarzen Hintergrund kaum was lesen kann?
Dafür gibt es recht einfache Abhilfe:

:set background=dark

Oder auch eben anders rum:

:set background=light

Und als Tipp sei noch gesagt:

echo "set background=dark" >> ~/.vimrc