Vim: Unterschied zwischen den Versionen
Jewox (Diskussion | Beiträge) Rechtschreibprüfung eingefügt, syntax |
Dirk (Diskussion | Beiträge) |
||
(6 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 39: | Zeile 39: | ||
===Nützliche Optionen=== | ===Nützliche Optionen=== | ||
:set | :set nobackup # Backups ausschalten | ||
:set ruler | :set ruler # Zeile und Spalte anzeigen | ||
:set | :set number # sollte "set ruler" nicht klappen, kann man diese Option nehmen | ||
:set | :set nocompatible # nicht im Kompatibilitätsmodus arbeiten, d.h. Vim-spezifische Erweiterungen nutzen | ||
:set | :set noexrc # ~/.exrc nicht benutzen | ||
:set showmode | :set noerrorbells # nicht piepsen, wenn man an Textbegrenzungen anstößt o.ä. | ||
:set | :set showmode # den aktuellen Mode anzeigen | ||
:set | :set nowrap # lange Zeilen nicht umbrechen | ||
:set scrolloff=x # x-Zeilen vor dem Rand wird schon gescrollt | |||
:set tabstop=x # Einmal tab gedrückt entspricht x - Leerzeichen | |||
:set clipboard=unnamedplus # Wenn man etwas kopiert, dann wird das in's clipboard kopiert, sodass man es überall wieder pasten kann | |||
==Tipps und Tricks== | ==Tipps und Tricks== | ||
Zeile 119: | Zeile 122: | ||
* [http://www.vim.org/ Homepage : vim online] {{sprache|en}} | * [http://www.vim.org/ Homepage : vim online] {{sprache|en}} | ||
* [http://vim.wikia.com/wiki/Vim_Tips_Wiki Vim Tips Wiki] {{sprache|en}} | * [http://vim.wikia.com/wiki/Vim_Tips_Wiki Vim Tips Wiki] {{sprache|en}} | ||
* [http://tnerual.eriogerg.free.fr/vimqrc-ge.pdf Vim Kurzanleitung (2 Seiten, PDF)] {{sprache|de}} | |||
* [http://lug.fh-swf.de/vim/vim-kurzanleitung/vim-kurzanleitung.pdf Vim Kurzanleitung (30 Seiten, PDF)] {{sprache|de}} | |||
* [http://tnerual.eriogerg.free.fr/vimqrc-ge.html VIM Quick Reference Card] {{sprache|de}} | |||
* [http://www.oualline.com/vim/vim-cook.html Vim Cookbook] {{sprache|en}} | |||
* [http://www.nitidelo.de/vim.php Vim Befehlsreferenz] {{sprache|de}} | |||
* [http://koydl.in-berlin.de/ A Byte Of Vim in Deutsch von Christoph Koydl] {{sprache|de}} | |||
[[Kategorie:Konsole]] | [[Kategorie:Konsole]] | ||
[[Kategorie:Editoren]] | [[Kategorie:Editoren]] | ||
[[en:Vim]] |
Aktuelle Version vom 24. Oktober 2022, 13:54 Uhr
Hinweis: Dieser Artikel bezieht sich ausdrücklich auf Vim, den leistungsfähigeren Klon von vi
Vim ist einer der am weitesten fortgeschrittenen, freien Klone des Standardeditors vi und als solcher ein de-facto-Standard vor allem auf Linux Systemen. Zusätzliche Eigenschaften sind z.B.
- Syntax-Highlighting,
- Programmierbarkeit,
- Erweiterbarkeit durch Plug-Ins,
- Code Folding (Einklappen von Abschnitten im Text) sowie
- Darstellung in mehreren Teilfenstern.
Installation
Das Programm ist als
vim
in extra
verfügbar, und kann von dort
mittels Pacman
installiert werden.
Vim ist nur auf der Konsole oder in einem Terminal aufrufbar.
Anleitungen zur Bedienung sind unter Weblinks zu finden.
Die GUI-Variante GVim befindet sich in einem gesonderten Paket.
# pacman -S gvim
Dieses Programm öffnet ein eigenes X11-Fenster, besitzt ein Menü, Datei-Dialoge,Scroll Bar, und weitere GUI-Spezifische Eigenschaften.
Vim steht in Konflikt mit GVim: Es kann entweder Vim oder GVim installiert werden, aber nicht beide Programme gleichzeitig. Siehe News: Vim/GVim 7.2.411 Update. Allerdings bringt das Paket gvim die nichtgrafische Variante mit, die wie gewohnt mittels vim gestartet werden kann.
Es existieren zudem in den Repositorys eine ganze Reihe separat zu installierender Plug-Ins.
Konfiguration
vi und Vim benutzen die Konfigurationsdatei ~/.exrc
gemeinsam, wenn beide Programme installiert sind. Die Einstellungen sind nicht kompatibel zueinander. Man sollte Vim ausschließlich über ~/.vimrc
konfigurieren und die Option noexrc
setzen.
Manuelle Einstellungen können in o.g. Konfigurationsdatei geschrieben werden, dann ohne führende Doppelpunkte. Vim bietet allerdings auch die Möglichkeit, solche Optionen zur Laufzeit zu setzen, zu testen und in die Konfigurationsdatei(en) zu speichern. Die Kommandos dazu lauten:
:set all :set <option> oder :set no<option> :set <option> = <value> :mk oder :mk! (oder :mkexrc oder :mkexrc!)
:mkexrc
und :mkexrc!
führen u.U. zu oben genanntem Konflikt mit vi. Statt :set <option>
zum Setzen von Optionen kann auch :set no<option>
zum Entfernen der Optionen verwendet werden.
Die Auflistung aller möglichen Einstellungen über das klassische, von vi bekannte :set all
verschafft bereits intuitiv Klarheit über bereits getätigte Einstellungen.
GVim besitzt zudem die Möglichkeit, Einstellungen auch über Menüs bzw. grafische Dialoge vorzunehmen.
Nützliche Optionen
:set nobackup # Backups ausschalten :set ruler # Zeile und Spalte anzeigen :set number # sollte "set ruler" nicht klappen, kann man diese Option nehmen :set nocompatible # nicht im Kompatibilitätsmodus arbeiten, d.h. Vim-spezifische Erweiterungen nutzen :set noexrc # ~/.exrc nicht benutzen :set noerrorbells # nicht piepsen, wenn man an Textbegrenzungen anstößt o.ä. :set showmode # den aktuellen Mode anzeigen :set nowrap # lange Zeilen nicht umbrechen :set scrolloff=x # x-Zeilen vor dem Rand wird schon gescrollt :set tabstop=x # Einmal tab gedrückt entspricht x - Leerzeichen :set clipboard=unnamedplus # Wenn man etwas kopiert, dann wird das in's clipboard kopiert, sodass man es überall wieder pasten kann
Tipps und Tricks
Datei .viminfo
Wer viel mit Vim arbeitet, wird feststellen, dass diese Datei stetig anwächst. Die Datei speichert bis zu einer gewissen Länge die Historie dessen, was der Benutzer mit Vim macht. Sie enthält dabei auch Textbestandteile, allerdings möglicherweise nicht nur von Dateien, die es längst nicht mehr gibt, sondern vielleicht auch sicherheitsrelevante und sensible Daten. Man kann diese Datei getrost löschen, auch automatisch, z.B. beim Login. Damit einhergehend verliert man dann aber die Möglichkeit, bereits schon mal eingegebene Befehle mit :<?>
zu durchsuchen.
Syntax-Highlighting
Möglicherweise kommt es nach einem Update dazu, dass das bislang einwandfrei funktionierende Syntax-Highlighting plötzlich ausgeschaltet ist. Ursache ist das beim Update von Vim dessen globale Konfigurationsdatei ausgetauscht wird. Man kann es explizit wieder einschalten, indem man in ~/.vimrc
die Zeile
syntax enable
einfügt. Nach einem Neustart von Vim funktioniert das Syntax-Highlighting wieder wie erwartet. Man sollte mittels :set all
den Wert der Option :syntax
prüfen. Dieser sollte auf "vim" stehen. Wenn nicht, sollte man dies ebenfalls in die ~/.vimrc
schreiben:
syntax=vim
integrierte Rechtschreibprüfung
Es werden dafür zusätzlich die Wörterbücher benötigt. Diese können mittels Pacman nachinstalliert werden z.B. vim-spell-de. Prüfe, ob die Option aktiviert ist
:spellinfo
Aktiviere die deutsche Rechtschreibprüfung
:setlocal spell spelllang=de_de
Nun werden die falschen bzw. unbekannten Wörter markiert.
Befehle im Kommandomodus
Befehl | Wirkung |
]s | Gehe zum nächsten falschen Wort |
[s | Gehe zum vorherigen falschen Wort |
zg | Fügt das Wort unter dem Cursor dem Wörterbuch hinzu, das in der Variable spellfile steht. |
zG | Speichert Wort unter Cursor in interner Wortliste, diese geht nach dem Schließen von Vim verloren |
zw | Fügt das Wort als falsch der Wörterbuchdatei aus der spellfile-Variable hinzu |
zW | Speichert Wort als falsch in interner Wortliste |
z= | Bietet eine Auswahl von Korrekturvorschlägen an |
zug zuw zuG zuW | Löscht das Wort unter dem Cursor aus der entsprechenden Liste |
Automatisch aktivieren
Will man de Rechtschreibprüfung für bestimmte Dateitypen (unterschieden durch den Dateinamenssuffix) aktivieren, so kann man dies über die ~/.vimrc
konfigurieren.
# Wann geladen wird # Maske # Aktivieren # Zu verwendende Sprache au BufNewFile,BufRead,BufEnter *.wiki setlocal spell spelllang=de_de au BufNewFile,BufRead,BufEnter *.md setlocal spell spelllang=de_de au BufNewFile,BufRead,BufEnter *.txt setlocal spell spelllang=de_de au BufNewFile,BufRead,BufEnter README setlocal spell spelllang=en_us
Dieses Beispiel aktiviert die Rechtschreibprüfung auf Deutsch für alle Dateien mit .wiki
als Suffix, für alle Markdown-Dateien (.md
) und für alle Textdateien, die durch .txt
gekennzeichnet werden. Zusätzlich wird für alle Dateien mit dem Namen README
die englische Rechtschreibprüfung aktiviert.
Weitere Hilfe
:help spell
Online unter Vim documentation: spell
Eingabemodus automatisch verlassen
Vim erlaubt im Eingabemodus Cursorbewegungen. Dies ist ein Tribut an jüngere Benutzer, die modeless Editoren gewöhnt sind und möglichst frei schreiben wollen. Dies kann allerdings signifikant stören, sofern der versierte Vim-Benutzer, der mit Kommandos arbeitet, gleich nach der Cursorbewegung ein Kommando ausführen will. Oft hämmert man dann das Kommando in den Text und muss es nachträglich mühsam wieder entfernen, um es dann noch einmal einzutippen. Vim erlaubt das Mappen von Tasten, auch spezifisch nur für bestimmte Modi. Man kann also die Cursortasten im Eingabemodus ganz nach Belieben so umgestalten, dass sie nicht nur die Cursorbewegung ausführen, sondern auch automatisch den Eingabemodus beenden, so dass Vim gleich zur Eingabe eines neuen Kommandos bereitsteht. Dazu dient folgendes kleine Stück Code, das in die ~/.vimrc
gehört:
:function CondRight () : if col(".") > 1 : call cursor(line("."), col(".") + 1) : endif :endfunction imap <up> <esc><up>:call CondRight()<CR> imap <down> <esc><down>:call CondRight()<CR> imap <left> <esc> imap <right> <esc>:call CondRight()<CR><right> imap <home> <esc><home> imap <end> <esc><end> imap <pageup> <esc><pageup>:call CondRight()<CR> imap <pagedown> <esc><pagedown>:call CondRight()<CR>
Vimtutor
Vim besitzt ein eingebautes Tutorial, mit dem man die Grundfunktionen des Editors erlernen kann.
vimtutor
Der Vimtutor wird automatisch bei der Vim-Installation mitinstalliert.