2010-09-02 68 views
0

出于某种原因,“C-z”映射到suspend-or-iconify-emacs,我似乎无法将它重新绑定到不太恼人的事情上。 (我喜欢用CTRL-Z撤销,但什么都不做至少会比暂停每次更好,我不小心碰到了键)无法重新绑定xemacs中的关键C-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

得到适当的Emacs代替。 ;) – 2010-09-02 15:12:45

+0

请删除标记“emacs”,并将标记“xemacs”添加到您的问题。谢谢。 – 2010-09-02 15:35:06

+0

Deniz,我宁愿用xemacs来理解和解决问题,因为我不是这个系统的唯一用户。 – 2010-09-02 15:57:19

回答

2

把那你.xemacs/init.el结束

(global-set-key (kbd "C-z") 'undo) 

或者,也许你有一个错误配置的键盘或操作系统。

不要C-HķC-Z^,看看是否真的xemacs的接收C-Z^关键。

+0

'M-x describe-key-brief'基本上是C-h k的简短版本。 – 2010-09-02 15:54:39

+1

你有没有尝试自己的建议?它不适用于我,我认为由于未在全局映射中定义C-z,而是在全局窗口系统映射中定义了C-z。 – asjo 2010-09-02 16:07:48

+0

这就是为什么你应该尝试,我没有说C-z在你的电脑上工作。 – 2010-09-03 07:02:46

3

请评价的:

(define-key global-window-system-map [(control z)] 'undo) 

(假设你没有运行在TTY模式XEmacs的,但我猜你是不是,如果你想程序图标:-))

我使用Ch b来找出要修改的* -map。

3

我有我的.emacs以下代码:

(global-set-key (kbd "C-z") 'eshell) 

它将启动一个ESHELL,和它的作品。如果你在一个终端上工作,例如,在Unix/Linux上,C-z组合是非常标准的。 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))) 
+0

甚至没有意识到我错过了这个,直到我收回它。谢谢! – 2016-09-30 18:24:53

1

我和C-f有同样的问题。我希望它能映射到isearch-forward,但是它不断向前移动一个角色。

我最后加入

(global-unset-key [?\C-f]) 
(global-set-key [?\C-f] 'isearch-forward) 

解决我的问题很明显的问题是,CF(和CZ)是一个“真正”的关键,那就是它的东西,一个终端设备识别(它的ASCII 0×06,0X1A对于Cz),所以你需要在“Cf”前面的“?”。

这是我唯一能够工作的东西。

HTH

(编辑:我要指出,我用emacs,不XEmacs的)

+0

另外,如果您只想将C-z映射为撤消,则可以尝试cua模式。 – 2011-06-15 19:51:11