2017-08-19 10 views
3

Wenn ich einen Text und dann Strg + R, geben Sie die teilweise eingegebene Text erscheint in der Rückwärtssuche prompt:Wie kann ich teilweise eingegebenen Text von bash lesen?

> hello[Ctrl+R] 
(reverse-i-search)`': hello 

Ich suche einen Ersatz für Rückwärtssuche zu schreiben. Die Verknüpfung kann neu gebunden ein anderes Programm laufen zu lassen, zum Beispiel:

bind -x '"\C-R":"echo test"' 
> hello[Ctrl+R] 
test 
> hello 

Wie kann ich den teilweise eingegeben Befehl/Text zugreifen hello von einem Programm, das ich Strg + R zu binden?

Tab Completion setzt COMP_WORDS, COMP_LINE usw. Ich bin auf der Suche nach etwas Ähnlichem, idealerweise direkt zugänglich durch eine C/C++ - ausführbare Datei.

Antwort

2

gefunden, was ich nach hier: https://unix.stackexchange.com/a/82716/54030

Die Umgebungsvariable READLINE_LINE gelesen werden kann und sogar geändert:

bind -x '"\C-R":"echo cmd=$READLINE_LINE"' 
> hello[Ctrl+R] 
cmd=hello 

bind -x '"\C-R":"READLINE_LINE=replaced; READLINE_POINT=8"' 
> hello[Ctrl+R] 
... becomes 
> replaced 

READLINE_POINT verwendet wird, um die Cursorposition zu setzen.

Verwandte Themen