Да, есть много игроков, определяющих, как ваши ключи интерпретируются. Если это удаленная система, к которой вы подключаетесь, то PuTTY или любой другой эмулятор терминала, вероятно, является узким местом - то есть, если он отправляет одни и те же данные для контроля и управления, ничто из того, что вы делаете в нисходящем направлении, не сможет восстановить разницу. Это верно для каждого из игроков, но я знаю, что большинство других можно настраивать. Я не знаю, как настраивается ваш эмулятор терминала. Некоторые из них, даже если они способны видеть разницу между активностью и контролем, все равно отправляют те же данные в процессы, к которым они подключены.
Вы используете PuTTYTel в Windows? Затем кто-то другой должен помочь вам выяснить, как заставить PuTTYTel обнаруживать разницу между активацией и контролем, и отправлять разные данные для каждого. Я знаю только * nix.
То, какой ключ отправляется при возврате, при удалении и т.д., Определяется тем, какой TERM установлен вашим эмулятором терминала. Вы должны иметь возможность использовать все, что у вас есть файл terminfo на другом конце. На моей машине файл terminfo для vt100 говорит, что return должен быть ^ M, но не ^ J. (Backspace в vt100 является ^ H.) Так что я не знаю, сколько вы сможете положиться на этот эмулятор терминала ...
Backspace также ^ H в xterm. В других определениях terminfo это ^?, то есть 0x7f. Например, это верно для определений terminfo "linux" и "rxvt-unicode".