博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
putty与emacs
阅读量:6581 次
发布时间:2019-06-24

本文共 3786 字,大约阅读时间需要 12 分钟。

    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-数字】被解释成了其它的功能。此点还需要进一步调查。

转载于:https://www.cnblogs.com/Jackie-Snow/p/6819456.html

你可能感兴趣的文章
Linux 中如何卸载已安装的软件
查看>>
thinkphp 3.2 增加每页显示条数
查看>>
oracle日常简单数据备份与还原
查看>>
我的友情链接
查看>>
黑马程序员__反射总结
查看>>
Scala学习笔记(5)-类和方法
查看>>
Quartz原理
查看>>
完全卸载oracle|oracle卸载|彻底卸载oracle
查看>>
垃圾收集基础
查看>>
Docker安装及基本命令
查看>>
控制namenode检查点发生的频率
查看>>
Linux存储挂载后,无法正常卸载的解决方法
查看>>
2、递归遍历文件夹下每一个文件
查看>>
Remove auto_increment from Schema Dumps (mysqld...
查看>>
解决activity加上Theme.Translucent.NoTitleBar 页面跳转显示桌面
查看>>
php类库
查看>>
浅谈Java中的对象和引用
查看>>
SQL 注入自我总结
查看>>
Linux线程
查看>>
Exchange Server 2013 系列八:邮箱服务器角色DAG实战
查看>>