Ich benutze in meiner täglichen Arbeit vim als Editor. Im Laufe der Zeit habe ich dabei ein paar Dinge gelernt, die mir das Leben einfacher machen. Ein paar dieser „Tricks“ möchte ich euch heute einmal zeigen.
Autovervollständigung
Mit vim kann man seine Texte und Scripte autovervollständigen lassen. Das funktoniert mit normalen Wörtern, die schon einmal im Text vorgekommen sind STRG + n, mit ganzen Zeilen STRG + x + l oder mit Dateien und Ordnern im Filesystem.
Einfügen auf mehreren Zeilen
Es ist zwar nicht intuitiv, aber man kann relativ einfach viel Text auf einmal einfügen. Man kann entweder vor der Curserposition, z.B. am Anfang der Zeile, oder am Ende der Zeile Zusätzliche Zeichen hinzufügen.
In jedem Fall muss man erstmal mit STRG + v die Zeilen markieren, die bearbeitet werden sollen.
Das # am Anfang der Zeilen fügt man jetzt mit SHIFT + i (instert mode), gefolgt von #, gefolgt von ESC ein.
Der . am Ende der Zeilen funktioniert ähnlich. Aber statt SHIFT + i kommt $A zum Einsatz. Wieder gefolgt von dem Zeichen . und einem ESC.
History im vim
Lange zeit dachte ich, wenn ich zweimal dd benutze ist dar erste Inhalt weg. Genauso wie bei Word’s „auschneiden/einfügen“. Das ist allerdings nicht wahr. mit :reg kommt man in die History vom vim. Möchte man z.B. den dritten eintrag einfügen, geht das mit „3p.
json, jq und vim
In vergangen Blogposts wurde ja schon über die Macht von API, json und jq geschrieben. Das lässt sich wunderbar auch im vim kombinieren. Wenn ich mir Beispielsweise die Services einer icinga2 API ausgeben lasse, schaut das erstmal im vim recht unleserlich aus.
curl -k -u root:icinga 'https://127.0.0.1:5665/v1/objects/services' |vim -
Erst durch ein :%!jq ‚.results[].attrs | select(.active==true) | {__name, display_name, enable_perfdata}‘ wird daraus etwas schönes.
Jetzt wird nur noch Name, display_name und enable_perfdata angezeigt. Und das nur von Services, die „active“ sind.
Wenn du schonmal vergessen hast ein File, dass nur root bearbeiten darf ohne sudo mit vim zu
bearbeiten kennst du eventuell den Trick:
:w !sudo tee %
Damit wird der aktuelle buffer (w) an ’sudo tee‘ geschickt. tee schreibt dann in den aktuellen Dateinamen (%)
Das ganze wird um einiges cooler, wenn man folgendes in seine .vimrc schreibt. Der „>/dev/null“ teil schreibt dabei STDOUT nach /dev/null. Das File(%) wird trotzdem befüllt
“ Allow saving of files as sudo when I forgot to start vim using sudo.
cmap w!! w !sudo tee > /dev/null %
Das ganze führt dazu, dass man mit :w!! als root speichern kann.
Quelle: https://stackoverflow.com/questions/2600783/how-does-the-vim-write-with-sudo-trick-work