Macos 起始/结束控制字符不';t在Mac OS X终端下的emacs中工作

Macos 起始/结束控制字符不';t在Mac OS X终端下的emacs中工作,macos,emacs,Macos,Emacs,我在Mac OS X的终端窗口中运行emacs。在同一终端的bash shell中,我可以使用Shift+和Shift+分别转到行的开头和结尾。当我在emacs内时,这些都不起作用。我得到一个错误: M-[ h is undefined 及 这是emacs的故障还是终端仿真器的故障?我可以看到如何更改终端发送的控制字符,但据我所知,这些是要发送的正确控制字符(它在emacs之外工作)。我很确定这是terminal.app的问题,因为我有一些类似的问题。我不知道如何修复它,但对于您的特定问题,您

我在Mac OS X的终端窗口中运行emacs。在同一终端的bash shell中,我可以使用
Shift+
Shift+
分别转到行的开头和结尾。当我在emacs内时,这些都不起作用。我得到一个错误:

M-[ h is undefined


这是emacs的故障还是终端仿真器的故障?我可以看到如何更改终端发送的控制字符,但据我所知,这些是要发送的正确控制字符(它在emacs之外工作)。

我很确定这是terminal.app的问题,因为我有一些类似的问题。我不知道如何修复它,但对于您的特定问题,您可以使用C-a和C-e分别转到行的开头和结尾。

将这些放在您的.emacs中:

(global-set-key (kbd "M-[ h") 'beginning-of-line)                                 
(global-set-key (kbd "M-[ f") 'end-of-line) 

事实上,
C-a
是有问题的,因为我在屏幕内运行-当然我可以重新映射屏幕默认控件字符。是的,这总是有点烦人。重新映射工作正常,还有
C-aa
。谢谢,这很有效。但是,当我使用任何一个函数时,我都会设置标记,以便选中原始光标位置和行的结束/开始之间的所有文本。嗯,我从帮助中选择了这些函数,它们可能是错误的。您可以使用descripe键找到正确的键:在执行所需操作的emacs中,\h-k并键入键组合,它将告诉您正在调用的函数。问题不在于函数。问题是这样的。当你按下
Home
时,它实际上正在生成
M-[H
,并将其视为Shift+
M-[H
。在移动光标的同时按住emacs中的Shift键会使它创建一个选择。解决方法是使用
(kbd“M-[H”)
(kbd“M-[F”)
(global-set-key (kbd "M-[ h") 'beginning-of-line)                                 
(global-set-key (kbd "M-[ f") 'end-of-line)