2015-03-11 3 views
0

Я не понимаю, почему иногда последовательность CUB разрешается продолжать через предыдущую строку, а иногда и нет. документация говорит, что дело не только в реальной ситуации ... http://vt100.net/docs/vt100-ug/chapter3.html#CUBпонимание CUB ansi escape sequence

для примера у меня есть экран, заполненный пробелами на 80 столбцах и 24 строках.

я нахожусь в положении линии 3, столбец 4, который может быть установлен с управляющей последовательностью: \ 033 [3; 4H

я переместить курсор на левых 10 раз с последовательностью \ 033 [10D которым положат я в позиции: строка 2 столбец 76

поэтому это сработало? !! и иногда это не

, пожалуйста, спасите меня! :)

я могу уменьшить ситуацию, но это, где я видел его:

Я пишу В.Т. * эмулятор и everithing работает отлично. я могу запустить emacs/vim и другие, но затем я запустил vttest в putty с помощью команды «script» для записи всех типизированных символов и последовательностей. как так:

# script test 
Script started, file is test 
# vttest 
... 

, когда я сделать «тест кошки» в замазку для Exemple, он переигрывает Everythings, как я сделал. когда я играю с моим эмулятором, я могу разобрать и проанализировать каждую escape-последовательность, которую они предоставляют, но отображение не то же самое.

ответ

0

Формулировка на VT100.net достаточно ясно:

If an attempt is made to move the cursor to the left of the left margin, 
the cursor stops at the left margin. 

В recent discussion, кто-то отметил, что PuTTY почитает (не-VT100) способность bw, который квотирование из terminfo руководства Ncurses':

auto_left_margin    bw   bw  cub1 wraps from col‐ 
                 umn 0 to last column 

Поведение PuTTY для упаковки на полях отличается от VT100, как вы видели. ncurses имеет терминальную запись с именем «putty», просто потому, что PuTTY отличается от всех остальных терминалов достаточным, чтобы в противном случае использовать неприятность.

+0

Благодарим вас за ответ. что объясняет вещи. другая ситуация может появиться при записи в последний столбец: если вы находитесь в столбце 80, и вы пишете печатаемый charater, курсор должен быть в новой строке и, написав другой символ, этот будет на следующей строке (классический). Но если вы выполните последовательность куба, она будет перемещена влево на первой строке, не опускаясь вниз. –

Смежные вопросы