직렬 터미널용 코드를 작성 중이고 커서 이동, 화면 지우기 등을 위한 ANSI 이스케이프 코드를 구현하고 있는데, 코드가 없는 것 같아서 어떤 코드를 사용해야 할지 어떻게 알 수 있는지 궁금합니다. 코드의 명확한 중단 지점.
나는 그것을 사용하고 있다https://www2.ccs.neu.edu/research/gpc/VonaUtils/vona/terminal/vtansi.htm참조
예를 들어, 코드를 받으면 문자를 읽기 시작하지만 값 75 = 'K'를 얻으면 ESC[K
= 줄 끝을 지우거나 코드 수로 75를 ESC[{COUNT=75}C
사용할 수 있습니다. 커서 75열이 정확합니다. 내가 받은 코드가 A가 인쇄된 줄을 지우는 것이라면 어떻게 되나요? 내가 아는 한, 해당 코드와 커서 오른쪽의 열 75는 정확히 동일한 시퀀스를 받게 됩니다.
나는 아마도 분명한 것을 놓치고 있을 것입니다. 그러나 누구든지 나에게 힌트를 줄 수 있습니까? 감사해요
답변1
"ANSI"의 경우(실제로는ECMA-48
), 제어 시퀀스를 시작하고 그룹을 결정하는 문자입니다.결정적인수치. 거의 초반에 녹음됐어ECMA-48
(섹션 5.4용어를 이해하려면 ASCII 다이어그램이 필요할 수 있지만 특히 관련이 있습니다.
이것범위 75제어 시퀀스의 문자는 7
5
값이 발생하는 문자가 아닌 입니다.75. 둘 사이에는 혼란이 없습니다.
인용한 링크는 표준에 익숙하지 않은 사람이 작성한 문서에 대한 것입니다. 이것은 ncurses FAQ에 언급되어 있습니다.VT100을 사용하여 색상을 얻는 방법은 무엇입니까?.