Какая часть Gnome Terminal обрабатывает Ctrl-C?
Я недавно возился с Gnome Terminal, пытаясь настроить, что происходит, когда я нажимаю Ctrl-C (я хотел бы, чтобы он копировал, когда у меня выделен текст, и отправлял SIGINT в противном случае, но это не часть вопроса), но Я не могу понять, где в стеке распознается Ctrl-C (или где Ctrl-Shift-C распознается, если Ctrl-C отскок, в этом отношении).
Итак, какая библиотека или программа отвечает за обработку этой комбинации клавиш?
0 ответов
То, о чем вы спрашиваете, определяется двумя факторами;
- ваша (выбранная) оболочка
- настройки в терминале (Gnome)
Чтобы узнать, что в данный момент назначено CTRL+C
в терминале гномов. В открытом сеансе выберите " Правка" > " Настройки" > " Ярлыки".
Что касается вашей оболочки входа в систему.; CTRL+C
(^C
) почти всегда назначается TERM
или же HUP
(повесить трубку).
Для CtrlC эмулятор терминала просто отправляет один байт 0x03.
CtrlA - CtrlZ отправляет байты 0x01–0x1A (десятичные 1–26) соответственно; более того, пространствоCtrl равно 0x00, Ctrl[ равно 0x1B, Ctrl\ равно 0x1C, Ctrl] равно 0x1D, Ctrl^ (или часто просто Ctrl6 без Shift, принимая раскладку клавиатуры в США) равно 0x1E, а Ctrl_ (или часто Ctrl- без Shift) составляет 0x1F.
Эти байты интерпретируются и обрабатываются ядром специально в соответствии с дисциплиной терминальной линии. Проверьте вывод stty -a
это, вероятно, содержит intr = ^C
это означает, что CtrlC (байт 0x03) является символом прерывания.
Смотрите справочные страницы stty
, termios
, ioctl
, ioctl_tty
и соответствующие совпадения веб-поиска (в том числе для термина "дисциплина линии") для более подробной информации.