Textdateien unter macOS in der Shell bearbeiten

Textdateien können in macOS mit Text-Editoren bearbeitet werden. Standardmäßig steht dafür die Anwendung TextEdit zur Verfügung, die sich im Programme-Ordner befindet.

Darüber hinaus gibt es noch anderen Programme, mit denen Textdateien in macOS erstellt oder bearbeitet werden können, z.B. Sublime Text, BBEdit oder Visual Studio Code.

In diesem Artikel wollen wir aber einen Blick auf Programme werfen, mit denen in der Shell Textdateien bearbeitet werden können.

pico, nano und touch

Sofern keine Veränderungen vorgenommen wurden, öffnet sich TextEdit auch, sobald in der Terminal-Anwendung mit dem Befehl open eine Textdatei geöffnet wird:

open <Name_der_Textdatei.txt>

Wie können Textdateien aber direkt in der Terminal-Anwendung bzw. in der Shell bearbeitet werden? Früher stand dafür das Programm nano zur Verfügung. Heutzutage ist in macOS das Shell-Programm pico installiert. Eine Textdatei mit der Bezeichnung „Todo-Liste.txt“ könnte in der Shell also mit der Anweisung

pico Todo-Liste.txt

geöffnet und bearbeitet werden. Der Befehl nano funktioniert aber weiterhin. Denn dahinter verbirgt sich ein symbolischer Link auf pico. Mit anderen Worten: Durch folgende Anweisung startet ebenfalls pico:

nano Todo-Liste.txt

Sollte die Datei bisher nicht existieren, wird sie neu erstellt. Alternativ kann eine leere Datei übrigens auch mit dem Befehl touch erzeugt werden:

touch Todo-Liste.txt

vim

Als professionellere Anwendung für die Bearbeitung von Textdateien in der Shell steht das Programm vim zur Verfügung. Bleiben wir bei der Datei „Todo-Liste.txt“; sie könnte mit der Anweisung

vim Todo-Liste.txt

in der Shell geöffnet werden. Sofern sie bisher nicht existiert, wird sie (nach dem Speichern) neu angelegt.

Normal Mode in vim (macOS Terminal)
vim unter macOS im Normal Mode

Vim ist schwieriger in der Anwendung, dafür aber auch viel mächtiger. Wer in der Shell viel mit Textdateien zu tun hat, sollte auf jeden Fall einen Blick auf diesen Editor werfen. Und diejenigen, die als Linux-Administratoren tätig sind, werden um vim nicht herumkommen, denn häufig ist es der einzige Editor, der standardmäßig installiert ist. (Und eine grafische Benutzeroberfläche steht auf Linux-Servern normalerweise nicht zur Verfügung.)

Um vim nutzen zu können, muss man sich vergegenwärtigen, dass es verschiedene Modi gibt. Nach dem Öffnen einer Textdatei mit vim, befindet man sich im Normal Mode. Die Möglichkeit, die Datei zu bearbeiten, ist in diesem Modus sehr eingeschränkt. So werdet ihr feststellen, dass die Eingabe von Text nicht funktioniert. Dafür muss mit i in den Bearbeitungsmodus, den Insert Mode, gewechselt werden.

Für das Speichern der Datei ist zunächst die esc-Taste zu drücken. Dadurch findet ein Wechsel zurück zum Normal Mode statt. Jetzt erfolgt der Speichervorgang mit folgender Zeichenfolge:

:w

Mit

:q

könnte vim anschließend beendet werden. Und mit der Eingabe von

:wq

kann man den Speichervorgang und das Beenden kombinieren.

Sofern eine Bearbeitung der Textdatei stattgefunden hat, führt die schlichte Ausführung von :q ohne ein vorheriges Speichern
zu einer Fehlermeldung:

No write since last change (add ! to override)

Soll keine Speicherung stattfinden, also geänderte Textstellen nicht übernommen werden, dann muss das Schließen der Datei mit der Zeichenfolge

:q!

erzwungen werden (zuvor die esc-Taste nicht vergessen).

Zu vim ließe sich sehr viel sagen bzw. schreiben. Mit diesem Grundwissen möchte ich aber diesen Blogbeitrag schließen und auf die Konfiguration dieses Editors in zukünftigen Artikeln näher eingehen.