따라서 기본적으로 내 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
그 대답특정 터미널 에뮬레이터에 한정해서, 솔라리스 외부에서는 일반화할 수 없을 것 같습니다.
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