*usr_05.txt* Für Vim Version 8.1. Letzte Änderung: 27.Feb.2019 VIM BENUTZERHANDBUCH - von Bram Moolenaar Eigene Einstellungen setzen Vim kann abgestimmt werden, dass er so arbeitet, wie Sie wollen. Dieses Kapitel zeigt Ihnen, wie Sie beim Start von Vim Optionen auf verschiedene Werte setzen. Fügen Sie Erweiterungen hinzu, um Vims Fähigkeiten zu erweitern. Oder definieren Sie Ihre eigenen Makros. |05.1| Die Vimrc-Datei |05.2| Die Beispiel Vimrc-Datei erklärt |05.3| Die Datei defaults.vim erklärt |05.4| Einfache Tastenbelegungen |05.5| Ein Paket hinzufügen |05.6| Eine Erweiterung hinzufügen |05.7| Eine Hilfedatei hinzufügen |05.8| Das Optionen-Fenster |05.9| Häufig benutzte Optionen Nächstes Kapitel: |usr_06.txt| Syntax-Hervorhebung benutzen Voriges Kapitel: |usr_04.txt| Kleine Änderungen machen Inhaltsübersicht: |usr_toc.txt| ============================================================================== *05.1* Die Vimrc-Datei *vimrc-intro* Sie werden es sicherlich müde, Befehle zu tippen, die Sie sehr oft benutzen. Um Vim mit allen Ihren Lieblings-Optionseinstellungen und -Belegungen zu starten, schreiben Sie sie in die sogenannte Vimrc-Datei. Vim führt beim Starten die Befehle in dieser Datei aus. Falls Sie bereits eine Vimrc-Datei haben (wenn z.B. Ihr Systemadministrator eine für Sie aufgesetzt hat), können Sie sie so editieren: > :edit $MYVIMRC Falls Sie noch keine Vimrc-Datei haben, lesen Sie unter |vimrc|, um herauszufinden, wo Sie eine Vimrc-Datei erzeugen können. Auch der Befehl »:version« erwähnt den Namen der »Benutzer-Vimrc-Datei«, nach der Vim sucht. Für Unix und Macintosh wird immer diese Datei benutzt und empfohlen: ~/.vimrc ~ Bei MS-DOS und MS-Windows können Sie eine von diesen benutzen: $HOME/_vimrc ~ $VIM/_vimrc ~ Falls Sie das erste Mal die Vimrc-Datei erzeugen, empfiehlt es sich, diese Zeile an den Anfang zu stellen: > source $VIMRUNTIME/default.vim Dies initialisiert Vim für neue Benutzer (im Gegensatz zu traditionellen Vi-Nutzern). Siehe |defaults.vim| für Details. Die Vimrc-Datei kann alle die Befehle enthalten, die nach einem Doppelpunkt stehen. Falls Sie zum Beispiel wollen, dass Vim immer mit der Option 'incsearch' gesetzt startet, fügen Sie diese Zeile Ihrer vimrc-Datei hinzu: > set incsearch Damit diese neue Zeile aktiv wird, müssen Sie Vim schließen und von neuem starten. Später lernen Sie, wie man dies macht, ohne Vim zu schließen. Dieses Kapitel erklärt nur die grundlegendsten Dinge. Für weitere Informationen darüber, wie man ein Vim-Skript schreibt, siehe |usr_41.txt|. ============================================================================== *05.2* Die Beispiel Vimrc-Datei erklärt *vimrc_example.vim* Im ersten Kapitel wird erklärt, wie die Beispiel Vimrc (enthalten im Vim-Paket) benutzt werden kann, um Vim im nicht-kompatiblen Modus starten zu lassen (siehe |not-compatible|). Die Datei kann hier gefunden werden: $VIMRUNTIME/vimrc_example.vim ~ In diesem Abschnitt erklären wir die verschiedenen Befehle, die in dieser Datei benutzt werden. Dies soll Ihnen Hinweise geben, wie sie Ihre eigenen Voreinstellungen setzen. Allerdings wird nicht alles erklärt. Benutzen Sie den Befehl »:help«, um mehr herauszufinden. > " Get the defaults that most users want. source $VIMRUNTIME/defaults.vim Dies lädt die Datei »defaults.vim« im Verzeichnis $VIMRUNTIME. Diese setzt Vim so auf, wie es die meisten Benutzer mögen. Falls Sie einer der wenigen sind, dies dies nicht mögen, kommentieren Sie diese Zeile aus. Die Befehle werden unten erklärt: |defaults.vim-explained| if has("vms") set nobackup if has('persistent_undo') set undofile else set backup endif Dies lässt Vim eine Sicherheitskopie einer Datei halten, wenn er sie überschreibt. Aber nicht auf dem System VMS, da dies bereits alte Versionen von Dateien behält. Die Sicherheitskopie erhält denselben Namen wie die Original-Datei mit einem angefügten »~«. Siehe |07.4| Dies setzt auch die Option 'undofile', falls verfügbar. Dies speichert die Informationen zum mehrstufigen Rückgängigmachen in einer Datei. Als Ergebnis können Sie eine Datei ändern, Vim schließen und erneut editieren und dabei die vorher gemachten Änderungen zurücknehmen. Es ist eine sehr mächtiges und nützliche Fähigkeit zu den Kosten des Speicherns einer Datei. Für weitere Informationen siehe |undo-persistence|. Der Befehl »if« ist sehr nützlich, um Optionen nur dann zu setzen, wenn bestimmte Bedingungen gegeben sind. Mehr darüber in |usr_41.txt|. > if &t_Co > 2 || has("gui_running") set hlsearch endif Dies schaltet die Option 'hlsearch' ein, was Vim Übereinstimmungen des zuletzt verwandten Suchmusters hervorheben lässt. > augroup vimrcEx au! autocmd FileType text setlocal textwidth=78 augroup END Dies lässt Vim Text umbrechen, um zu vermeiden, dass Zeilen länger als 78 Zeichen werden. Aber nur für Dateien, die als Klartext erkannt wurden. Dies sind tatsächlich zwei Teile. »autocmd FileTyp text« ist ein automatischer Befehl. Dies definiert, dass wenn der Dateityp auf »text« gesetzt ist, der folgende Befehl automatisch ausgeführt wird. »setlocal textwidth=78« setzt die Option 'textwidth' auf 78, aber nur lokal für eine Datei. Das Umhüllen mit »augroup vimrcEx« und »augroup END« ermöglicht es, den automatischen Befehl mit dem Befehl »au!« zu löschen. Siehe |:augroup|. > if has('syntax') && has('eval') packadd! matchit endif Dies lädt die Erweiterung »matchit«, falls die erforderlichen Fähigkeiten verfügbar sind. Sie macht den Befehl |%| mächtiger. Dies wird unter |matchit-install| erklärt. ============================================================================== *05.3* Die Datei defaults.vim erklärt *defaults.vim-explained* Die Datei |defaults.vim| wird geladen, wenn der Benutzer keine Vimrc-Datei hat. Wenn Sie eine neue Vimrc-Datei erstellen, fügen Sie diese Zeile nahe dem Anfang hinzu, um ihre Verwendung beizubehalten: > source $VIMRUNTIME/default.vim Oder verwenden Sie die Datei vimrc_example.vim, wie oben erklärt. Das folgende erklärt, was die defaults.vim macht. > if exists('skip_defaults_vim') finish endif Das Laden der defaults.vim kann mit diesem Befehl deaktiviert werden: > let skip_defaults_vim = 1 Dies muss in der System-Vimrc-Datei geschehen. Siehe |system-vimrc|. Falls Sie eine Benutzer-Vimrc haben ist dies nicht nötig, weil defaults.vim nicht automatisch geladen wird. > set nocompatible Wie im ersten Kapitel erwähnt, erklären diese Handbücher die Arbeitsweise von Vim in einer verbesserten Version, also nicht voll Vi-kompatibel. Das Deaktivieren der Option 'compatible', also 'nocompatible', berücksichtigt dies. > set backspace=indent,eol,start Dies gibt an, wo im Einfügemodus ein erlaubt ist, um das Zeichen vor dem Cursor zu löschen. Die drei durch Komma getrennten Werte sagen Vim, dass er Freiraum am Zeilenanfang, einen Zeilenumbruch und das Zeichen vor der Stellen, wo der Einfügemodus begann, löschen soll. Siehe 'backspace' > > set history=200 Hält 200 Befehle und 200 Suchmuster im Verlauf. Benutzen Sie eine andere Zahl, wenn sich Vim mehr oder weniger Zeilen merken soll. > > set ruler Zeigt immer die aktuelle Cursor-Position in der unteren rechten Ecke des Vim-Fensters an. Siehe 'ruler'. > set showcmd Zeigt einen unvollständigen Befehl in der unteren rechten Ecke des Vim-Fensters an, links von der Cursorposition. Wenn Sie zum Beispiel »2f« tippen, wartet Vim auf das zu findende Zeichen und zeigt »2f« an. Wenn Sie als nächstes »w« tippen, wird der Befehl »2fw« ausgeführt und das angezeigte »2f« entfernt. +-------------------------------------------------+ |Text im Vim-Fenster | |~ | |~ | |-- VISUELL -- 2f 43,8 17% | +-------------------------------------------------+ ^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^ 'showmode' 'showcmd' 'ruler' > set wildmenu Zeigt Übereinstimmungen der Vervollständigung in einer Statuszeile an. Das ist, wenn Sie tippen und es mehr als eine Übereinstimmung gibt. Siehe 'wildmenu'. > set ttimeout set ttimeoutlen=100 Dies lässt das Tippen von Esc schneller zum Tragen kommen. Normalerweise wartet Vim eine Sekunde, um zu sehen, ob das Esc der Beginn einer Fluchtsequenz ist. Falls Sie eine sehr langsame entfernte Verbindung haben, erhöhen Sie den Wert. Siehe 'ttimeout'. > set display=truncate Zeige @@@ in der letzten Zeile, falls sie abgeschnitten wird, anstatt die ganze Zeile zu verstecken. Siehe 'display'. > set incsearch Zeige die Übereinstimmung für ein Suchmuster, noch während es getippt wird. Siehe 'incsearch'. > set nrformats-=octal Interpretiert Zahlen, die mit Null beginnen, nicht als oktal. Siehe 'nrformats' > map Q gq Dies definiert eine Tastenbelegung. Mehr darüber im nächsten Abschnitt. Dies definiert den Befehl »Q«, mit dem Operator »gq« zu formatieren. So arbeitete es vor Vim 5.0. Ansonsten startet der Befehl »Q« den Ex-Modus, aber Sie werden ihn nicht brauchen. > inoremap u CTRL-U im Einfügemodus löscht allen eingegebenen Text in der aktuellen Zeile. Verwendet CTRL-G u um zunächst die Rücknahme zu unterbrechen, so dass Sie nach dem Einfügen eines Zeilenumbruchs CTRL-U zurücknehmen können. Kehren Sie es mit »:iumap « um. > if has('mouse') set mouse=a endif Aktiviert die Maus, falls verfügbar. Siehe 'mouse'. > vnoremap _g y:exe "grep /" . escape(@", '\\/') . "/ *.c *.h" Diese Belegung kopiert den visuell ausgewählten Bereich und sucht ihn in C-Dateien. Sie können sehen, dass Belegungen benutzt werden können, um komplizierte Dinge zu tun. Dennoch ist dies nur eine Folge von Befehlen, die ausgeführt werden, als wenn sie getippt würden. > syntax on Aktiviert farbliche Hervorhebung. Siehe |syntax|. *vimrc-filetype* > filetype plugin indent on Dies aktiviert drei sehr klevere Mechanismen: 1. Dateityperkennung. Wann immer Sie mit dem Editieren einer Datei beginnen, versucht Vim herauszufinden, um welche Art von Datei es sich handelt. Wenn Sie »main.c« editieren, sieht Vim die Dateiendung ».c« und erkennt dies als »c«-Dateityp. Wenn Sie eine Datei editieren, die mit »#!/bin/sh« beginnt, erkennt dies Vim als »sh«-Dateityp. Die Dateityperkennung wird für die Syntaxhervorhebung und die anderen beiden Dinge unten benutzt. Siehe |filetypes|. 2. Dateityperweiterungs-Dateien benutzen Viele verschiedene Dateitypen werden mit unterschiedlichen Optionen editiert. Wenn Sie zum Beispiel eine »c«-Datei editieren, ist es sehr nützlich, die Option 'cindent' zu setzen, um die Zeilen automatisch einzurücken. Diese gewöhnlicherweise nützlichen Optionseinstellungen enthält Vim in Dateityperweiterungen. Sie können auch Ihre eigenen schreiben, siehe |write-filetype-plugin|. 3. Einrückungsdateien benutzen Beim Editieren von Programmen kann die Einrückung einer Zeile häufig automatisch berechnet werden. Vim enthält diese Einrückungsregeln für eine Anzahl von Dateitypen. Lesen Sie unter |:filetype-indent-on| und 'indentexpr'. *restore-cursor* *last-position-jump* > autocmd BufReadPost * \ if line("'\"") >= 1 && line("'\"") <= line("$") && &ft !~# 'commit' \ | exe "normal! g`\"" \ | endif Noch ein automatischer Befehl. Diesmal wird er nach dem Lesen einer jeglichen Datei benutzt. Der komplizierte Teil danach prüft, ob die Marke »'"« definiert ist, und springt sie an, wenn ja. Der Rückschrägstrich am Zeilenanfang wird benutzt, um den Befehl von der vorigen Zeile fortzusetzen. Dies vermeidet, dass eine Zeile sehr lang wird. Siehe |line-continuation|. Dies funktioniert nur in einer Vim-Skriptdatei, nicht wenn man Befehle auf der Befehlszeile tippt. > command DiffOrig vert new | set bt=nofile | r ++edit # | 0d_ | diffthis \ | wincmd p | diffthis Dies fügt den Befehl »:DiffOrig« hinzu. Verwenden Sie ihn in einem modifizierten Puffer, um die Unterschiede zu der Datei zu sehen, wie sie geladen wurde. Siehe |diff| und |:DiffOrig|. > set nolangremap Verhindert, dass die Option 'langmap' auf Zeichen angewendet wird, die das Ergebnis einer Belegung sind. Falls (wie vorgegeben) gesetzt, könnte dies Erweiterungen beschädigen (aber es ist rückwärtskompatibel). Siehe 'langremap'. ============================================================================== *05.4* Einfache Tastenbelegungen Eine Belegung ermöglicht Ihnen, einen Satz von Vim-Befehlen an eine einzelne Taste zu binden. Stellen Sie sich zum Beispiel vor, dass Sie um gewisse Wörter geschwungene Klammern setzen müssen. Sie müssen mit anderen Worten ein Wort wie »Anzahl« in »{Anzahl}« ändern. Mit dem Befehl »:map« können Sie Vim sagen, dass die F5-Taste dies erledigt. Der Befehl ist wie folgt: > :map i{ea} < Anmerkung: Beim Eingeben dieses Befehls müssen Sie »« eingeben, indem Sie vier Zeichen tippen. Analog wird nicht durch das Drücken der -Taste eingegeben, sondern indem man fünf Zeichen tippt. Beachten Sie diesen Unterschied, wenn Sie das Handbuch lesen! Betrachten wir dies Stück für Stück: Die Funktionstaste F5. Dies ist die Auslösetaste, die veranlasst, dass der Befehl ausgeführt wird, wenn die Taste gedrückt wird. i{ Füge das Zeichen »{« ein. Die Taste beendet den Einfügemodus. e Gehe zum Ende des Wortes. a} Hänge »}« an das Wort an. Nachdem Sie den »:map«-Befehl ausgeführt haben, ist alles, was Sie tun müssen, um um ein Wort »{...}« zu setzen, den Cursor auf das erste Zeichen zu setzen und F5 zu setzen. In diesem Beispiel ist der Auslöser eine einzelne Taste; er kann jede Zeichenkette sein. Aber wenn Sie einen existierenden Vim-Befehl benutzen, ist dieser Befehl nicht mehr verfügbar. Vermeiden Sie dies besser. Eine Taste, die mit Belegungen benutzt werden kann, ist der Rückschrägstrich. Da Sie wahrscheinlich mehr als eine Belegung definieren wollen, fügen Sie ein anderes Zeichen hinzu. Sie könnten zum Beispiel »\r« belegen, um runde Klammern um ein Wort zu setzen, und »\s« für geschwungene Klammern: > :map \r i(ea) :map \s i{ea} Sie müssen »\« und »r« schnell hintereinander tippen, so dass Vim weiß, dass sie zusammen gehören. Der Befehl »:map« listet ohne Argumente Ihre aktuellen Belegungen auf. Zumindest die für den Normal-Modus. Mehr über Belegungen in Abschnitt |40.1| ============================================================================== *05.5* Ein Paket hinzufügen *add-package* *matchit-install* Ein Paket ist ein Satz von Dateien, die Sie zu Vim hinzufügen können. Es gibt zwei Arten von Paketen: optionale und solche, die beim Starten automatisch geladen werden. Die Vim-Distribution hat ein Paar Pakete, die Sie optional nutzen können. Ein Beispiel ist die Erweiterung matchit. Diese Erweiterung lässt den Befehl »%« zu übereinstimmenden HTML-Tags springen, bei Vim-Skripten zwischen if/else/endif, und so weiter. Sehr nützlich, allerdings ist sie nicht rückwärtskompatibel (deshalb ist sie nicht standardmäßig aktiviert). Um die Erweiterung matchit zu benutzen, fügen Sie Ihrer Vimrc-Datei folgendes hinzu: > packadd! matchit Das ist alles! Wenn Sie Vim nun von neuem starten, können Sie die Hilfe zu dieser Erweiterung finden: > :help matchit Dies funktioniert, weil das Laden des Plugins durch »:packadd« auch das Verzeichnis des Paketes zu 'runtimepath' hinzufügt, so dass die Hilfedatei gefunden werden kann. Sie können Pakete an verschiedenen Orten im Internet finden. Sie kommen für gewöhnlich als Archivdatei oder als Repositorium. Bei einem Archiv können Sie diesen Schritten folgen: 1. Erzeugen Sie das Verzeichnis für das Paket: > mkdir -p ~/.vim/pack/fancy < »fancy« kann ganz nach Ihrem Belieben sein. Wählen Sie einen Namen, der das Paket beschreibt. 2. Entpacken Sie die Archivdatei in das Verzeichnis. Hier wird angenommen, dass das oberste Verzeichnis in dem Archiv »start« ist: > cd ~/.vim/pack/fancy unzip /tmp/fancy.zip < Falls das Archiv-Layout verschieden ist, stellen Sie sicher, dass Sie einen Pfad wie folgt erhalten: ~/.vim/pack/fancy/start/fancytext/plugin/fancy.vim ~ Hier ist »fancytext« der Name des Plugins. Er kann beliebig sein. Weitere Informationen über Pakete können unter |packages| gefunden werden. ============================================================================== *05.6* Eine Erweiterung hinzufügen *add-plugin* *plugin* Vims Funktionalität kann durch das Hinzufügen von Erweiterungen erweitert werden. Eine Erweiterung ist nicht mehr als ein Vim-Skript, das automatisch geladen wird, wenn Vim startet. Sie können eine Erweiterung sehr leicht hinzufügen, indem Sie sie in Ihr Verzeichnis plugin legen. {nicht verfügbar, wenn Vim ohne die Fähigkeit |+eval| kompiliert wurde} Es gibt zwei Arten von Erweiterungen: globale Erweiterung: Benutzt für alle Arten von Dateien Dateityperweiterung: Nur für einen bestimmten Typ von Dateien benutzt Die globalen Erweiterungen werden zuerst besprochen, dann die Dateityperweiterungen unter |add-filetype-plugin|. GLOBALE ERWEITERUNGEN *standard-plugin* Wenn Sie Vim starten, lädt er automatisch eine Zahl globaler Erweiterungen. Dafür brauchen Sie nichts zu tun. Sie fügen Funktionalitäten hinzu, die die meisten Leute verwenden wollen, aber die als Vim-Skript implementiert wurden, statt in Vim hineinkompiliert zu werden. Sie können sie im Hilfe-Index unter |standard-plugin-list| finden. Siehe auch |load-plugins|. *add-global-plugin* *globales-plugin-hinzufuegen* Sie können eine globale Erweiterung hinzufügen, um Funktionalität hinzuzufügen, die immer da ist, wenn Sie Vim benutzen. Es sind nur zwei Schritte, um eine globale Erweiterung hinzuzufügen: 1. Eine Kopie der Erweiterung besorgen. 2. Sie in das richtige Verzeichnis legen. EINE GLOBALE ERWEITERUNG BEKOMMEN Wo können Sie Erweiterungen finden? - Einige werden immer geladen, Sie können sie im Verzeichnis $VIMRUNTIME/plugin sehen.- Einige kommen mit Vim. Sie können sie im Verzeichnis $VIMRUNTIME/macros und seinen Unterverzeichnissen finden und unter $VIM/vimfiles/pack/dist/opt/. - Aus dem Internet herunterladen. Auf http://www.vim.org/ gibt es eine große Auswahl. - Manchmal werden sie auf einer Vim-|maillist| veröffentlicht. - Sie könnten selbst eine schreiben, siehe |write-plugin|. Einige Erweiterungen kommen als Vimball-Archiv, siehe |vimball|. Einige Erweiterungen können automatisch aktualisiert werden, siehe |getscript|. EINE GLOBALE ERWEITERUNG BENUTZEN Zuerst lesen Sie den Text in der Erweiterung selbst, um es auf irgendwelche besonderen Bedingungen zu prüfen. Dann kopieren Sie die Datei in Ihr Verzeichnis plugin: System Plugin-Verzeichnis ~ Unix ~/.vim/plugin/ PC and OS/2 $HOME/vimfiles/plugin or $VIM/vimfiles/plugin Amiga s:vimfiles/plugin Macintosh $VIM:vimfiles:plugin Mac OS X ~/.vim/plugin/ RISC-OS Choices:vimfiles.plugin Beispiel für Unix (wir nehmen an, dass Sie noch kein Verzeichnis plugin haben): > mkdir ~/.vim mkdir ~/.vim/plugin cp /tmp/yourplugin.vim ~/.vim/plugin Das ist alles! Nun können Sie die Befehle, die in dieser Erweiterung definiert werden, benutzen. Statt alle Erweiterungen direkt in das Verzeichnis »plugin/« zu legen, mögen Sie sie besser organisieren, indem Sie sie in Unterverzeichnisse unter »plugin/« legen. Erwägen Sie zum Beispiel »~/.vim/plugin/perl/*.vim« für alle Ihre Perlerweiterungen. DATEITYP-ERWEITERUNGEN *add-filetype-plugin* *ftplugins* Das Vim-Paket kommt mit einer Reihe von Erweiterungen für verschiedene Dateitypen, die Sie mit diesem Befehl benutzen können: > :filetype plugin on Das ist alles! Lesen Sie unter |vimrc-filetype|. Falls Sie eine Erweiterung für einen Dateityp, den Sie benutzen, vermissen, oder Sie finden eine besseres, können Sie sie hinzufügen. Es gibt zwei Schritte für das Hinzufügen einer Dateityperweiterung: 1. Eine Kopie der Erweiterung beziehen. 2. Sie in das richtige Verzeichnis legen. EINE DATEITYPERWEITERUNG BEZIEHEN Sie können sie an denselben Stellen finden, wie die globalen Erweiterungen. Achten Sie darauf, ob der Dateityp erwähnt wird, dann wissen Sie, ob die Erweiterung eine globale oder eine Dateityperweiterung ist. Die Skripte in $VIMRUNTIME/macros sind globale, die Dateityperweiterungen sind in $VIMRUNTIME/ftplugin. EINE DATEITYPERWEITERUNG BENUTZENt *ftplugin-name* Sie können ein Dateityperweiterung hinzufügen, indem Sie sie in das richtige Verzeichnis legen. Der Name dieses Verzeichnisses ist dasselbe wie oben für globale Erweiterungen, aber der letzte Teil ist »ftplugin«. Nehmen Sie an, Sie haben eine Erweiterung für den Dateityp »zeug« gefunden und Sie sind unter Unix. Dann können Sie diese Datei in das Verzeichnis »ftplugin« verschieben: > mv datei ~/.vim/ftplugin/zeug.vim Falls die Datei bereits existiert, haben Sie bereits eine Erweiterung für »zeug«. Sie mögen prüfen wollen, ob die existierende Erweiterung nicht mit der hinzuzufügenden kollidiert. Falls es in Ordnung ist, können Sie der neuen einen anderen Namen geben: > mv datei ~/.vim/ftplugin/zeug_mehr.vim Der Unterstrich wird benutzt, um den Namen des Dateityps vom Rest zu trennen, was alles sein kann. Falls Sie »auchzeug.vim« benutzen, würde sie nicht funktionieren, sie würde für den Dateityp »auchzeug« geladen. Unter MS-DOS können Sie keine langen Dateinamen benutzen. Sie würden in Probleme geraten, falls Sie eine zweite Erweiterung hinzufügen, und der Dateityp mehr als sechs Zeichen hat. Sie können ein extra Verzeichnis benutzen, um dem beizukommen: > mkdir $VIM/vimfiles/ftplugin/fortran copy thefile $VIM/vimfiles/ftplugin/fortran/too.vim Die generischen Namen für Dateityp-Plugins sind: > ftplugin/.vim ftplugin/_.vim ftplugin//.vim Hier kann »« jeder Name sein, den Sie mögen. Beispiele für den Dateityp »zeug« unter Unix: > ~/.vim/ftplugin/zeug.vim ~/.vim/ftplugin/zeug_def.vim ~/.vim/ftplugin/zeug/header.vim Der Teil ist der Name des Dateityps, für den die Erweiterung benutzt werden soll. Nur Dateien dieses Dateityps benutzen die Einstellungen aus der Erweiterung. Der Teil der Erweiterungsdatei ist nicht entscheidend, Sie können ihn benutzen, um mehrere Erweiterungen für denselben Dateityp zu haben. Beachten Sie, dass der Dateiname auf ».vim« enden muss. Weiterlesen: |filetype-plugins| Dokumentation für Dateityperweiterungen und Informationen darüber, wie man vermeidet, dass Belegungen Probleme verursachen. |load-plugins| Wann die globalen Erweiterungen während des Startens geladen werden. |ftplugin-overrule| Die Einstellungen aus einer globalen Erweiterung aufheben. |write-plugin| Wie man ein Erweiterungsskript schreibt. |plugin-details| Für mehr Informationen über die Benutzung von Erweiterungen oder wenn Ihre Erweiterung nicht funktioniert. |new-filetype| Wie einen neuen Dateityp erkennen. ============================================================================== *05.7* Eine Hilfedatei hinzufügen *add-local-help* Falls Sie Glück haben, liegt der Erweiterung, die Sie installieren, auch eine Hilfe-Datei bei. Wir erklären, wie die Hilfe-Datei zu installieren ist, so dass Sie einfach Hilfe für Ihre neue Erweiterung finden können. Lassen Sie uns die Erweiterung »doit.vim« als Beispiel benutzen. Diese Erweiterung hat Dokumentation: »doit.txt«. Lassen Sie uns zuerst die Erweiterung in das richtige Verzeichnis kopieren. Diesmal machen wir es aus Vim heraus. (Sie können einige der »mkdir«-Befehle überspringen, wenn Sie das Verzeichnis bereits haben.) > :!mkdir ~/.vim :!mkdir ~/.vim/plugin :!cp /tmp/doit.vim ~/.vim/plugin Der Befehl »cp« ist für Unix, unter MS-DOS benutzen Sie »copy«. Erzeugen Sie nun ein Verzeichnis »doc« in einem der Verzeichnisse in 'runtimepath'. > :!mkdir ~/.vim/doc Kopieren Sie die Hilfe-Datei in das Verzeichnis »doc«. > :!cp /tmp/doit.txt ~/.vim/doc Jetzt kommt der Trick, der es Ihnen erlaubt, in die Themen in der neuen Hilfedatei zu springen: Erzeugen Sie die lokale Tag-Datei mit dem Befehl |:helptags|. > :helptags ~/.vim/doc Nun können Sie den Befehl > :help doit benutzen, um in der gerade hinzugefügten Hilfedatei die Hilfe für »doit« zu finden. Sie können für die lokale Hilfedatei einen Eintrag sehen, wenn Sie dies machen: > :help local-additions Die Titelzeilen der lokalen Hilfedateien werden automatisch zu diesem Abschnitt hinzugefügt. Dort können Sie sehen, welche lokalen Hilfedateien hinzugefügt wurden und über das Tag in sie springen. Um eine lokale Hilfedatei zu schreiben, siehe |write-local-help|. ============================================================================== *05.8* Das Optionen-Fenster Falls Sie nach einer Option suchen, die nicht tut, was Sie wollen, können Sie hier in den Hilfe-Dateien suchen: |options|. Ein anderer Weg ist diesen Befehl zu benutzen: > :options Dies öffnet ein neues Fenster mit einer Liste von Optionen mit einer einzeiligen Erklärung. Die Optionen sind nach Themen gruppiert. Bewegen Sie den Cursor auf ein Thema und drücken Sie um dorthin zu springen. Drücken Sie erneut um zurückzuspringen. Oder benutzen Sie CTRL-O. Sie können den Wert einer Option ändern. Gehen Sie zum Beispiel zum Thema »displaying text«. Dann bewegen Sie den Cursor runter auf diese Zeile: set wrap nowrap ~ Wenn Sie drücken, ändert sich die Zeile in: set nowrap wrap ~ Die Option ist nun ausgeschaltet. Genau über dieser Zeile ist eine kurze Beschreibung der Option 'wrap'. Gehen Sie mit dem Cursor eine Zeile nach oben, um ihn auf dieser Zeile zu positionieren. Nun drücken Sie und Sie springen in die volle Hilfe zur Option 'wrap'. Bei Optionen, die eine Zahl oder eine Zeichenkette als Argument nehmen können Sie den Wert editieren. Drücken Sie dann , um den neuen Wert anzuwenden. Gehen Sie zum Beispiel mit dem Cursor wenige Zeilen nach oben zu dieser Zeile: set so=0 ~ Setzen Sie den Cursor mit »$« auf die Null. Ändern Sie sie mit »r5« in eine fünf. Dann drücken Sie , um den neuen Wert anzuwenden. Wenn Sie nun den Cursor umherbewegen, bemerken Sie, dass der Text rollt, bevor Sie den Rand erreichen. Das ist, was die Option 'scrolloff' tut, sie gibt einen Offset vom Rand des Fensters an, ab dem das Rollen beginnt. ============================================================================== *05.9* Häufig benutzte Optionen Es gibt unglaublich viele Optionen. Viele von Ihnen werden Sie kaum jemals benutzen. Einige der nützlicheren werden hier erwähnt. Vergessen Sie nicht, dass Sie mehr Hilfe zu diesen Optionen mit dem Befehl »:help« bekommen können, mit einfachen Zitatzeichen vor und nach dem Namen der Option. Zum Beispiel: > :help 'wrap' Falls Sie den Wert einer Option verstellt haben, können Sie ihn zurück auf die Voreinstellung setzen, indem Sie ein »&« (kaufmännisches Und) hinter den Namen der Option setzen. Beispiel: > :set iskeyword& ZEILEN NICHT UMBRECHEN Vim bricht normalerweise lange Zeilen um, so dass Sie den ganzen Text sehen können. Manchmal ist es besser, den Text rechts des Fensters weiterlaufen zu lassen. Dann müssen Sie den Text von links nach rechts rollen, um alles von einer langen Zeile zu sehen. Schalten Sie mit diesem Befehl den Umbruch aus: > :set nowrap Vim rollt den Text automatisch, wenn Sie auf Text gehen, der nicht angezeigt wird. Tun Sie dies, um einen Kontext von zehn Zeichen zu sehen: > :set sidescroll=10 Dies ändert nicht den Text in der Datei, nur die Art, wie er angezeigt wird. UM DAS ZEILENEDE UMBRECHENDE BEWEGUNGSBEFEHLE Die meisten Befehle zum Umherbewegen enden die Bewegung am Anfang und Ende einer Zeile. Sie können dies mit der Option 'whichwrap' ändern. Dies setzt sie auf die Voreinstellung: > :set whichwrap=b,s Dies erlaubt der Rückschritttaste (), wenn sie auf der ersten Position einer Zeile benutzt wird, den Cursor auf das Ende der vorigen Zeile zu bewegen. Und die Leerzeichentaste geht vom Ende einer Zeile zum Anfang der nächsten. Um es den Cursortasten und zu erlauben, ebenfalls dem Umbruch zu folgen, benutzen Sie diesen Befehl: > :set whichwrap=b,s,<,> Dies ist immer noch nur für den Normalmodus. Um und dies auch im Einfügemodus tun zu lassen: > :set whichwrap=b,s,<,>,[,] Es gibt noch weitere Flags, die hinzugefügt werden können, siehe 'whichwrap'. TABULATOREN ANZEIGEN Wenn es Tabulatoren in einer Datei gibt, kann man nicht sehen, wo sie sind. Um sie sichtbar zu machen: > :set list Nun wird jeder Tabulator als ^I angezeigt, und am Ende jeder Zeile wird ein »$« angezeigt, so dass Sie nachlaufende Leerzeichen erkennen können, die sonst unerkannt blieben. Ein Nachteil ist, dass dies hässlich aussieht, wenn in einer Datei viele Tabulatoren sind. Wenn Sie ein farbiges Terminal haben oder die GUI benutzen, kann Vim Tabulatoren und Leerzeichen als hervorgehobene Zeichen anzeigen. Benutzen Sie die Option 'listchars': > :set listchars=tab:>-,trail:- Nun wird jeder Tabulator als »>---« angezeigt (mit mehr oder weniger »-«) und nachlaufe Leerzeichen als »-«. Sieht viel besser aus, oder nicht? SCHLüSSELWöRTER Die Option 'iskeyword' gibt an, welche Zeichen in einem Wort vorkommen können: > :set iskeyword < iskeyword=@,48-57,_,192-255 ~ Das »@« steht für alle Buchstaben des Alphabets. »48-57« steht für die ASCII-Zeichen 48 bis 57, dies sind die Ziffern 0 bis 9. »192-255« sind die druckbaren lateinischen Sonderzeichen. Manchmal wollen Sie einen Bindestrich in Schlüsselwörter einbeziehen, so dass Befehle wie »w« »upper-case« als ein Wort betrachten. Sie können dies folgendermaßen tun: > :set iskeyword+=- :set iskeyword < iskeyword=@,48-57,_,192-255,- ~ Falls Sie auf den neuen Wert schauen, sehen Sie, dass Vim ein Komma für Sie hinzugefügt hat. Um ein Zeichen zu entfernen, benutzen Sie »-=«. Um zum Beispiel den Unterstrich zu entfernen: > :set iskeyword-=_ :set iskeyword < iskeyword=@,48-57,192-255,- ~ Diesmal wird das Komma automatisch gelöscht. PLATZ FüR NACHRICHTEN Wenn Vim startet, gibt es eine Zeile am Bildschirmende, die für Nachrichten benutzt wird. Wenn eine Nachricht lang ist, wird sie entweder abgeschnitten, also können Sie nur einen Teil von ihr sehen, oder der Text rollt und Sie müssen drücken, um fortzufahren. Sie können die Option 'cmdheight' auf die für Nachrichten zu benutzende Anzahl Zeilen setzen. Beispiel: > :set cmdheight=3 Dies bedeutet, dass dort weniger Platz ist, um Text zu editieren, also ist es ein Kompromiss. ============================================================================== Nächstes Kapitel: |usr_06.txt| Syntax-Hervorhebung benutzen Copyright: siehe |manual-copyright| vim:tw=78:ts=8:noet:ft=help:norl: