При чем тут М-^? в стты вывод имеется ввиду?
Я пытаюсь устранить некоторые проблемы с терминалом, которые я подключаю со своего ноутбука Windows к серверу Linux с помощью оболочки Git Bash. Похоже, что экран не обновляется должным образом (очистка не приводит к очистке экрана, после выхода из vim и вывода на экран человека и т. Д.). Я смотрю на настройки stty и сравниваю их с другим сервером Linux, где у меня нет этих проблем. Одна из вещей, которые я вижу на своем рабочем сервере, это eol = M-^?; eol2 = M-^?;
, Может кто-нибудь объяснить мне обозначение? Как я могу скопировать этот параметр на другом сервере?
1 ответ
stty
ограничено однобайтовыми символами.
bash
использует соглашение об именах (как и несколько других программ) M-
префикс для обозначения мета-флага. Обычно, ^?
ASCII DEL (127 десятичное, 0x7f шестнадцатеричное), поэтому я ожидаю 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)
:
Если терминал имеет "мета-ключ", который действует как клавиша Shift, устанавливая 8-й бит любого передаваемого символа, этот факт можно указать с помощью km. В противном случае программное обеспечение будет предполагать, что 8-й бит равен четности, и обычно он очищается. Если существуют строки для включения и выключения этого "мета-режима", они могут быть заданы как
smm
а такжеrmm
,
и с keyname
Функция возвращает значения в таком виде:
Значения выше 128 являются либо метасимволами (если экран не был инициализирован, либо если мета вызвана с параметром TRUE), показанными в нотации MX, либо отображаются как сами по себе. В последнем случае значения не могут быть напечатаны; это соответствует спецификации X/Open.
Дальнейшее чтение:
- Alt-ключи не работают в Bash
- 9.13 Почему мой мета-ключ не работает в окне xterm? (FAQ по GNU Emacs)
- что если значение _POSIX_VDISABLE равно -1?
- 17.4.9 Специальные символы (Библиотека GNU C)