出于某种原因,“C-z”被映射到suspend-or-iconify-emacs,我似乎无法将其重新绑定到不那么烦人的东西上。 (我喜欢使用ctrl-z进行撤消,但不做任何事情至少比每次我不小心碰到钥匙都要暂停一样)
我尝试过互动式:
M-x global-set-key
,然后是Set key C-z to command: undo
M-x describe-key-briefly
给了我C-z runs the command suspend-or-iconify-emacs
我试过去临时缓冲区并评估:
(global-set-key (kbd "C-z") 'undo)
和(global-set-key "\C-z" 'undo)
,它当然位于我的.xemacs / init.el文件中。
似乎实际上没有重新绑定密钥。
这是在XEmacs 21.5上以基本模式发生的。关于如何排除故障的任何想法?
编辑:好的,这是一个通过重新定义暂停函数来解决问题的黑客攻击:
(defun suspend-or-iconify-emacs () (interactive) (undo))
我实际上不能暂停emacs了,但这对我来说确实没问题。
答案 0 :(得分:3)
尝试评估一下:
(define-key global-window-system-map [(control z)] 'undo)
(假设您没有在tty模式下运行XEmacs,但我猜您不是,如果您想要图标化: - )
我使用C-h b来找出要修改的* -map。
答案 1 :(得分:3)
我的.emacs中有以下代码:
(global-set-key (kbd "C-z") 'eshell)
它将启动一个eshell,它可以工作。
如果您在终端中工作,那么C-z组合在Unix / Linux上非常标准。 vi,lynx或mutt并按下C-z,程序将暂停,你将回到shell中。发出'fg'命令会再次弹回程序。由于Emacs有自己的shell,我喜欢在Emacs中按C-z时产生。
您还可以添加以下钩子,它将在eshell中重新映射C-z。这样就可以在eshell中按下C-z,然后返回到你正在编辑的缓冲区。
(add-hook 'eshell-mode-hook
(lambda ()
(local-set-key (kbd "C-z") 'bury-buffer)))
答案 2 :(得分:2)
将放在.xemacs / init.el的最后:
(global-set-key (kbd "C-z") 'undo)
或者您的键盘或操作系统配置错误。
执行 C-h k C-z 以查看xemacs是否真的收到 C-z 键。
答案 3 :(得分:1)
我和C-f有同样的问题。我希望它映射到isearch-forward,但它不断向前移动一个角色。
我终于通过添加
解决了我的问题(global-unset-key [?\C-f])
(global-set-key [?\C-f] 'isearch-forward)
显然问题是Cf(和Cz)是一个“真正的”键,也就是说,它是终端识别的东西(它是ASCII 0x06,Cz为0x1a),所以你需要前面的“?\” “CF”。
这是我唯一能做的事情。
HTH
(编辑:我应该注意我使用的是emacs,而不是xemacs)