Serie: Ablenkungsfreies Schreiben - Vim und Goyo

  Fabian Schaar   Lesezeit: 9 Minuten  🗪 7 Kommentare

Mit einfachen Konfigurationen kann Vim als ablenkungsfreier Editor verwendet werden.

serie: ablenkungsfreies schreiben - vim und goyo

Ablenkungsfreie Editoren erfreuen sich insbesondere im Markdown-Umfeld einer großen Beliebtheit. Manchmal braucht es nicht die vielen Knöpfe, die Anwendungen wie LibreOffice bieten können, manchmal möchte man sich einfach “konzentrieren” auf den eigenen Text. Doch um ein ablenkungsfreies Schreiberlebnis zu erhalten, braucht es nicht immer dedizierte Anwendungen. Mit entsprechenden Plugins kann auch der Allzweck-Editor Vim in eine angenehme Schreibumgebung für lange Texte verwandelt werden.

Viele nennen Vim einen Editoren für Programmierer. Das hat natürlich auch seine Berechtigung und der Ruf kommt nicht von irgendwo: So, wie es “aus der Tüte fällt” kann Vim erst einmal abschrecken. Vor allem die nicht umgebrochenen Zeilen, die auch noch die gesamte Bildschirmbreite einnehmen, passen nicht ganz zu langen, kreativen Texten. Bei Quellcode und Config-Dateien fällt das nicht auf, ist im Gegenteil sogar ganz praktisch. Aber wer schon einmal versucht hat, ohne einen Zeilenumbruch Blogartikel oder ähnliches zu schreiben, der wird das Problem sicher kennen.

Ich halte Vim auch als Nicht-Programmierer für einen wunderbaren Editoren, der sich für alle möglichen Anwendungszwecke eignet - oder eben “eignen lässt”. In diesem Artikel beschreibe ich, wie ich Vim zu meiner ablenkungsfreien Schreibumgebung konfiguriere.

1.: wrap-Option setzen

Mit der Zeile set wrap in der eigenen ~/.vimrc bricht Vim Zeilen optisch um, ohne neue Zeilen anzulegen. Dadurch bleiben die eigentlichen Zeilen erhalten, was besonders bei Auszeichnungssprachen wie Markdown entscheidend ist. Sonst geht nämlich die Absatzstruktur des Textes flöten.

2.: linebreak-Option setzen

Mit der Option 'wrap' bricht Vim Zeilen (entsprechend der Fenstergröße) optisch um. Dabei nimmt der Editor aber nicht darauf Rücksicht, wo er umbricht. Mit der Zeile 'set linebreak' in der .vimrc kann das verhindert werden: Dann bricht Vim nur noch an ganzen Wörtern um.

3.: Markdown und Syntax-Hervorhebungen

Meine allerliebste Auszeichnungssprache ist Markdown, und ich versuche mittlerweile, diese so oft wie möglich zu nutzen. Für mich verbindet Markdown die Vorzüge von Plain-Text mit einigen nützlichen Formatierungsoptionen. Ich setze Markdown ziemlich universell ein, und konnte damit meine LibreOffice-Nutzung deutlich zurückfahren. Nicht, dass LibreOffice ein schlechtes Programm wäre, aber mit Markdown schreibe ich einfach eleganter. Um Markdown besser in Vim zu integrieren, nutze ich folgende Optionen:

Mit 'syntax on' wird grundlegend die Syntax-Hervorhebung in Vim aktiviert. Dann kann der Editor entsprechend der Programmier- oder Auszeichnungssprache besondere Textelemente visuell hervorheben. Bei Markdown werden so zum Beispiel die Hashtags für Überschriften eingefärbt. Wenn das Terminal eine entsprechende Unterstützung mitbringt, kann auch fetter bzw. kursiver Text entsprechend dargestellt werden. Das sind nur ein paar Beispiele, ich denke, das Prinzip ist klar geworden.

So lange nur 'syntax on' in der .vimrc steht, muss Vim erst den Dateityp auslesen, um Syntax-Hervorhebungen darstellen zu können. Ich habe daher noch 'filetype=markdown' in meine .vimrc geschrieben, um Vim auch vor dem Speichern Markdown zu signalisieren. Das mag vielleicht ein bisschen bizarr klingen, funktioniert aber erstaunlich gut: Wenn eine andere Textdatei geöffnet wird, ließt Vim den entsprechenden Dateitypen automatisch aus. Wenn eine neue Datei geöffnet wird, geht Vim ersteinmal von Markdown aus. Und wenn eine Markdown-Datei geöffnet wird, wird so oder so die Markdown-Syntax hervorgehoben. Zumindest scheint das so zu funktionieren. Ich hoffe, dass ich das alles richtig verstanden habe, vielleicht können mich ja die Vim-Profis noch ein bisschen weiterbilden.

