2016-03-29 8 views
0

Я пытаюсь устранить некоторые проблемы с терминалом. Я подключаюсь из своего ноутбука Windows к серверу Linux, используя оболочку Git Bash. Экран, похоже, не освежает должным образом (очистка не очищает экран, после выхода на экран vim и man остается на экране и т. Д.). Я смотрю на stty настройки и сравниваю их с другим сервером linux, где у меня нет этих проблем. Одна из вещей, которые я вижу на моем рабочем сервере, - eol = M-^?; eol2 = M-^?;. Может кто-нибудь объяснить мне нотацию? Как я могу реплицировать этот параметр на другом сервере?Что делает M- ^? в среднем значении?

+0

дикое предположение ... конец линии производит контроль M ?? !! – SriniV

+0

Разве это не будет выглядеть как '^ M'? Например, 'intr =^C;' – Archa5238

ответ

1

stty ограничен однобайтовыми символами.

bash использует соглашение об именах (как и несколько других программ) префикса M- для обозначения мета-флага. Обычно ^? является ASCII DEL (127 десятичных знаков, 0x7f hex), поэтому я ожидал бы, что M-^? будет 255 (0xff).

В зависимости от реализации (см обсуждение _POSIX_VDISABLE) stty может показать, что значение как undef:

$ stty -a 
speed 38400 baud; rows 40; columns 80; line = 0; 
intr = ^C; quit = ^\; erase = ^H; kill = ^U; eof = ^D; eol = <undef>; 
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; 
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0; 
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts 
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff 
-iuclc -ixany -imaxbel -iutf8 
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt 
echoctl echoke 

Относно мета, Ncurses имеет некоторую документацию в terminfo(5):

Если терминал имеет «мета-ключ», который действует как переключатель , установив 8-й бит любой переданный символ, этот факт может быть обозначен км. В противном случае программное обеспечение будет считать, что бит 8-й является паритетом и обычно будет очищен . Если существуют строки для включения этого «метамода» на и выкл., Они могут быть указаны как smm и .

и с функцией keyname, она возвращает значение в той форме:

Значения выше 128 являются либо мета-символы (если экран не был инициализирован, или если meta была вызвана с параметр TRUE), показанные в нотации или отображаются как сами по себе. В последнем случае данные могут не печататься; это следует из спецификации X/Open.

Дальнейшее чтение: