win环境下putty登录到linux并使用emacs时,需要折腾好配置才能正常工作。下面是折腾过程中碰到的问题与解决步骤:

1)要在putty控制台中启用鼠标,只需要在.emacs配置文件中启用xterm-mouse-mode:

(xterm-mouse-mode t)

这样在控制台中点击emacs菜单时,就会看到出现一个buffer,提示对应的菜单选项。

2)右Alt键失效问题:我参考了emacs-wiki上的文章:https://www.emacswiki.org/emacs/PuTTY

建立文本文件fix-alt-key.reg,写入:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,38,00,38,e0,00,00,00,00

双击执行即可。

3)有些功能键,如Home,End,Fn等不能正常工作。先是将putty中的keyboard类型设置为SCO,这是唯一可以识别所有功能键的模式。接着在.emacs文件中增加如何键映射配置:

(if (eq system-uses-terminfo t)
(progn ;; PuTTY hack - needs to be in SCO mode
(define-key key-translation-map [\e] [\M])
(define-key input-decode-map "\e[H" [home])
(define-key input-decode-map "\e[F" [end])
(define-key input-decode-map "\e[D" [S-left])
(define-key input-decode-map "\e[C" [S-right])
(define-key input-decode-map "\e[A" [S-up])
(define-key input-decode-map "\e[B" [S-down])
(define-key input-decode-map "\e[C" [S-right])
(define-key input-decode-map "\e[I" [prior])
(define-key input-decode-map "\e[G" [next])
(define-key input-decode-map "\e[M" [f1])
(define-key input-decode-map "\e[Y" [S-f1])
(define-key input-decode-map "\e[k" [C-f1])
(define-key input-decode-map "\e\e[M" [M-f1])
(define-key input-decode-map "\e[N" [f2])
(define-key input-decode-map "\e[Z" [S-f2])
(define-key input-decode-map "\e[l" [C-f2])
(define-key input-decode-map "\e\e[N" [M-f2])
(define-key input-decode-map "\e[O" [f3])
(define-key input-decode-map "\e[a" [S-f3])
(define-key input-decode-map "\e[m" [C-f3])
(define-key input-decode-map "\e\e[O" [M-f3])
(define-key input-decode-map "\e[P" [f4])
(define-key input-decode-map "\e[b" [S-f4])
(define-key input-decode-map "\e[n" [C-f4])
(define-key input-decode-map "\e\e[P" [M-f4])
(define-key input-decode-map "\e[Q" [f5])
(define-key input-decode-map "\e[c" [S-f5])
(define-key input-decode-map "\e[o" [C-f5])
(define-key input-decode-map "\e\e[Q" [M-f5])
(define-key input-decode-map "\e[R" [f6])
(define-key input-decode-map "\e[d" [S-f6])
(define-key input-decode-map "\e[p" [C-f6])
(define-key input-decode-map "\e\e[R" [M-f6])
(define-key input-decode-map "\e[S" [f7])
(define-key input-decode-map "\e[e" [S-f7])
(define-key input-decode-map "\e[q" [C-f7])
(define-key input-decode-map "\e\e[S" [M-f7])
(define-key input-decode-map "\e[T" [f8])
(define-key input-decode-map "\e[f" [S-f8])
(define-key input-decode-map "\e[r" [C-f8])
(define-key input-decode-map "\e\e[T" [M-f8])
(define-key input-decode-map "\e[U" [f9])
(define-key input-decode-map "\e[g" [S-f9])
(define-key input-decode-map "\e[s" [C-f9])
(define-key input-decode-map "\e\e[U" [M-f9])
(define-key input-decode-map "\e[V" [f10])
(define-key input-decode-map "\e[h" [S-f10])
(define-key input-decode-map "\e[_" [C-f10])
(define-key input-decode-map "\e\e[V" [M-f10])
(define-key input-decode-map "\e[W" [f11])
(define-key input-decode-map "\e[i" [S-f11])
(define-key input-decode-map "\e[u" [C-f11])
(define-key input-decode-map "\e\e[W" [M-f11])
(define-key input-decode-map "\e[X" [f12])
(define-key input-decode-map "\e[j" [S-f12])
(define-key input-decode-map "\e[v" [C-f12])
(define-key input-decode-map "\e\e[X" [M-f12])))

这之后功能键就能正常识别了。putty的文档可以看这里:http://the.earth.li/~sgtatham/putty/0.62/htmldoc/Chapter4.html#config-keyboard

以上问题解决后,putty中使用emacs就没有什么大问题了。不过我发现【CTRL-数字-键位】时无法执行,【CTRL-数字】被解释成了其它的功能。此点还需要进一步调查。

