Então, basicamente, meus End, Pageup/ Pagedowne Deletechaves não estão funcionando no ksh93. A propósito, estou executando o FreeBSD.
Minhas teclas de seta estão funcionando, assim como minha tecla inicial.
Essas chaves funcionam quando coloco isso no meu.kshrc
set -o emacs
Eu tentei fazerESSE, colocando isso no meu .kshrc
. Para fazer a Endchave funcionar.
alias __Y=`echo "\005"` # end = ^e = end of line
Abri o vim, pressionei Ctrlve digitei 005. E eles ^E
apareceram. Ainda assim, nada funcionou.
Alguém sabe como fazer essas chaves funcionarem?
Além disso, sempre que pressiono essas teclas, ele imprime um arquivo ~
. Também sei que poderia usar Ctrldou CtrlaNÃO quero usá-los.
Responder1
Essa respostaé específico para certos emuladores de terminal, não acho que possa ser generalizado fora do Solaris.
Em ksh, pressione Ctrl+ Ve depois End. Isso inserirá um caractere de escape literal seguido pelo restante da sequência de escape que a chave envia. Por exemplo, você pode ver ^[[4~
(o ^[
no início é na verdade um caractere de escape, não ^
seguido por [
). Faça o mesmo para as outras teclas do cursor que deseja reconfigurar.
No seu .kshrc
, defina umArmadilha KEYBDpara traduzir as sequências de escape das teclas de função nas ligações dos comandos que você deseja que a tecla invoque. Por exemplo (talvez seja necessário ajustar as sequências de escape — observe que dentro de $'…',
\e` significa um caractere de escape):
keybd_trap () {
case ${.sh.edchar} in
$'\e[1~') .sh.edchar=$'\001';; # Home = beginning-of-line
$'\e[4~') .sh.edchar=$'\005';; # End = end-of-line
$'\e[5~') .sh.edchar=$'\e>';; # PgUp = history-previous
$'\e[6~') .sh.edchar=$'\e<';; # PgDn = history-next
$'\e[3~') .sh.edchar=$'\004';; # Delete = delete-char
esac
}
trap keybd_trap KEYBD
set -o emacs