我想让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功能修复,但我没有它的源代码
答案 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进行键盘映射帮助
答案 1 :(得分:1)
我已经添加了emacs作为标签,因为我的意见是问题在于emacs无法识别你的转义序列,而不是你修改了putty。
你可以试试
吗?(define-key input-decode-map "\e[1;2A" [S-up])
在你的.emacs中,重新启动emacs,按下shift键然后按CTRL-H L. Emacs然后会告诉你它如何解释你的按键。