Goyo-Plugin

Die bisherigen Schritte waren eigentlich nur so ein bisschen Vorarbeit. Die eigentliche Problemstellung, die ich am Anfang angesprochen hatte, ist ja noch nicht gelöst. Wer den hier beschriebenen Schritten folgt, erhält bis jetzt ein Vim, dass ein kleines bisschen mehr auf Markdown steht und Zeilen an den Wortenden umbricht, so wie die Fenstergröße das bestimmt.

Mit einem Vim-Plugin kann man in Vim aber eine tatsächlich ablenkungsfreie Schreibumgebung erreichen: Vor kurzem bin ich auf “Goyo” gestoßen. Dieses Plugin blendet Zusatzinformationen wie etwa Zeilennummern konsequent aus und rückt den Text in die Mitte des Editoren-Fensters. Das funktioniert besonders im Vollbild-Modus hervorragend.

Goyo lässt sich sehr einfach installieren. Dazu sollte zunächst ein Plugin-Manager eingerichtet werden. Ich verwende als Debian-Nutzer zum Beispiel “Pathogen”. Dieses Programm kann einfach aus den offiziellen Paketquellen installiert werden:

sudo apt install vim-pathogen

Entsprechend des GitHub-READMEs bin ich zur Einrichtung dann so vorgegangen:

mkdir -p ~/.vim/bundle

So wird zunächst das “bundle”-Verzeichnis im Heimverzeichnis-Unterordner “.vim” angelegt. Dann muss man Vim auch noch mitteilen, dass Pathogen genutzt werden soll. Dazu trägt man die Zeile 'execute pathogen#infect()' in die .vimrc-Datei ein.

Da das eigentliche Programm ja bereits aus den Paketquellen installiert wurde, ist die Einrichtung unter Debian damit auch schon abgeschlossen. Solltet ihr andere Distributionen verwenden, kann die Vorgehensweise natürlich abweichen. Im Zweifel könnt ihr euch auch an die Anleitungen im oben verlinkten GitHub-Repo halten.

Nachdem Pathogen eingerichtet ist, können Vim-Erweiterungen nun sehr einfach installiert werden. Dazu müssen diese nur mit git in das “bundle”-Verzeichnis geklont werden. Unter Debian muss git erst installiert werden:

sudo apt install git

So habe ich in diesem Fall das GitHub-Repo https://github.com/junegunn/goyo.vim geklont. Dabei sollte noch ein .git angehangen werden:

cd ~/.vim/bundle && git clone https://github.com/junegunn/goyo.vim.git

Das war es auch schon, Goyo ist bereits nach dem nächsten Start von Vim installiert und einsatzbereit. Vim startet dann im “normalen” Anzeige-Modus, dieses Verhalten behalte ich auch so bei. Wenn ich dann in meine ablenkungsfreie Schreibumgebung wechseln möchte, muss ich nur ':Goyo' eingeben. Schon ist der Text mittig dargestellt, und das Schreiben kann losgehen. Mit ':Goyo' kann man die Plugin-Ansicht auch wieder verlassen,':Goyo!' schaltet das Plugin aus.

Passend zu Goyo bietet es sich auch an, in ein Vollbild-Terminal zu wechseln. Ich mag es auch, dann noch die Schriftgröße zu erhöhen, um die Lesbarkeit für mich zu verbessern. Das Plugin bietet auch einige Konfigurationsoptionen, die auf GitHub genauer nachgelesen werden können.

Wer dieser kleinen Anleitung folgt, erhält im wesentlichen eine Schreibumgebung, wie ich sie auch für das Beitragsbild in einem Screenshot festgehalten habe. Manche bevorzugen es wohl, wenn nicht fokussierte Zeilen noch zusätzlich leicht gedimmt werden. Das kann mit dem Plugin "Limelight" erreicht werden. Ich finde diesen Effekt aber störend und verzichte dankend darauf.

Quellen:

Bild:

  • Screenshot meiner Schreibumgebung (Vim + Goyo)

Tags

Vim, markdown, Markdown-Editor, Goyo

Thoys
Geschrieben von Thoys am 17. April 2023 um 07:56

