GNU 화면에 적합한 "명령 문자"를 검색하는 방법은 무엇입니까?

GNU 화면에 적합한 "명령 문자"를 검색하는 방법은 무엇입니까?

이미 사용하고 있는 일부 키 조합과 충돌하지 않는 GNU 화면의 "명령 문자"를 찾는 데 문제가 있습니다.

Emacs(및 org-mode, 일반 쉘 등)를 통해 Ctrl+로 구성된 거의 모든 명령 문자는[A-Z] 제한 구역이에요.

간단한게 있으면 좋겠다고 생각했는데일관성 있고, ASCII 범위 27~31의 문자를 입력하면 작동할 수 있습니다.

위의 기준을 충족하는 문자 중 하나를 입력하는 방법을 찾는 데 사용할 수 있는 도구가 있습니까?

("일관적"이라는 말은 "모든 키보드" 또는 적어도 "모든 미국 키보드"에서 동일한 방식으로 입력할 수 있음을 의미합니다.)

답변1

Screen이 이스케이프 문자로 인식하는 모든 기능 키를 사용할 수 있습니다. 이스케이프 문자(보다 정확하게는 이스케이프 문자)를 설정합니다.바이트\377)를 UTF-8이 절대 사용하지 않는 것과 같이 입력하지 않는 것으로 변환합니다 . command예를 들어, Esc 키로 사용하려는 키를 F12( F2termcap talk에서 - 화면 매뉴얼의 "번역 입력" 섹션 참조):

escape \377\377
bindkey -k F2 command

기호 이름이 알려진 화면 키에만 국한되지 않습니다. 키나 키 코드를 명령 키(터미널에서 이스케이프 시퀀스를 보내야 함)로 설정하려면 Ctrl쉘 프롬프트에서 +를 누른 다음 키를 눌러 보내는 이스케이프 시퀀스를 알아보세요. V이로 인해 이스케이프 시퀀스가 ​​쉘에서 이스케이프 시퀀스로 인식되지 않고 문자 그대로 삽입됩니다. 예 F12를 들어 ,​​​CtrlVF12^[[24~^[

bindkey ^[[24~ command

Ctrl+를 \화면 이스케이프 키( escape ^\\\) 로 사용하고 Ctrl+ 에 문자를 \ \삽입 하도록 합니다 ^\. ^\제어 문자를 사용하는 프로그램은 거의 없습니다 . Emacs에서는 을 호출 toggle-input-method하지만 저는 사용하지 않습니다. 여행이 바뀔 수 있습니다. 조리된 터미널에서는 거의 유용하지 않은 SIGQUIT를 보냅니다(필요한 경우 Ctrl+ Z뒤에 kill명령이 오는 경우도 일반적으로 작동합니다. 기본적으로 코어 덤프를 비활성화합니다). Ctrl+ 일부 필수 키보드 레이아웃에서는 입력이 어려울 수 있지만 \US 레이아웃에서는 쉽습니다. 또한 +를 누르면 문자를 보내도록 터미널 에뮬레이터를 구성하여 왼손으로도 문자를 입력할 수 있습니다.\AltGr^\Ctrl`

Ctrl+ ](Emacs:) abort-recursive-editCtrl+ ^(Emacs: 정의되지 않았지만 미국 키보드 및 기타 여러 레이아웃에서 입력하기 불편함)는 Emacs 사용자에게 가능한 다른 후보입니다.


그런데 Emacs와 일부 셸을 실행하는 데만 Screen을 사용한다면 Screen이 필요하지 않습니다. Emacs도 같은 목적으로 사용될 수 있습니다. 단일 Emacs 프로세스를 계속 실행하고 emacsclient모든 터미널에서 이 Emacs 프로세스에 대한 창을 열 수 있도록 합니다. 터미널이 사라지면 emacsclient다시 실행하여 동일한 Emacs 인스턴스에 연결할 수 있습니다. emacsclient동일한 Emacs 인스턴스에 여러 인스턴스를 연결할 수 있으며 , 다른 로컬 및 원격 연결을 통해 표시할 수도 있습니다.

인터페이스 없이 Emacs를 시작하려면 를 실행하십시오 emacs --daemon. 그런 다음 실행 emacsclient -c하여 기존 Emacs 인스턴스에 대한 창을 엽니다(또는 emacsclient -c -nw텍스트 모드 창을 강제로 엽니다). Emacs를 시작하고(아직 시작하지 않은 경우) 기존 Emacs 인스턴스(있는 경우)에 연결하려면 를 실행하십시오 emacsclient -a '' -c.

쉘을 실행하려면 Emacs에서 M-x shell또는 M-x term등을 사용할 수 있습니다. Emacs는 Screen이 할 수 있는 거의 모든 것을 할 수 있습니다.

답변2

모든 제어 문자가 내 응용 프로그램에서 이미 사용되었기 때문에 화면에 Meta-a를 사용하고 있습니다. 이를 위해 xterms를 8비트 모드(UTF-8 인코딩 비활성화, LANG=C)로 설정한 다음

escape "<E1>a"

my 에서 ~/.screenrc바이트 <E1>16진수는 0xe1입니다(즉, 소문자, 이스케이프를 위해 설정된 상위 비트, a메타-a 전송을 위한 일반).a

xterm에서 UTF-8에 관심이 있는 경우에는 좋지 않지만 순수 8비트를 허용하는 경우에는 잘 작동합니다.

답변3

저는 개인적으로 다음 두 가지 이유로 Ctrl-J를 사용하여 GNU 화면을 표시합니다.

  • 일반적으로 리턴 키에 바인딩되어 있으므로 덜 일반적으로 사용됩니다.
  • 터치 타이피스트라면 손가락이 일반적으로 여기에 위치합니다.

    탈출^Jj

관련 정보