Meine dotfiles

Als Informatiker verwende ich viel Zeit in der Shell (Terminal) um nicht nur technische Operationen sondern auch alltägliche Aufgaben zu erledigen. Zum Beispiel öffne ich lieber die Shell um zwischen Ordnern hin und her zu wechseln als den Finder zu öffnen. Aber auch all meine git Operationen mache ich in der Shell.

Damit diese Aufgaben schnell und einfach von der Hand gehen kann man die Shell mit weiteren Programmen nachrüsten und auch Einstellungen vornehmen. Diese Einstellungen werden in den sogenannten dotfiles vorgenommen. Ein Trend ist zudem, die eigenen dotfiles online zur Verfügung zu stellen und viele Entwickler tun dies auch.

Laptop Keyboard Close-Up by VIKTOR HANACEK

Was sind dotfiles?

dotfiles sind Dateien die Einstellungen für die Shell und CLI-Programme enthalten. Diese Dateien liegen i.d.R. im Home Ordner und beginnen mit einem Punkt. Daher auch der Name: dot-File. Meine dotfiles findet man nun auch auf GitHub.

Warum sollte ich meine dotfiles z.B. auf GitHub hochladen?

Für die Frage gibt es drei Antworten:

  1. Wenn deine dotfiles online sind, sind sie zum einen als Backup gesichert und können wiederhergestellt werden. Zudem kann man so einfach seine Einstellungen zwischen Computern synchronisieren.
  2. Man kann mit der Community lernen und so seine Toolbox stetig erweitern
  3. Und natürlich kann man seine Erfahrungen teilen

Wie sehen meine Einstellungen aus?

zsh und oh-my-zsh

Ich benutze als Shell die Zsh mit dem Open Source Framwork oh-my-zsh, das viele gute Features nachrüstet. Ich hatte zudem mal Fish mit oh-my-fish getestet, das durch aus einen Blick wert ist, bin dann aber wieder zurück zur zsh gegangen, da zsh und oh-my-zsh um einiges mehr Features bietet.

Die Einstellungen für die Shell findet man in der zshrc Datei. Diese wird beim start geladen und kann verschiedene Dinge enthalten. Das reicht für einfache aliases und exports über eigene Funktionen. Der Anpassbarkeit sind keine Grenzen gesetzt.

git

Da ich all meine git Repos über die Shell verwalte habe ich auch einige Konfigurationen für git vorgenommen. In der gitconfig Datei stehen zum eine mein Name, allgemeine Farbeinstellungen und vor Allem aliases für git commands.

Neben den Konfigurationen habe ich ein gitignore_global File, dass Datei Typen enthält die ich nie commiten möchte, wie zum Beispiel .DS_Store Dateien.

Mit diesen dotfiles kann man nun alles rund um git einstellen. Zum Beispiel werde ich eigene Skripte noch einbauen, die ich dann in jeden git Repo triggern kann. Dafür ist die Community sehr hilfreich, da viele schon eigene Skripte geschrieben haben.

Vim und Sublime Text

In Vim verbringe ich persönlich wenig Zeit, da ich in Sublime Text programmiere, aber es ist dennoch gut Vim eingerichtet zu haben und damit umzugehen. Den für kleinere Änderungen ist es ein sehr hilfreicher Editor.

Da ich mich in Vim nicht so gut auskenne, habe ich ein Repo als submodule in mein Repo eingebunden und verwende die Vim Konfigurationen eines anderen. Das ist das schöne ein dotfiles, man kann sich Teile von anderen Abgucken oder einfach deren Einstellungen verwenden ohne großen Stress.

Meine Sublime Einstellungen kann man dafür im sublime/ Ordner finden. So habe ich meinen lieblings Editor immer so eingestellt, wie ich ihn haben will.

Further Reading

git, vim, sublime oder zsh sind nur einige Beispiele. Fast alle CLI-Programme haben rc-Dateien für Einstellungen und diese kann man dann in seinen dotfiles hinterlegen. Für einen ersten Einstieg in das Thema sollte man sich zwei Links mal anschauen. Auf nettuts findet man einen guten Artikel der in die Materie Einführt: Setting Up a Mac Dev Machine From Zero to Hero with Dotfiles. Der zweite Link ist eine kleine Infopage über dotfiles mit Bezug auf Github.

Veröffentlicht von Hans-Helge

Als studierter Informatiker arbeitet Hans-Helge gerne als freiberuflicher WordPress Entwickler und betreut neben eigenen Projekten viele andere Webseiten u.A. im ehrenamtlichen Bereich.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.