Wer hat eigentlich definiert, dass ablenkungsfrei "ohne Leisten und Symbole" bedeutet? Wenn ich normaler User bin, dann wäre doch ablenkungsfrei, wenn das System keine Benachrichtigungen anzeigt (oder nicht, vielleicht brauche ich genau das, um dem Impuls des Mailprüfens zu unterdrücken) und ich muss mich größt möglich auf den Inhalt meines Schriftgutes Konzentrieren können. Wenn ich jetzt vom nutze, dann komme ich nach 3 Minuten dazu den Browser zu öffnen und suche nach irgendeiner Funktion/einem Befehl. Wenn ich einen vollwertigen Texteditor (MS word/Lobte office) habe, dann klicke ich einfach, was ich möchte. Also speziell für mich ist eine vollwertige Textverarbeitung viel Ablenkungsfreier, als etwas, das auf Befehlen basiert. Und ganz ohne Gormatierungsmöglichkeit denke ich nach kurzer Zeit wieder darüber nach, was ich alles gerne formatieren würde, oder projrastiniere über die Wahl des Editors.

Das mag für jeden anders sein und jemand, der täglich VIM Verwendet ist in einer ganz anderen Situation. Aber ablenkungsfrei fand ich ablenkungsfreie Editoren noch nie. Schnell und ohne viel Ablenkung/Einlernen das erreichen, was ich möchte ist für mich ablenkungsfrei.

Persönliche Erfahrung eines Technikaffinen Nicht-Informatikers. Meine Abschlussarbeiten habe uch mit Texstudio geschrieben (nachdem ich viel ablenkungsfreies Tagelang ausprobiert hatte).

Grüße Thoys

Naja
Geschrieben von Naja am 17. April 2023 um 11:45

Wahrscheinlich lässt sich nie mehr rausfinden, wer das definiert hat. Aber allgemein hat sich "ablenkungsfrei" als Bezeichnung für die Textverfassung in einer auf das allernötigste reduzierten Oberfläche durchgesetzt. Wenn es für dich nicht zutrifft nenn es halt anders :-)

Finde Ralfs Artikel durchaus interessant.

Naja
Geschrieben von Naja am 17. April 2023 um 14:22

Fabian, nicht Ralf, tschuldigung. :)

Robert
Geschrieben von Robert am 17. April 2023 um 10:03

Ich empfinde es genauso wie Thoys. Bei mir bedeutet "ablenkungsfreies Schreiben" insbesondere keine Störungen von außen (Telefon, Kollegen, Emails, nervige Chats etc.). Solange ich die Ruhe und Muße habe mich auf das Erstellen/Schreiben von Text zu konzentrieren, ist mir die Programm-Umgebung eigentlich relativ egal. Und ich halte es auch nicht für schreibfördernd Programm-Funktionen zu verstecken, die ich dann -wenn ich sie brauche- erst einmal suchen müsste.

Naja
Geschrieben von Naja am 17. April 2023 um 11:52

Der Gag ist ja, dass du keine anderen Programmfunktionen brauchst, nach denen du suchen müsstest. Im Idealfall verfasst du einen Plaintext, auf den du dich vollständig konzentrieren kannst, weil du dich eben nicht mit Formatierungen beschäftigen musst. Wenn du unbedingt Formatierungen verwenden willst, dann halt mit Markdown, da stehen die Formatierungen im Text.

Wenn der Text dann fertig geschrieben ist, kommt alles andere danach.

Robert
Geschrieben von Robert am 17. April 2023 um 16:48

Das Konzept ist mir soweit schon klar. Doch wenn man das so haben will, dann reicht dafür auch ein simpler pico, nano, notepad editor und fertig ist der Schuh. Was ich jedoch immer noch nicht so ganz genau verstanden habe, warum mich ein grösseres Programm mit Menüleisten - AbiWord, Libreoffice, OnlyOffice, Softmaker Office - irgendwie vom Schreiben ablenken oder meinen Schreibfluss stören soll(te)? Was genau mögen einige Leute daran nicht? Mich beeinflusst oder stört ebenfalls nicht was neben dem Monitor steht, also für mich persönlich sehe ich da wirklich NULL Unterschied.

nac
Geschrieben von nac am 18. April 2023 um 20:50

Zum einen sollten wir mal die diversen Editoren differenzieren. What-you-see-is-what-you-get Editoren können ablenken weil sie eben sehr viel funktionalität mit rein bingen die für den Entwurf eines Textes nicht immer sinnvoll sein muss. Abgesehen davon kann es überaus störend sein wenn man seine Hände von der Tastatur nimmt um eine Funktion des Programmes auszulösen. In meinen Augen ist es sinnvoller sich komplett auf den Inhalt zu konzentrieren. Dies geschieht in meinem Falle dann wenn ich weis das die Dasrstellung am Ende auch passt, ohne das ich während des schreibens daran denken muss.