Vi: Unterschied zwischen den Versionen
Dirk (Diskussion | Beiträge) |
K Link zum Englischem Wiki |
||
(15 dazwischenliegende Versionen von 6 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
{{ | {{hinweis|Dieser Artikel bezieht sich auf '''vi'''. Zu dem weit leistungsfähigeren Klon '''Vim („Vi iMproved“)''' siehe [[Vim]].}} | ||
{{righttoc}} | {{righttoc}} | ||
vi ist seit Jahrzehnten der Standardeditor vieler Unixsysteme, als solcher weit verbreitet, wohl bekannt und gut dokumentiert. Der vorliegende Artikel ist aus diesem Grunde absichtlich dahingehend kurzgehalten. | |||
vi ist seit Jahrzehnten der Standardeditor vieler Unixsysteme, als solcher weit verbreitet, wohl bekannt und gut dokumentiert. | |||
{{Installation|repo=core|paket=vi}} | |||
{{hinweis|Diese Zeile installiert vi, nicht [[Vim]]. vi und Vim können parallel nebeneinander installiert werden, wobei es zu keiner Überschneidung kommt. Die in /usr/bin installierten Binaries haben klar unterscheidbare Namen. vi und [[Vim]] benutzen allerdings mindestens eine Konfigurationsdatei gemeinsam: <code>~/.exrc</code>. Sofern beide Programme installiert sind, ist es klug, dies zu berücksichtigen. Die Einstellungen sind so gut wie nicht kompatibel. Man sollte in so einem Fall Vim ausschließlich über <code>~/.vimrc</code> konfigurieren und dort die Option <code>noexrc</code> setzen.}} | |||
vi | Das Binary von vi heißt <code>/usr/bin/ex</code>. Die Bezeichnung „vi“ ist nur ein [[ln|symbolischer Link]] auf ex. Man kann „vi“ aber auch auf Vim legen. Um ex dann dennoch im ''visual mode'' zu starten, muss man ex mit der Option -v starten. | ||
==Bemerkungen== | ==Bemerkungen== | ||
Zeile 22: | Zeile 15: | ||
Die Eingabe ist nicht besonders schnell und rollt sogar nach, d.h. wenn man eine Taste festhält und die ggf. recht schnell konfigurierte Zeichenwiederholung aktiv wird, füllt es den Eingabepuffer weit schneller als die Darstellung mit dem Anzeigen nachkommt. Das führt dazu, dass auch nach Loslassen der Taste noch einige -zig oder -hundert Zeichen eingefügt werden können, die sich eben noch im Eingabepuffer befinden. Das ist sehr unangenehm, aber derzeit nicht zu ändern. | Die Eingabe ist nicht besonders schnell und rollt sogar nach, d.h. wenn man eine Taste festhält und die ggf. recht schnell konfigurierte Zeichenwiederholung aktiv wird, füllt es den Eingabepuffer weit schneller als die Darstellung mit dem Anzeigen nachkommt. Das führt dazu, dass auch nach Loslassen der Taste noch einige -zig oder -hundert Zeichen eingefügt werden können, die sich eben noch im Eingabepuffer befinden. Das ist sehr unangenehm, aber derzeit nicht zu ändern. | ||
=== Cursortasten in Eingabe === | |||
Was die Cursortasten betrifft, so ist zu bemerken, dass vi standardmäßig im Eingabemodus betätigte Cursortasten als voll gültige Eingaben betrachtet und binär in den Text überträgt. Das ist insbesondere deshalb ärgerlich, weil vi nur eine undo-Ebene bereitstellt, die aktuelle Zeile. | Was die Cursortasten betrifft, so ist zu bemerken, dass vi standardmäßig im Eingabemodus betätigte Cursortasten als voll gültige Eingaben betrachtet und binär in den Text überträgt. Das ist insbesondere deshalb ärgerlich, weil vi nur eine undo-Ebene bereitstellt, die aktuelle Zeile. | ||
=== Breite Fenster === | === Breite Fenster (unter Arch gefixt) === | ||
vi hat ein Problem bei "breiten Fenstern" (vor allem in Terminals, möglicherweise aber schon auf Konsolen). Die maximale Fensterbreite (und damit Zeilenlänge) darf 160 Zeichen nicht überschreiten, ansonsten meldet vi | |||
Terminal too wide | Terminal too wide | ||
: | : | ||
und läuft nur als ex, d.h. nicht im ''visual mode'', was eine wesentliche Beschränkung der Möglichkeiten bedeutet. Wichtig ist, wenn das gemeldet wird, mit q (hinter dem Doppelpunkt) kommt man wieder hinaus. | und läuft nur als ex, d.h. nicht im ''visual mode'', was eine wesentliche Beschränkung der Möglichkeiten bedeutet. Wichtig ist, wenn das gemeldet wird, nicht erschrecken, mit q (hinter dem Doppelpunkt) kommt man wieder hinaus. | ||
Auch die Höhe des Fensters ist beschränkt, nämlich auf 70 bzw. 100 Zeilen, aber das ist meist unkritisch. | |||
Die Behebung dieses Problems ist, wie Untersuchungen gezeigt haben, nicht möglich, ohne das Programm selbst neu zu compilieren. Die maximale Zeilenlänge ist direkt im Programmcode fest auf 160 Zeichen beschränkt. Es ist aber für denjenigen Anwender, der schonmal ein C-Programm compiliert hat, nicht weiter schwierig, dies zu ändern. Hier die [[Vi/Terminal too wide|vollständige Anleitung]]. | |||
=== Zeilenumbruch | === Zeilenumbruch === | ||
vi bricht lange Zeilen grundsätzlich um. Seine Option wrapmargin erlaubt das Festlegen einer Spalte, bei der dies erfolgt. Man kann es auf 0 setzen, um es auszuschalten, oder auch mutig auf 1000, um das Umbrechen weit nach rechts zu verlegen - man scheitert aber dann dennoch an der 160-Zeichen-Beschränkung. | vi bricht lange Zeilen grundsätzlich optisch um. Seine Option <code>wrapmargin</code> erlaubt das Festlegen einer Spalte, bei der dies erfolgt. Man kann es auf 0 setzen, um es auszuschalten, oder auch mutig auf 1000, um das Umbrechen weit nach rechts zu verlegen - man scheitert aber dann dennoch an der 160-Zeichen-Beschränkung bzw. an den physischen Grenzen des Terminals. | ||
vi | === Auffälliges Flackern (unter Arch gefixt) === | ||
vi verursacht u.U. ein auffälliges Flackern. Dies betrifft sowohl X-Terminals wie selbst die Konsole. Das Flackern wird sichtbar, sofern man an einer der Textbegrenzungen anstößt oder auch beim Einfügen am Ende einer Zeile, dort bei jedem einzelnen neu eingegebenen Zeichen. Offenbar wird häufig viel zu viel gelöscht und neu ausgegeben. In diesem Falle ist es notwendig, in <code>~/.exrc</code> die Zeile | |||
set noflash | |||
einzutragen, die das Problem zuverlässig behebt. | |||
==Siehe auch== | ==Siehe auch== | ||
Zeile 46: | Zeile 43: | ||
== Weblinks == | == Weblinks == | ||
* [http://ex-vi.sourceforge.net/ Offizielle Homepage] {{sprache|en}} | * [http://ex-vi.sourceforge.net/ Offizielle Homepage] {{sprache|en}} | ||
** [http://unix.t-a-y-l-o-r.com/Vi.html The Vi Editor] {{sprache|en}} | ** [http://unix.t-a-y-l-o-r.com/Vi.html The Vi Editor] {{sprache|en}} | ||
** [http://home.arcor.de/it-solution/Unix/VI-Editor.htm vi – Editor] {{sprache|de}} | ** [http://home.arcor.de/it-solution/Unix/VI-Editor.htm vi – Editor] {{sprache|de}} | ||
* [ | * [https://blogs.oracle.com/marigan/entry/how_the_vi_editor_would Wie vi aussehen würde, wenn Microsoft ihn entwickelt hätte ;)] {{sprache|en}} | ||
[[Kategorie:Konsole]] | [[Kategorie:Konsole]] | ||
[[Kategorie:Editoren]] | [[Kategorie:Editoren]] | ||
[[en:Vi]] |
Aktuelle Version vom 13. Oktober 2020, 23:30 Uhr
Hinweis: Dieser Artikel bezieht sich auf vi. Zu dem weit leistungsfähigeren Klon Vim („Vi iMproved“) siehe Vim.
vi ist seit Jahrzehnten der Standardeditor vieler Unixsysteme, als solcher weit verbreitet, wohl bekannt und gut dokumentiert. Der vorliegende Artikel ist aus diesem Grunde absichtlich dahingehend kurzgehalten.
Installation
Das Programm ist als
vi
in core
verfügbar, und kann von dort
mittels Pacman
installiert werden.
Hinweis: Diese Zeile installiert vi, nicht Vim. vi und Vim können parallel nebeneinander installiert werden, wobei es zu keiner Überschneidung kommt. Die in /usr/bin installierten Binaries haben klar unterscheidbare Namen. vi und Vim benutzen allerdings mindestens eine Konfigurationsdatei gemeinsam: ~/.exrc
. Sofern beide Programme installiert sind, ist es klug, dies zu berücksichtigen. Die Einstellungen sind so gut wie nicht kompatibel. Man sollte in so einem Fall Vim ausschließlich über ~/.vimrc
konfigurieren und dort die Option noexrc
setzen.
Das Binary von vi heißt /usr/bin/ex
. Die Bezeichnung „vi“ ist nur ein symbolischer Link auf ex. Man kann „vi“ aber auch auf Vim legen. Um ex dann dennoch im visual mode zu starten, muss man ex mit der Option -v starten.
Bemerkungen
vi hat momentan einige Probleme bei Eingabe und Darstellung.
Scrollen
Die Eingabe ist nicht besonders schnell und rollt sogar nach, d.h. wenn man eine Taste festhält und die ggf. recht schnell konfigurierte Zeichenwiederholung aktiv wird, füllt es den Eingabepuffer weit schneller als die Darstellung mit dem Anzeigen nachkommt. Das führt dazu, dass auch nach Loslassen der Taste noch einige -zig oder -hundert Zeichen eingefügt werden können, die sich eben noch im Eingabepuffer befinden. Das ist sehr unangenehm, aber derzeit nicht zu ändern.
Cursortasten in Eingabe
Was die Cursortasten betrifft, so ist zu bemerken, dass vi standardmäßig im Eingabemodus betätigte Cursortasten als voll gültige Eingaben betrachtet und binär in den Text überträgt. Das ist insbesondere deshalb ärgerlich, weil vi nur eine undo-Ebene bereitstellt, die aktuelle Zeile.
Breite Fenster (unter Arch gefixt)
vi hat ein Problem bei "breiten Fenstern" (vor allem in Terminals, möglicherweise aber schon auf Konsolen). Die maximale Fensterbreite (und damit Zeilenlänge) darf 160 Zeichen nicht überschreiten, ansonsten meldet vi
Terminal too wide :
und läuft nur als ex, d.h. nicht im visual mode, was eine wesentliche Beschränkung der Möglichkeiten bedeutet. Wichtig ist, wenn das gemeldet wird, nicht erschrecken, mit q (hinter dem Doppelpunkt) kommt man wieder hinaus.
Auch die Höhe des Fensters ist beschränkt, nämlich auf 70 bzw. 100 Zeilen, aber das ist meist unkritisch.
Die Behebung dieses Problems ist, wie Untersuchungen gezeigt haben, nicht möglich, ohne das Programm selbst neu zu compilieren. Die maximale Zeilenlänge ist direkt im Programmcode fest auf 160 Zeichen beschränkt. Es ist aber für denjenigen Anwender, der schonmal ein C-Programm compiliert hat, nicht weiter schwierig, dies zu ändern. Hier die vollständige Anleitung.
Zeilenumbruch
vi bricht lange Zeilen grundsätzlich optisch um. Seine Option wrapmargin
erlaubt das Festlegen einer Spalte, bei der dies erfolgt. Man kann es auf 0 setzen, um es auszuschalten, oder auch mutig auf 1000, um das Umbrechen weit nach rechts zu verlegen - man scheitert aber dann dennoch an der 160-Zeichen-Beschränkung bzw. an den physischen Grenzen des Terminals.
Auffälliges Flackern (unter Arch gefixt)
vi verursacht u.U. ein auffälliges Flackern. Dies betrifft sowohl X-Terminals wie selbst die Konsole. Das Flackern wird sichtbar, sofern man an einer der Textbegrenzungen anstößt oder auch beim Einfügen am Ende einer Zeile, dort bei jedem einzelnen neu eingegebenen Zeichen. Offenbar wird häufig viel zu viel gelöscht und neu ausgegeben. In diesem Falle ist es notwendig, in ~/.exrc
die Zeile
set noflash
einzutragen, die das Problem zuverlässig behebt.