Vi: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
Keine Bearbeitungszusammenfassung
K (Kleinkram, etwas Stil, etc.)
Zeile 1: Zeile 1:
<span style="color:red">'''Abgrenzung''': Dieser Artikel bezieht sich auf '''vi'''. Zu dem weit leistungsfähigeren Klon '''Vim ("Vi IMproved")''' siehe [[Vim]].</span>
{{unvollständig}}
{{righttoc}}
{{hinweis|Dieser Artikel bezieht sich auf '''vi'''. Zu dem weit leistungsfähigeren Klon '''Vim („Vi iMproved“)''' siehe [[Vim]].}}


==Einleitung==
vi ist seit Jahrzehnten der Standardeditor vieler Unixsysteme, als solcher weit verbreitet, wohl bekannt und gut dokumentiert.
vi ist seit Jahrzehnten der Standardeditor vieler Unixsysteme, als solcher weit verbreitet, wohl bekannt und gut dokumentiert.


==Installation==
==Installation==
vi wird neuerdings wahrscheinlich implizit beim Arch Setup als Standard installiert.
vi wird implizit beim Arch Setup als Standard installiert. Die explizite Installation unter Arch geschieht aus dem „core“-Repository mittels Pacman.


Die explizite Installation unter Arch geschieht aus dem core repository mit
  pacman -S vi
  pacman -S vi
Noch einmal als 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.


