2016-03-18 7 views
0

Ist es möglich, einen Tastendruck mit der zle-Funktion zu simulieren?Senden eines simulierten Tastendrucks vom ZLE-Skript an das Terminal

test(){ 
BUFFER="sudo $BUFFER" 
CURSOR=$#BUFFER 
<??send right-arrow keypress??> 
} 
zle -N test 
bindkey "^f" test 

ich glaube, es wäre eine Lösung für meinen visuellen IRK sein, wo, wenn ich mit Puffer und Cursor-Position zu spielen, habe ich Überbleibsel Cursor auf der ursprünglichen Position des Cursors. Ich glaube, wenn ich mit der rechten Pfeiltastendruck an das Endgerät innerhalb der Testfunktion zu senden wäre in der Lage, dass es entfernen wäre es

enter image description here

+0

Es scheint, Für mich ist das ein Fehler in Ihrem Terminalemulator. Ich habe gerade Ihren Code mit den 'zsh'-Versionen 5.0.6 und 5.2 auf drei verschiedenen Terminal-Emulatoren (' urxvt' 9.22, 'xterm' 324 und' termite' v11) sowohl mit als auch ohne 'zsh-Syntax-Highlighting' getestet scheinen zu benutzen). Keine Konstellation führte zu dem Artefakt, das dein Screenshot zeigt. Welchen Terminalemulator verwenden Sie? Ist Ihre 'zsh-Syntax-Hervorhebung' auf dem neuesten Stand? Bleibt das Problem bestehen, wenn Sie es in einer einfachen zsh-Sitzung versuchen? Das ist ohne Konfigurationsdateien; Sie können eine solche Sitzung mit 'zsh -f' beginnen. – Adaephon

+0

@Adaephon ist eher ein Fehler der Frameworks, wie ich durch Tests festgestellt habe .. Ich habe es auch in mehreren Testinseln getestet, es ist in allen getesteten passiert. Aber der Wechsel zu oh-my-zsh hat es repariert, aber sowohl prezto als auch zsh-zim hatten es. Ich verwende Standardeinstellungen für alle. – DoTheEvo

Antwort

0

dies mit xdotool Paket funktioniert

sudo_(){ 
    BUFFER="sudo $BUFFER" 
    CURSOR=$#BUFFER 
    xdotool key 0xff53 
} 
zle -N sudo_ 
bindkey "^f" sudo_ 
Verwandte Themen