PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : STRG-J als ESC-Sequenz anzeigen / auswerten ?



JeWe
08.11.07, 13:47
Hallo,

folgendes Problem: Wir haben verschiedene Unix-Server im Einsatz, auf denen eine eigene Anwendung läuft (zeichenbasiert, nicht grafisch). Diese Anwendung nutzt zum Springen über mehrere Felder u.a. die Tastenkombination <Ctrl>-<J>. Alles wunderbar....

Jetzt migrieren wir mehr und mehr Systeme auf Red Hat Enterprise 3.0 / 4.0. Dort hat diese Tastenkombination aber per Definition schon eine festgelegte Bedeutung, sprich Cursorsprung ans Zeilenende.

Zum Nachstellen: Ich kann mir auf Shell-Ebene eine ESC-Sequenz von Tastenkombinationen / Funktionstasten anzeigen lassen, indem ich erst <Ctrl>-<V> drücke und dann die gewünschte Kombination. In diesem Beispiel: <Ctrl>-<V> und dann <Ctrl>-<J>. Auf anderen Unixen bringt dies, da nicht belegt und ausgewertet, die Ausgabe "^J". In Linux springt der Cursor dann in die nächste Zeile, eben das Zeilenende.

Kann ich das irgendwo ändern ?

JeWe
08.11.07, 14:23
OK... hab noch was rausgefunden....

So wie ich das sehe, müsste ich den stty-Parameter inlcr verdrehen. Dieser ist per Default mit der Kombination <Ctrl>-<J> versehen. Ich habe mal versucht, mit dem Befehl

stty inlcr <Ctrl>-<I>

die Kombination zu verdrehen. Das klappt allerdings nicht.

Hat jemand eine Idee ?

Der Gestreifte
08.11.07, 14:57
Hat jemand eine Idee ?
Du könntest versuchen, die Belegung von CTRL-J mit "Line-Feed" in der ~/.inputrc durch "nichts" zu ersetzen:
"\C-j":Anschließend neu einloggen.

JeWe
08.11.07, 16:37
Hm.... Habe das mal in der Datei /etc/inputrc eingefügt, die gesamte Datei sieht jetzt so aus:

# do not bell on tab-completion
#set bell-style none

set meta-flag on
set input-meta on
set convert-meta off
set output-meta on

# Completed names which are symbolic links to
# directories have a slash appended.
set mark-symlinked-directories on

$if mode=emacs

# for linux console and RH/Debian xterm
"\e[1~": beginning-of-line
"\e[4~": end-of-line
"\e[5~": beginning-of-history
"\e[6~": end-of-history
"\e[3~": delete-char
"\e[2~": quoted-insert
"\e[5C": forward-word
"\e[5D": backward-word
"\C-j":

# for rxvt
"\e[8~": end-of-line

# for non RH/Debian xterm, can't hurt for RH/DEbian xterm
"\eOH": beginning-of-line
"\eOF": end-of-line

# for freebsd console
"\e[H": beginning-of-line
"\e[F": end-of-line
$endif


Klappt aber leider nicht... Oder muss das an eine andere Stelle ? Eine benutzerspezifische Datei inputrc habe ich nicht gefunden.