解决 Putty 右边 Alt 不好使的问题

October 17, 2007 – 9:22 am

这个问题也算是困扰了我很久的问题了。就是在 Putty 里面右边的 Alt 键似乎并不是起到 Alt 的作用。 Emacs 用户应该很快就能发觉这个问题,konsole.png如果你习惯用右边的 Alt 来按 M-x 的话,就会发现根本不起作用。

在 Shell 里面也是一样的,比如本来 Alt+f 可以把光标向前移动一个单词,可是右边的 Alt 无法使用,就没法按了 (当然对喜欢用单手来按两个键的朋友这不是问题了) 。我很久以前就曾经努力寻找过解决方案,不过似乎并没有可以解决问题的方法。我也不清楚 Putty 把右边的 Alt 键当作一个什么键发送过去了。

不过我最近突然发现这个问题可以从另外的途径来解决,就是对 Putty 进行欺骗,让它接收到的 Alt 键都是左边 Alt 。Windows 本身是支持键盘映射的,比如 CtrlCaps Lock 交换之类的,都可以通过编辑注册表来实现。当然注册表里面是二进制值,是完全不可读的。不过有一个叫做 Sharpkeys 的工具提供了一个方便的界面来帮助我们完成这个任务。你只要按下想要映射的键,它就能帮助你生成合适的二进制值写入到注册表里面去。

当然,如果你不想在全局范围内把右边的 Alt 映射到左边,也有解决办法:我在介绍 Jump or Exec 的那篇 Blog 中提到了一个叫做 AutoHotkey 的小软件。它能够实现键盘映射,并且可以只在某个特定的窗口上映射。

打开 AutoHotkey ,在通知区域的图标上右键单击会出来一个菜单,选择里面的 “Window Spy”,然后点击 Putty 的窗口,就可以看到用于标识 Putty 窗口的类为 “ahk_class PuTTY” 了。脚本里面便可以这样写:

#IfWinActive ahk_class PuTTY
RAlt::LAlt
#IfWinActive

然后重新加载一下脚本,是不是 OK 了?这个工具还有很多用处,比如,gVim 发烧友可能会希望在 gVim 的窗口里把 Caps Lock 映射为 ESC 键,因为在全局范围内映射的话,会经常不小心按到,把一些窗口给关掉了。

  1. 12 Responses to “解决 Putty 右边 Alt 不好使的问题”

  2. 在windows下面的ssh登录软件中,感觉secureCRT更加专业些。

    By ln on Oct 17, 2007

  3. 啊?我怎么没有发现?

    By shawn on Oct 17, 2007

  4. 我在autohotkey里边的脚本,按alt+p如果词霸没运行则运行词霸,如果词霸在前端则最小化,不在前端则带到前端来;alt+shift+p则杀死词霸,释放资源。
    用得一直很顺手,看了你的python的脚本,能增加类似的功能吗?
    !p::
    IfWinNotExist, 金山词霸
    {
    Run, D:\Program Files\Powerword 2007\xdict
    }
    else
    {
    IfWinActive
    {
    WinMinimize
    WinHide
    }
    else
    {
    WinShow
    WinActivate
    }
    }
    return

    !+p::
    IfWinExist, 金山词霸
    Process, Close, xdict.exe
    return

    By jjxu on Oct 21, 2007

  5. 说错了一点,我的那个脚本词霸在前端则隐藏词霸窗口:)相当于boss key

    By jjxu on Oct 21, 2007

  6. 另外,你的wiki不好用,没有“changes统计”的功能。别人很难知道你的wiki到底更没更新,更新了哪些,比如那个jump or exec应该是不久前更新的吧,如果不是我之前看过,就根本不知道。

    By jjxu on Oct 21, 2007

  7. to jjxu:
    你好!我写的那个 Python 脚本当时基本上属于 quick and dirty 的解决方案了,也许添加隐藏的功能并不难,不过还有一个问题就是那个是专门在 Linux 下使用的,不能用于 Windows ,也许有时间可以改进一下。 :)
    关于我的 Wiki 没有 Changes 统计,这个确实不方便,不过这其实是技术原因了,因为 Emacs Muse 没有提供这样的功能吧,当然扩展一下也很方便,不过也许没有必要了,因为我现在几乎没有再修改过那个 Wiki 了,里面的东西都是很久以前写好的,现在它作为一堆静态的 HTML 页面放在那里,不过还是挺有价值的,一些资料我自己也经常去查一查。 :)
    多谢你的建议和意见!

    By pluskid on Oct 21, 2007

  8. 谢谢,我正是打算在linux下用你的那个python程序的;)

    By jjxu on Oct 22, 2007

  9. to jjxu:
    原来是这样的!呵呵!不过我想那个东西我可能暂时更新不了了,一来我很久都没有用 Python 了,完全生疏了;二来为了专注于学习,我把 Linux 的 X 给卸载掉了,呵呵!如果你喜欢那个脚本的话,可以按照自己的需求修改一下!就是 Python 的那个 X 库文档不是很全,查起来也许有一些麻烦,呵呵! :)

    By pluskid on Oct 22, 2007

  10. ok,thx anyway,我想办法改改,另外祝学习顺利:)

    By jjxu on Oct 23, 2007

  11. 解决Right Alt的方法:http://joshstaiger.org/archives/2005/04/fixing_the_righ.html

    By Goncha on Oct 23, 2007

  12. to jjxu:
    Thanks!

    By pluskid on Oct 23, 2007

  13. to Goncha:
    恩,你给的链接里面说的是在 Console 下右边 Alt 键的问题,我以前也确实碰到过这个问题,不过我记得当时 galilette 也给过我一个解决方案,我也记录在我的 Wiki 里面了。

    不过这篇 Blog 说的是不同的问题,我想这个问题应该是属于 putty 的吧。 :)
    Thank you, anyway.

    By pluskid on Oct 23, 2007

Post a Comment