我试图在Eclipse中放入一个我想念的功能,其中Alt+ [ Up/ Down]可以向上或向下转换行,但是在我的生活中不能找到如何正确分配这些键的功能.我在-nw模式中使用它(所以只在shell窗口中),通常在屏幕会话中运行.
使用全局键绑定,我可以使用字母组合,比如(kbd "M-m"),但是我为箭头键尝试的每个组合只给我一条没有意义的消息,我总是得到:
"ESC <up> is undefined"
Run Code Online (Sandbox Code Playgroud)
我尝试过的:
(global-set-key (kbd "M-<up>") 'transpose-line-up)
(global-set-key (kbd "<escape>-<up>") 'transpose-line-up)
(global-set-key [M-up] 'transpose-line-up)
(global-set-key [\e \M-O A] 'transpose-line-up)
Run Code Online (Sandbox Code Playgroud)
而且C-h c只是回报:
ESC <up> (translated from ESC M-O A) is undefined
Run Code Online (Sandbox Code Playgroud)
这些都不起作用,无论是使用ESC还是Alt.
知道如何让这个工作吗?我更愿意将这些作为Alt+ [ Up/ Down],因为这是我习惯的.
编辑
来自评论:
C-q Up打印^[OA.
C-q M-Up打印^[并将光标向上移动一行.
C-h k(Alt+ Up)打印 …
我在标准的emacs-nox和emacs-gtk中找到了很大的区别.我知道emacs控制台版本(emacs-nox)有些键有问题(例如Shift-Tab - ),但是没有PageDown.
当我有空的.emacs文件,并尝试识别由PageDown键运行的命令名(由Ch c)时,emacs-nox emacs-gtk正常工作 - 推送PageDown进行向上滚动,并且Ch c PageDown打印在迷你缓冲区中向上滚动.
当我尝试绑定"M- ["键时出现问题.在.emacs我只有一个声明:
(global-set-key (kbd "M-[") 'hippie-expand)
Run Code Online (Sandbox Code Playgroud)
emacs-nox无法识别按键运行的命令名称 - 当Ch c PageDown,insted wriets缓冲"~6"时,它不会在迷你缓冲区中打印.当我尝试Chk PageDown时,我得到:M- [运行命令hippie-expand
emacs-gtk工作正常 - 推送PageDown进行向上滚动,Chc PageDown打印向上滚动迷你缓冲区.
所以我想emacs nox将PageDown视为M- [并添加额外的东西.
知道如何在emacs-nox中解决这个问题吗?
我使用emacs v23.2
编辑:
我测试了其他案例:在.emacs我只有:(global-set-key(kbd"")'hippie-expand)和Ch c PageDown和Ch k PageDown都能正常工作(打印嬉皮 - 扩展),以及何时在缓冲区我推PageDown也很好用.