腻子转移箭头

时间:2011-06-01 13:54:23

标签: c emacs keyboard terminal putty

我想让Putty识别移位箭头序列

正如我所知道的那样^ [[A表示向上并且^ [[1; 2A是shift + up

我修改了putty源代码如下

            if (shift_state == 1)
                if (app_flg)
                    p += sprintf((char *) p, "\x1BO1;2%c", xkey);
                else
                    p += sprintf((char *) p, "\x1B[1;2%c", xkey);
            else
                if (app_flg)
                    p += sprintf((char *) p, "\x1BO%c", xkey);
                else
                    p += sprintf((char *) p, "\x1B[%c", xkey);

而不是

                    if (app_flg)
                        p += sprintf((char *) p, "\x1BO%c", xkey);
                    else
                        p += sprintf((char *) p, "\x1B[%c", xkey);

通过运行cat -vt putty接缝为终端提供正确的密钥代码,但在emacs中我仍然无法移动选择文本(而是放置文本; 2A等等)。

运行已经包含此修复的begPutty(我也没有源代码)cat -vt在使用移位箭头时打印相同的键代码,并在emacs中正常工作。

基本上我想为密码代码实现begPutty功能修复,但我没有它的源代码

2 个答案:

答案 0 :(得分:3)

答案是kitty(KiTTY是PuTTY 0.66版本的一个分支)家伙!我的一生都是谎言:D

http://www.9bis.net/kitty/?page=Download

它有固定的shift +箭头键错误随putty一起提供(同时shift +箭头键在其他ssh客户端无效)

在kitty之后我从这里下载了sanos编辑器http://www.jbox.dk/sanos/editor.htm

Sanos编辑器就像一个文件,编译如下:

wget http://www.jbox.dk/downloads/edit.c
gcc -o edit edit.c -Os
./edit edit.c

sanos的唯一问题是退出后缓冲区丢失,但您可以一次打开多个文件并使用ctrl + tab浏览选项卡,同时按ctry + y进行键盘映射帮助

enter image description here

答案 1 :(得分:1)

我已经添加了emacs作为标签,因为我的意见是问题在于emacs无法识别你的转义序列,而不是你修改了putty。

你可以试试

吗?
(define-key input-decode-map "\e[1;2A" [S-up])

在你的.emacs中,重新启动emacs,按下shift键然后按CTRL-H L. Emacs然后会告诉你它如何解释你的按键。