Linux in vi: ex-command hinzufügen

Linux Betriebssystem

brgs

Member
Registriert
25 Sep. 2011
Beiträge
96
Hi,

ich stehe hier wie der Ochse vor dem neuen Tor. Gibt es eine Möglichkeit
in vi ein weiteres ex-Kommando zu definieren? Also so grundsätzlich
hätte ich gerne:

:map :neu :r !date

nur daß das eben nicht geht.
 
Das funktioniert leider nur bei vim.
 
Du hast nicht erwähnt, welche vi-Version du verwendest. Ich vermute mal, es handelt sich um nvi:

In deiner .exrc trägst du ein:
Code:
map neu :r !date^[j

Wichtig: das ^[ nicht einfach kopieren, das ist ein Steuerzeichen: Eingabe per Ctrl+v Ctrl+[

Wenn du jetzt im vi bist, und 'neu' tippst, wird automatisch an der Cursorposition das Datum eingefügt. Ganz so, als hättest du :r !date <return> eingegeben.

Eine exrc mit weiteren Beispielen findest du hier:
 
Das "funktioniert nicht" habe ich leider missverständlich formuliert.
Map fügt ein vi-Kommando :neu hinzu, ich brauche aber ein
ex-kommando, sonst muß ich innerhalb von $ZEIT nach dem
Doppelpunkt den Rest getippt haben.

Auf eine spezielle vi-Version möchte ich mich nicht beschränken,
ich kann mich immer noch an die Schmerzen erinnern, als ich
vor vielen Jahren vim entsorgt habe und dann gleich meine
halbe exrc wegwerfen mußte.

Wahrscheinlich ist die Lösung ganz einfach die: Es geht nicht.
Zumindest in nvi, und damit auch wahrscheinlich im originalen
ist ex_cmd ein Array fester Größe. Und den Editor patchen
ist vermutlich auch keine so gute Idee...
 
Ah, dann habe ich dich fehlinterpretiert.

Gerade mal geschaut, ich kann mir die in der .exrc definierten mappings im ex-Modus anschauen mit :map. Aber ausführen lassen die sich nicht. Egal welche Kombination ich probiere, um der ex-Syntax gerecht zu werden.

Wenn ich mir den Hilfetext mit :exusage anschaue, steht zwar folgendes
map: map input or commands to one or more keys
Aber laut manual ist der map-Befehl 'vi only'. :unsure:

Meine Version ist übrigens diese:
:ve
Version 1.79 (10/23/96) The CSRG, University of California, Berkeley.
 
Gerade mal geschaut, ich kann mir die in der .exrc definierten mappings im ex-Modus anschauen mit :map. Aber ausführen lassen die sich nicht. Egal welche Kombination ich probiere, um der ex-Syntax gerecht zu werden.

Ich nehme an, daß Du da statt Escape Enter eingeben mußt.

Meine Version ist übrigens diese:
Den benutze ich auch meistens, danach ist nicht mehr viel passiert, glaube ich.
 
  • ok1.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen
Zurück
Oben