Ob Sie es glauben oder nicht, ich verwende Vim als mein tägliches Textverarbeitungsprogramm. Ich mag das einfache Layout und das modale Design, das Tastaturbefehle über Mausklicks bevorzugt.
Obwohl Sie Vim wahrscheinlich als einen Texteditor kennen, der eher für das Codieren als für die Prosa geeignet ist, können Sie mit ein paar Änderungen auch Dokumente schreiben, als wären Sie in Word oder LibreOffice, während Sie sich in den komfortablen Grenzen eines Terminals befinden.
Loslegen
Wenn Sie sich noch nicht mit den Grundlagen von Vim vertraut gemacht haben, lesen Sie diesen Artikel, der der erste in einer Reihe von vier ist. Stellen Sie sicher, dass Sie lernen, wie Sie eine Textdatei öffnen, das Programm aufrufen und beenden und sich mit Ihrer Tastatur auf dem Bildschirm bewegen, bevor Sie weiter in dieses Stück springen.
Installation
Ihre Linux-Distribution enthält wahrscheinlich Vim im Paket-Repository, sodass Sie es problemlos mit Ihrem Software-Manager oder Paket-Manager installieren können. Wenn Sie die Konfigurationsdatei von Vim später bearbeiten, können Sie dies als normaler Benutzer tun.
Arch Linux:
sudo pacman -S vim
Fedora:
sudo dnf install vim
Ubuntu:
sudo apt install vim
Alle anderen können Vim aus dem Github-Repository holen:
git clone https://github.com/vim/vim.git cd ./vim/src/ make sudo make install
Die Vim-Konfigurationsdatei
Bei einer Installation von Vim wird möglicherweise eine .vimrc-Datei in Ihrem Home-Verzeichnis erstellt. Wenn dies nicht der Fall ist, erstellen Sie eine:
touch ~/.vimrc
Sie können es mit Vim selbst öffnen:
cd vim .vimrc
Unsere Textverarbeitung
Jetzt sehen Sie sich wahrscheinlich eine leere Datei an. Lassen Sie uns das ändern.
Wir können eine Funktion namens “WordProcessor” erstellen, die Sie jederzeit aufrufen können. Es wird so aussehen:
func! WordProcessor() " movement changes map j gj map k gk " formatting text setlocal formatoptions=1 setlocal noexpandtab setlocal wrap setlocal linebreak " spelling and thesaurus setlocal spell spelllang=en_us set thesaurus+=/home/test/.vim/thesaurus/mthesaur.txt " complete+=s makes autocompletion search the thesaurus set complete+=s endfu com! WP call WordProcessor()
Nachdem Sie die Funktion als Ganzes gesehen haben, können wir ihre Teile aufteilen. Schauen Sie sich anschließend die Abschnitte unserer Funktion an, die mit einem einfachen Anführungszeichen auskommentiert sind, wobei die einzelnen Linien grau sind.
1. Bewegung ändert sich mit map j gj
und map k gk
Was Sie hier sehen, ist eine Änderung in der Funktionsweise der Cursorbewegung in Vim. Wenn Sie die vorherigen Vim-Artikel lesen, die am Anfang dieses Artikels erwähnt wurden, wissen Sie das j bewegt den Cursor nach unten und k bewegt den Cursor nach oben. Ähnlich, gj und gk Bewegen Sie sich nach unten und oben, aber sie bewegen den Cursor zeilenweise auf dem Bildschirm anstatt durch Zeile in der Datei.
Unsere Kartierung von j/.k zu gj/.gk gibt Ihrem Cursor die Möglichkeit, sich durch umbrochene Linien auf Ihrem Bildschirm auf und ab zu bewegen. Dies ist hilfreich, wenn Sie lange Absätze eingeben und den Cursor leicht in die Mitte dieser Absätze bewegen müssen.
2. Formatieren Sie Text mit den Befehlen „setlocal“
Zuerst sehen setlocal formatoptions=1
. Mit „Formatoptionen“ können Sie aus einer Reihe von Textformatierungsmodi auswählen. Bei Option „1“ wird Vim nach einem Wort aus einem Buchstaben keine Zeilen mehr unterbrechen. Wenn möglich, wird versucht, stattdessen Zeilen vor dem Ein-Buchstaben-Wort zu brechen.
Nächster, setlocal noexpandtab
Damit können Sie verhindern, dass Vim Tabulatoren in Leerzeichen ändert. In der Einstellung “expandtab” wird Vim beispielsweise angewiesen, das Drücken der Tabulatortaste in eine Anzahl von Leerzeichen zu ändern, die der gleichen Länge entsprechen. “Noexpandtab” macht das Gegenteil; Ihre Tabulatortaste bleibt als einzelnes Zeichen erhalten.
setlocal wrap
Weist Vim an, Ihren Text zu umbrechen, wenn er das Ende Ihres Bildschirms erreicht. Dies ist das Verhalten, das Sie von einem Textverarbeitungsprogramm erwarten würden.
Schließlich, setlocal linebreak
bringt Vim dazu, an vernünftigen Stellen die Linien zu brechen. Es verhindert, dass Ihre Zeilen beim letzten Zeichen umbrochen werden, das auf den Bildschirm passt. Aus diesem Grund sehen Sie teilweise, dass Textzeilen verschiedene Punkte auf dem Bildschirm erreichen, bevor sie an den Anfang gesetzt werden. Sehen Sie sich im folgenden Screenshot an, wie es mit einer unvollendeten Kopie dieses Artikels aussieht
3. Rechtschreibung und ein Offline-Thesaurus
Vim verfügt über eine integrierte Rechtschreibprüfung. Mit dem Befehl können Sie festlegen, dass Ihre WordProcessor-Funktion diese Funktion verwendet setlocal spell spelllang=en_us
. Sie können hier mehrere Sprachen in einer durch Kommas getrennten Liste definieren.
Weitere Sprachdateien finden Sie auf dieser Vim-FTP-Site. Platzieren Sie Ihre ausgewählten Dateien (sowohl .spl- als auch .sug-Dateien für jede Sprache) in “$ HOME / .vim / Zauber /.” Ändern Sie die Zeile Ihrer Funktion in set spelllang=en_us,nl,medical
Zum Beispiel, um nach englischen, niederländischen und medizinischen Wörtern zu suchen.
Falsch geschriebene Wörter werden in Ihrem Text als unterstrichen und fett angezeigt.
Sie können nach Ersatz suchen, indem Sie eingeben :z=
im normalen Modus. (Verwenden Sie die Escape-Taste, um in den Normalmodus zu gelangen.) Dieser Befehl erzeugt einen Bildschirm wie das folgende Bild.
Sie können die Thesaurus-Funktion von Vim verwenden, indem Sie Ihr ausgewähltes Thesaurus-Verzeichnis mit angeben set thesaurus+=/home/<user>/.vim/thesaurus/mthesaur.txt
oder ähnliches. Sie finden die Datei “mthesaur.txt” bei Project Gutenberg. Platzieren Sie Ihre heruntergeladene Textdatei in dem Verzeichnis, das Sie mit diesem Befehl definieren.
Suchen Sie nach Wörtern, die Ihrem markierten Wort ähneln, indem Sie in den Einfügemodus wechseln (drücken Sie ich im normalen Modus) und tippen Strg + x und dann Strg + t. Es zeigt Ihnen eine Liste wie das folgende Bild, durch die Sie scrollen können, um ein neues Wort zu finden.
Manchmal sind die Vorschläge nicht die besten.
4. Vervollständigen Sie Wörter automatisch mit der Option „Vervollständigen“
Ansehen set complete+=s
für unsere letzte Überlegung. Diese Option weist Vim an, Ihren Thesaurus nach einem Wort zu durchsuchen, das Sie automatisch vervollständigen möchten.
Normalerweise können Sie Wörter automatisch vervollständigen, indem Sie Vim die zuvor eingegebenen Wörter anzeigen lassen, z. B. “falsch geschrieben” und “Fehler” im folgenden Screenshot. Sie wechseln einfach in den Einfügemodus und geben ein Strg + n oder Strg + p um nach einem Wort zu suchen, das zum Beispiel mit der Halbschreibung „mis“ übereinstimmt.
Sehen Sie, wie die ersten beiden Auswahlen nicht aus dem Thesaurus stammen? Diese beiden Zeilen sind die einzigen Optionen, die Sie hier sehen würden, wenn unsere Funktion nicht “complete + = s” verwendet hätte. Sie können diese Zeile weglassen oder auskommentieren, um die automatische Vervollständigung zu beschleunigen.
Starten Sie Ihre Textverarbeitung
Die letzte Zeile Ihres .vimrc, in der die WordProcessor-Funktion funktioniert, lautet com! WP call WordProcessor()
. Hier können Sie tippen :WP
im normalen Modus, um die Textverarbeitungsfähigkeiten von Vim einzustellen.
Sie können das „WP“ in dieser Zeile bearbeiten, um alles zu lesen, was Sie möchten – stellen Sie einfach sicher, dass der Text zusammenhängend ist. Welchen Text Sie auch wählen, der Befehl wird in geändert :<your-text>
.
Fazit
Die hier besprochene Funktionalität gilt nur für eine einzelne Vim-Sitzung. Wenn Sie Vim schließen und erneut öffnen, werden die Standardeinstellungen daher erneut übernommen. Dies ist auch dann der Fall, wenn Sie dieselbe Datei ein zweites Mal öffnen.
Sie können diese Optionen festlegen draußen die Funktion, sie die ganze Zeit arbeiten zu lassen, aber sie werden möglicherweise vielen Programmieraufgaben, für die Vim zuständig ist, nicht gerecht. Es ist sowieso nicht schwer, ein paar Zeichen einzugeben. Genießen Sie einfach Ihre neuen Einstellungen und die Tatsache, dass Sie Ihr Terminal in einen leistungsstarken Absatzeditor verwandelt haben.