putty与emacs的更多相关文章

  1. PuTTY 中文教程

    PuTTY 中文教程 更新记录 2006-11-29初步完成想写的这些东西 2007-06-11PuTTY 的最新版本到了0.6:修改了一下 SSH 隧道:添加了 SSH 反向隧道:添加了用 SSH ...

  2. puTTY与SecureCRT的比较

    从网上看到别人对这两个工具的比较:从windows访问linux,除了samba之外,日常操作用得最多的大概就是PuTTY和SecureCRT Putty是免费的,SecureCRT是收费的(当然,有 ...

  3. Xming + PuTTY 在Windows下远程Linux主机

    Xming + PuTTY 在Windows下远程Linux主机 一.原理     Linux/Unix的X Window具有网络透明性.X Window系统里有一个统一的Server来负责各个程序与 ...

  4. putty修改编码

    在窗口标题上点击右键,选择 Change Settings... 在打开的配置窗口左边选择 Appearance,在右边点 Font settings 里面的 Change 按钮,选择好中文字体,比如 ...

  5. 转:Xming + PuTTY 在Windows下远程Linux主机使用图形界面的程序

    一.原理Linux/Unix的X Window具有网络透明性.X Window系统里有一个统一的Server来负责各个程序与显示器.键盘和鼠标等输入输出设备的交互,每个有GUI的应用程序都通过网络协议 ...

  6. Putty的用法

    大致内容罗列如下: ·        最简单的使用,登录 SSH主机 ·        中文乱码的处理 ·        PuTTY常用配置的说明 ·        复制.粘贴 ·        保存 ...

  7. MobaXterm的一些介绍(Top 5 SSH Clients for Windows (Alternatives of PuTTY))

    Top 5 SSH Clients for Windows (Alternatives of PuTTY) http://tecadmin.net/top-5-ssh-clients-for-wind ...

  8. 使用XMing+putty运行linux图形界面程序

    起因接下去的工作要作一些数值模拟,于是到师兄的工作站上开了个帐号.工作站运行的是RHEL4,要说远程SSH,就算是FTerm也足够胜任,不过,因为我要用的查看计算结果的软件需要使用图形界面,这一点就比 ...

  9. Putty Technical Note

    转载自:http://libai.math.ncu.edu.tw/bcc16/6/putty/puttyt.html Terminal panel Terminal 面板可調整 PuTTY 對於模擬終 ...

随机推荐

  1. ci框架——分页

    1:在models里面写一个模型:page_model.php class Page_model extends CI_Model{ function page($tablename,$per_num ...

  2. [Poi2010]Bridges 最大流+二分答案 判定混合图欧拉回路

    https://darkbzoj.cf/problem/2095 bzoj 相同的题挂了,这个oj可以写. 题目就是要我们找一条欧拉回路(每个桥经过一次就好,不管方向),使得这条回路上权值最大的尽量小 ...

  3. windows安装SUSE Linux Enterprise Server 12

    一:打开“开发人员模式” 点击开始菜单按钮,选择“设置” 在设置中选择“更新和安全” 在菜单中选择“针对开发人员”,在三个选项中,选中“开发人员模式” 在弹出的警告框中点击“是” 这样开发人员模式就打 ...

  4. python3.x对python2.x变动

    原文地址:http://rookiedong.iteye.com/blog/1185403 python 2.4 与 python 3.0 的比较 一. print 从语句变为函数 原:     pr ...

  5. Ubuntu 16.04安装IntelliJ IDEA时快捷键冲突设置

    解决快捷键冲突可以有如下方法: 1.直接修改IDEA的,但是不建议这么干,因为多平台时,或者去到另外一台电脑时,统一的快捷键能更快的适应新的开发环境. 2.通过修改系统默认的快捷键. 3.就这两种方式 ...

  6. 如何稳定地使用 Google 搜索https://encrypted.google.com/

    方法很简单.用记事本打开 hosts 文件(Windows Vista 和 Windows 7 用户请先使用管理员权限打开记事本,然后将 hosts 文件拖进记事本中),在最下面添加如下内容: 203 ...

  7. spring-quartz定时任务使用小结

    在实际项目中,通常须要用到定时任务(定时作业).spring框架提供了非常好的实现. 1.  下载spring-quartz插件包 这里默认当前系统中是集成了spring框架的基本功能的.去网上下载s ...

  8. 转:Python yield 使用浅析 from IBM Developer

    评注:没有看懂. 转: https://www.ibm.com/developerworks/cn/opensource/os-cn-python-yield/ Python yield 使用浅析 初 ...

  9. poj(1011)——Sticks(经典的dfs+剪枝)

    题目的大致意思是: 如今有n根木棍,然后须要把它们拼成相同长度的木棍,问满足这个条件的最短的长度是多少? 想法嘛:那肯定是dfs把长度搜一遍就好,但问题的关键是这里会超时.那么就要用到剪枝的原理了. ...

  10. fetch 函数分装

    1.fetch /** * 封装 fetch */ import { hashHistory } from 'react-router'; export default function reques ...