Warum verhalten sich "bind" und ".inputrc" anders?

1270

Ich versuche, das Richtige zu tun und meine Schlüsselbindungen zu verwenden ~/.inputrc.

Es stellt sich jedoch heraus, dass ich mich ändern muss

bind '"\e\C-j":"\e[1~quiet \e[4~\n"' 

in

"\e\C-j": "\eOHquiet \eOF\n" 

Nun sind \eOH(nav-block-pos1 gebunden an beginning-of-line) und \eOF(nav-block-end gebunden an end-of-line) selbst Bindungen in meiner Konfiguration, auf die ich mich möglicherweise nicht immer verlassen kann.

Die Hauptfrage ist also, warum das Binden an num-block-pos1 ( \e[1~) und num-block-end ( \e[4~) funktioniert, bindaber nicht in meinem ~/.inputrc.


Bearbeiten:

Das Ganze wird noch komplizierter, jetzt, da mir klar wurde, dass \e\C-jnur Gnome Terminial funktioniert (oder wahrscheinlich auch Xterm, wer weiß ...).

Für meinen TTY muss es sein

"\e\C-m": "\e[1~_quiet \e[4~\n" 

Ist es also so, dass verschiedene VTs unterschiedliche Implementierungen dafür haben, wie Schlüssel interpretiert werden sollen oder was?

13
Dies ist im Handbuch _GNU Readline User Interface_, Abschnitt 1.3 dokumentiert. Die `keymap`-Option wird verwendet, um festzulegen, welche Art von Schlüsseldarstellung in Schlüsselbindungsdefinitionen verwendet wird. Relevante Informationen: http://superuser.com/questions/286781/readline-difference-between-vi-vi-move-vi-command-vi-insert-keymaps http://cnswww.cns.cwru.edu/php/ chet / readline / rluserman.html # SEC9 https://wiki.archlinux.org/index.php/Readline Ярослав Рахматуллин vor 11 Jahren 0
@ ЯрославРахматуллин Wie genau ist dies für den Unterschied im Verhalten zwischen "bind" und "inputrc" für die eigentliche Bindung relevant. Sollten sie nicht die gleichen Einstellungen verwenden? vor 11 Jahren 0

1 Antwort auf die Frage

2
chepner

Your terminal emulator can operate in one of two modes: application mode, and cursor mode (see http://homes.mpimf-heidelberg.mpg.de/%7Erohm/computing/mpimf/notes/terminal.html). It depends on what mode your particular application runs in that determines what escape sequence you need to send.