크로스 플랫폼 키 바인딩 명령을 만드는 방법은 무엇입니까?

크로스 플랫폼 키 바인딩 명령을 만드는 방법은 무엇입니까?

내가 사용하는 모든 터미널에서 동일한 키보드 단축키를 사용하고 싶습니다. 동일한 *nix가 없고 터미널이 매우 다를 수 있으므로 하나의 *nix 터미널(적어도 표준 Ubuntu 12.04 설치에서 지원됨)에서 키보드 단축키를 가져오는 상당히 이식 가능한 방법을 찾고 있습니다. 다른 터미널(Bash만 해당)

즉, 노력하고 있어요한 터미널에서 명령을 생성하여 다른 터미널에서 실행, 사용하려면두 번째 터미널에서도 동일한 키보드 단축키. 특히 Alt- Del(커서 오른쪽에 있는 단어 삭제) 및 Ctrl- Left(커서를 왼쪽으로 한 단어 이동)와 같은 작업을 수행하는 일부 호스트에서는 의도한 작업을 수행하는 대신 이스케이프 코드만 인쇄합니다.

.inputrc이는 또한 대상 호스트에 변경 사항이 있을 수 있음을 의미합니다 . 중요한 것은 할 수 있다는 것이다.

  1. 내 로컬 호스트에 어떤 키보드 단축키가 정의되어 있는지 알아보세요.
  2. 원격 호스트에 공통 단축키가 정의되어 있지 않은지 확인하세요.
  3. 바로가기 정의를 원격 호스트에 복사합니다.
  4. 원격 호스트에서 바로 가기가 예상대로 작동하는지 확인합니다.
  5. 바로 가기가 세 번째 호스트에서도 작동하는지 합리적으로 확인하십시오., 아마도 매우 오래된 버전의 Bash와 및 와 같은 표준 도구를 사용하고 있을 것 grep입니다 sed.

답변1

현재 솔루션다음과 같이:

bind -p | grep -ve '^$' -e '^#' -e 'self-insert$' | sed -e "s/\(.*\)/bind '\1'/" | tr -s '\n' ';'

그러면 다음과 같은 줄이 생성됩니다.

bind '"\C-g": abort';bind '"\C-x\C-g": abort';[...];bind '"\e\C-y": yank-nth-arg';bind '"\ey": yank-pop';

작동하는 것 같지만 휴대 가능한지는 확실하지 않습니다.

관련 정보