'''Achtung''': vi und [[Vim]] benutzen mindestens eine Konfigurationsdatei gemeinsam: ~/.exrc Sofern beide Programme installiert sind, ist es klug, das zu berücksichtigen. Die Einstellungen sind so gut wie nicht kompatibel. Man sollte in so einem Fall [[Vim]] ausschliesslich über ~/.vimrc konfigurieren und dort die Option noexrc setzen.
* '''Noch einmal als 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 Binarys haben klar unterscheidbare Namen.


Das binary von vi heisst ex. Die Bezeichnung "vi" ist nur ein symbolischer Link auf ex. Man kann vi aber auch auf [[Vim]] legen. Um vi dennoch im ''visual mode'' zu starten, kann man ex mit der Option -v starten.
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 ~/.vimrc konfigurieren und dort die Option noexrc setzen.
 
Das binary von vi heisst <code>ex</code>. Die Bezeichnung „vi“ ist nur ein [[ln|symbolischer Link]] auf ex. Man kann vi aber auch auf Vim legen. Um vi dennoch im ''visual mode'' zu starten, kann man ex mit der Option -v starten.


==Bemerkungen==
==Bemerkungen==
vi hat momentan einige Probleme bei Eingabe und Darstellung.


vi hat momentan so seine Schwierigkeiten 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.


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 wahrscheinlich derzeit nicht zu ändern.
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ässig im Eingabemodus betätigte Cursortasten als voll gültige Eingaben betrachtet und binär in den Text hineinhämmert. Das ist insbesondere deshalb ärgerlich, weil vi nur eine undo-Ebene bereitstellt, die aktuelle Zeile.
=== Breite Fenster ===
Die Darstellung hat ein Problem bei "breiten Fenstern" (vor allem im xterm, möglicherweise aber schon auf Konsolen). Die maximale Fensterbreite (und damit Zeilenlänge) darf offenbar 160 Zeichen nicht überschreiten, ansonsten meldet vi


Die '''Darstellung''' hat ein Problem bei "breiten Fenstern" (vor allem im xterm, möglicherweise aber schon auf Konsolen). Die maximale Fensterbreite (und damit Zeilenlänge) darf offenbar 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. Man hat nun mehrere Möglichkeiten. Man kann die Fensterbreite mit Hilfe seines window managers auf unter 160 Zeichen bringen und muss vi neu starten. Das genügt, ist aber lästig. Man kann ferner schon vorher dem Terminal sagen, es sei nur 160 Zeichen breit:
 
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. Man hat nun mehrere Möglichkeiten. Man kann die Fensterbreite mit Hilfe seines Fenstermanagers auf unter 160 Zeichen bringen und muss vi neu starten. Das genügt, ist aber lästig. Man kann ferner schon vorher dem Terminal sagen, es sei nur 160 Zeichen breit:
 
  stty columns 160
  stty columns 160
vi wird damit zufrieden sein. Das Problem dabei ist aber nicht nur, dass ein möglicherweise erheblicher Teil des Fensters ungenutzt bleiben wird, sondern dass auch alle anderen Programme, die in diesem Terminal gestartet werden, nun 160 Zeichen als maximale Zeilenlänge annehmen. Eine dritte gelegentlich empfohlene Möglichkeit, nämlich das Setzen der Environmentvariable TERM auf "vt100", "vt220", "ansi" oder "xterm" hat im Experiment zwar Änderungen im Verhalten bewirkt, aber hinsichtlich des Terminal-too-wide-Problems keinerlei Verbesserung erzielt.


vi bricht lange Zeilen offenbar 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 wird damit zufrieden sein. Das Problem dabei ist aber nicht nur, dass ein möglicherweise erheblicher Teil des Fensters ungenutzt bleiben wird, sondern dass auch alle anderen Programme, die in diesem Terminal gestartet werden, nun 160 Zeichen als maximale Zeilenlänge annehmen. Eine dritte gelegentlich empfohlene Möglichkeit, nämlich das Setzen der [[Umgebungsvariablen]] TERM auf <code>vt100<code>, <code>vt220<code>, <code>ansi<code> oder <code>xterm<code> hat im Experiment zwar Änderungen im Verhalten bewirkt, aber hinsichtlich des Terminal-too-wide-Problems keinerlei Verbesserung erzielt.


vi hat einige Probleme bei der Darstellung hinsichtlich Flackern. Dies betrifft sowohl xterm wie selbst die Konsole. Offenbar wird häufig viel zu viel gelöscht und neu ausgegeben. Möglicherweise hilft die Einstellung
=== Zeilenumbruch und Flackern ===
set noflash
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.
in ~/.exrc, das Problem zu beheben.


==Externe Links==
vi hat einige Probleme bei der Darstellung hinsichtlich Flackern. Dies betrifft sowohl xterm wie selbst die Konsole. Offenbar wird häufig viel zu viel gelöscht und neu ausgegeben. Möglicherweise hilft die Einstellung <code>set noflash</code> in ~/.exrc, das Problem zu beheben.
Offizielle Homepage [[http://ex-vi.sourceforge.net/]]


Dokumentationen/Tutorials [[http://unix.t-a-y-l-o-r.com/Vi.html]], [[http://home.arcor.de/it-solution/Unix/VI-Editor.htm]]
==Siehe auch==
* [[Vim|Artikel zu Vim hier im Wiki]]


Joke [[http://blogs.sun.com/marigan/entry/how_the_vi_editor_would]]
== Weblinks ==
* [http://ex-vi.sourceforge.net/ Offizielle Homepage] {{sprache|en}}
* Dokumentationen/Tutorials
** [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://blogs.sun.com/marigan/entry/how_the_vi_editor_would Wie vi aussehen würde, wenn Microsoft ihn entwickelt hätte ;)] {{sprache|en}}


== Todo ==
* Der Ganze Abschnitt [[#Bemerkungen|Bemerkungen]] Enhält fast ausschließlich Vermutungen. Jemand sollte dies überprüfen, und die Vermutungen in [[Artikelstil#Referenzen_und_Vermutungen|Aussagen]] umwandeln.
[[Kategorie:Konsole]]
[[Kategorie:Konsole]]
[[Kategorie:Editoren]]
[[Kategorie:Editoren]]

Version vom 7. Oktober 2009, 10:37 Uhr

Dieser Artikel oder Artikelabschnitt ist noch nicht vollständig!


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.

Installation

vi wird implizit beim Arch Setup als Standard installiert. Die explizite Installation unter Arch geschieht aus dem „core“-Repository mittels Pacman.

pacman -S vi
  • Noch einmal als 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 Binarys 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 heisst ex. Die Bezeichnung „vi“ ist nur ein symbolischer Link auf ex. Man kann vi aber auch auf Vim legen. Um vi dennoch im visual mode zu starten, kann 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.

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

Die Darstellung hat ein Problem bei "breiten Fenstern" (vor allem im xterm, möglicherweise aber schon auf Konsolen). Die maximale Fensterbreite (und damit Zeilenlänge) darf offenbar 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, mit q (hinter dem Doppelpunkt) kommt man wieder hinaus. Man hat nun mehrere Möglichkeiten. Man kann die Fensterbreite mit Hilfe seines Fenstermanagers auf unter 160 Zeichen bringen und muss vi neu starten. Das genügt, ist aber lästig. Man kann ferner schon vorher dem Terminal sagen, es sei nur 160 Zeichen breit:

stty columns 160

vi wird damit zufrieden sein. Das Problem dabei ist aber nicht nur, dass ein möglicherweise erheblicher Teil des Fensters ungenutzt bleiben wird, sondern dass auch alle anderen Programme, die in diesem Terminal gestartet werden, nun 160 Zeichen als maximale Zeilenlänge annehmen. Eine dritte gelegentlich empfohlene Möglichkeit, nämlich das Setzen der Umgebungsvariablen TERM auf vt100, vt220, ansi oder xterm hat im Experiment zwar Änderungen im Verhalten bewirkt, aber hinsichtlich des Terminal-too-wide-Problems keinerlei Verbesserung erzielt.

Zeilenumbruch und Flackern

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 hat einige Probleme bei der Darstellung hinsichtlich Flackern. Dies betrifft sowohl xterm wie selbst die Konsole. Offenbar wird häufig viel zu viel gelöscht und neu ausgegeben. Möglicherweise hilft die Einstellung set noflash in ~/.exrc, das Problem zu beheben.

Siehe auch

Weblinks

Todo

  • Der Ganze Abschnitt Bemerkungen Enhält fast ausschließlich Vermutungen. Jemand sollte dies überprüfen, und die Vermutungen in Aussagen umwandeln.