したがって、デフォルトでは、私End、Pageup/ Pagedown、Deleteキーはksh93では機能しません。ところで、私はFreeBSDを実行しています。
矢印キーが機能し、ホームキーも機能します。
コンピュータに入れたときにキーが機能しました。.kshrc
set -o emacs
頑張ったこれ、私の.kshrc
。End
alias __Y=`echo "\005"` # end = ^e = end of line
vimを開き、を押してCtrlvを入力します005。それから^E
現れました。しかし、まだ何も動作しませんでした。
このキーを操作する方法を知っている人はいますか?
また、このキーを押すたびに、またはを~
使用できることも知っています。このキーを使用したくありません。CtrldCtrla
答え1
その答え特定のターミナルエミュレータに限って、Solaris以外では一般化できないようです。
kshでは、Ctrl+を押してVからを押しますEnd。これは、リテラルエスケープ文字を挿入し、その後にキーを押して送信されたエスケープシーケンスの残りの部分が挿入されます。たとえば、先頭のtheは実際にエスケープ文字で、^[[4~
次はそうではないことがわかります。再構成する他のカーソルキーに対しても同じことを行います。^[
^
[
あなたのもの.kshrc
からキーボードトラップファンクションキーのエスケープシーケンスを、キーが呼び出すコマンドへのバインディングに変換します。たとえば、(エスケープシーケンスを調整する必要があるかもしれません。$'…',
内部の\ 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