だから基本的に私の End、 Pageup/Pagedown、および Delete キーがksh93で機能していません。ちなみに私はFreeBSDを実行しています。
矢印キーが機能しているので、ホームキーも機能しています。
これらのキーは、これを.kshrc
に入れると機能します
set -o emacs
これを.kshrc
に入れて、 [〜#〜] this [〜#〜] を実行してみました。作るために End キーワーク。
alias __Y=`echo "\005"` # end = ^e = end of line
私はvimを開いて押しました Ctrlv、および入力 5。そして、^E
が現れました。それでも、何も機能しませんでした。
とにかくそれらの鍵を機能させる方法を知っている人はいますか?
また、これらのキーを押すと、~
が出力されます。私も使用できることを知っています Ctrld、または Ctrla、私はこれらを使いたくありません。
その答え は特定のターミナルエミュレータに固有であり、Solarisの外部で一般化できるとは思いません。
Kshで、を押します Ctrl+V その後 End。これにより、リテラルのエスケープ文字が挿入され、その後にキーが送信する残りのエスケープシーケンスが挿入されます。たとえば、^[[4~
が表示される場合があります(最初の^[
は実際にはエスケープ文字であり、^
の後に[
が続きます)。再構成する他のカーソルキーについても同じようにします。
.kshrc
で、 KEYBD trap を設定して、ファンクションキーからのエスケープシーケンスを、キーで呼び出すコマンドのバインディングに変換します。たとえば(エスケープシーケンスを調整する必要がある場合があります。$'…',
\e`内はエスケープ文字を意味することに注意してください):
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