추가 읽기

추가 읽기

FreeBSD 터미널에서 Linux .bashrc 설정을 사용하려고 합니다. Linux에서는 set -o vi키 바인딩과 함께 bash를 사용합니다 Ctr+H(내 기록 파일의 편집기를 호출합니다). 가상 머신의 FreeBSD에서는(ssh를 통해 연결된 경우가 아님) 백스페이스 키를 누를 때마다 이 키 바인딩이 호출됩니다.

Linux 터미널에 나타나 백스페이스 키를 생성합니다 ^?( 와는 다름 ^H). FreeBSD에서 백스페이스로 생성된 키는 이며 ^H, 이는 내 키 바인딩을 트리거합니다. 내 키 바인딩이 두 터미널 모두에서 작동하도록 하는 방법이 있는지 ^H(즉, FreeBSD 터미널에서 ^H 대신 백스페이스로 ^?를 사용하도록 하는 방법), 아니면 다른 단축키 방식을 사용해야 하는지 궁금합니다.

나는 노력했다 stty -a. ... erase = ^?; erase2 = ^H ...시도했다고 합니다 stty erase2 ^?. stty -a예상대로 출력이 변경되었지만 백스페이스 키의 동작은 변경되지 않았으며 여전히 생성 중입니다 ^H.

답변1

stty이것과는 아무 상관이 없습니다. 이는 제어라인 규율. 선 규칙은 커널 가상 터미널에 대한 가상 와이어를 따라갈 때 문자에 반응합니다. 이 시점에서 입력은 실제 라인을 통해 보내는 실제 터미널처럼 문자가 됩니다.

커널 가상 터미널의 문자에 키 입력을 매핑하는 것이 바로 키맵입니다.

% sed -ne '2,4p;/014/p' /usr/share/vt/keymaps/uk.capsctrl.kbd
#                                                         alt
# scan                       cntrl          alt    alt   cntrl lock
# code  base   shift  cntrl  shift  alt    shift  cntrl  shift state
  014   bs     bs     del    del    bs     bs     del    del     O
%

14는 PC 모델 M 및 Windows 키보드의 ISO 9995-1 위치 A13 및 A14에 있는 백스페이스 키에 대한 PC/AT 키 코드입니다. 이 키맵에서 어떻게 매핑되는지 확인할 수 있습니다. 여기서 무엇을 바꿔야 할지 분명해야 합니다. ☺

kbdcontrol대상 커널의 가상 터미널 장치를 표준 입력으로 사용하여 키맵을 로드할 수 있습니다. 물론 파일 형식은 kbdmap(5)으로 문서화되어 있습니다. 실제로는 전적으로 SCO Unix에서 제공되며 이에 대한 문서를 찾을 수 있습니다.FreeBSD보다 낫습니다..

추가 읽기

  • 건반§7.SCO 유닉스 매뉴얼.

관련 정보