Ubuntu의 GNU nano 편집기에서 캐럿 + 문자 옵션을 처리하는 방법

Ubuntu의 GNU nano 편집기에서 캐럿 + 문자 옵션을 처리하는 방법

매우 간단한 질문입니다. 첨부된 사진을 보면 대부분의 옵션은 ^입력과 다른 문자를 동시에 요구하는 것으로 보입니다. 문제는 입력하려면 를 ^눌러야 한다는 것입니다. 예를 들어 . 두 번째 문자를 누르기 전에 Shift + 6실제로 입력하고 있는 시점입니다 .^^T

여기에 이미지 설명을 입력하세요.

답변1

^O표현이다특징Ctrl, 일반적으로 + o(키 아님)를 누를 때 터미널에서 전송됩니다 . 터미널에서 애플리케이션은 키보드 이벤트를 처리하는 대신 키나 키 조합을 누를 때 터미널이 전송하는 바이트인 /dev/tty*장치 파일에서 바이트 스트림을 읽어 입력을 받습니다 ./dev/pt*

ASCII 기반 시스템에서 사용되는 ASCII 기반 터미널(현재 사양, 대부분의 시스템/터미널은 미국 영어가 아닌 문자를 지원하도록 확장하지만)을 사용하여 를 입력하면 a터미널 z은 97~122(또는 0x60 | letter) 바이트를 전송합니다. ASCII의 ato 문자 ; z키를 누른 상태에서 동일한 작업을 수행하면 ShiftASCII( )로 바이트 65~90이 전송됩니다 0x40 | letter.AZ

사용되면 Ctrl바이트 1~26(1)을 보냅니다 0x00 | letter.

이제 바이트 0~31은제어문자에는 글리프나 글꼴 표현이 없습니다. 이름이 있습니다( 참조 man ascii). 9( Ctrl+ 또는 로 i전송 )는 탭이고, 10은 줄바꿈( Ctrl+ 로 전송 j), 13은 캐리지 리턴( Ctrl+ m또는 으로 전송 Enter되지만 터미널 드라이버는 종종 이를 개행 기호로 변환한다는 점에 유의하세요).

Ctrl+에 전송된 문자는 o다음과 같습니다.이사 오다제어 문자. 대신 nano사용 한다면 대부분의 사람들은 해당 제어 문자를 보내는 방법을 모를 것입니다.<shift-in> Write Out^O Write Out

^A... ^Z( ^[ ^\ ^] ^^ ^_27..31의 경우, ^@0의 경우, ^?127^의 경우)는 때때로 호출됩니다.모자 기호이러한 문자의 일반적인 시각적 표현입니다. cat -vt터미널 라인 규칙에 의해 또는 그 이후에도 사용된다는 것을 알 수 있습니다 stty echoctl.

다른 기호에는 \CA또는 이 포함됩니다 \C-A. 일부 제어 문자 \n에는 ^J/newline, /BEL \a과 같은 C 문자열 표현이 있습니다 .^G

하지만 ^A/ \C-A키보드를 사용하여 생성하는 방법에 대한 지침이 더 도움이 됩니다.


1은 @ASCII에서는 0x40이고 ?0x3f에서는 0x40이므로 문자는 , 즉 두 번째 최상위 비트가 반전된 X의 바이트 값 ^X으로 얻을 수 있습니다 . 또한 ASCII 전용 터미널은 + 및 + 를 보내는 데 사용하는 0x80 ~ 0x9f 및 0x40 ^ X0xa0 ~ 0xff 바이트의 M-^X합계 표현을 찾을 수 있습니다. 하지만 요즘에는 ESC( ) 다음에 / 를 보내는 것을 선호합니다 . 왜냐하면 비트 8이 non 대신 사용되기 때문입니다. -ASCII 문자, 바이트 0xd5의 의미보다는 요즘 기대할 것으로 예상했는데 , 바이트 0xd5는 아르메니아 문자 U+0540 ~ U+057F 또는 ISO8859 - 1의 UTF-8 인코딩의 첫 번째 바이트로도 발견되기 때문입니다. (일명 라틴어 1)M-XMetaCtrlXMetaX^[^XXnano^[UM-U UndoÕ

관련 정보