Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 如何在zshell中的'emacs-nw'中使用'M-x'_Macos_Emacs_Zsh - Fatal编程技术网

Macos 如何在zshell中的'emacs-nw'中使用'M-x'

Macos 如何在zshell中的'emacs-nw'中使用'M-x',macos,emacs,zsh,Macos,Emacs,Zsh,这是我第一次使用emacs-nw。但是我在第一次键入M-x时遇到了问题。在微型缓冲区中,它显示“标记集”,而不是M-x 我不知道为什么会这样。我该怎么处理呢 PS:我的操作系统是Macosx,我使用ssh远程连接,然后键入emacs-nw,但我不能使用M-x 更新:08/30/2015 当我看到M-x customize group ns下的选项时,似乎Alt实际上被用作Meta?为什么它不起作用 14隐藏Ns替代修饰符:[值菜单]元| 15[州]:标准| 16此变量描述备用键或选项键的行为。更

这是我第一次使用
emacs-nw
。但是我在第一次键入
M-x
时遇到了问题。在微型缓冲区中,它显示“标记集”,而不是
M-x
我不知道为什么会这样。我该怎么处理呢

PS:我的操作系统是Macosx,我使用
ssh
远程连接,然后键入
emacs-nw
,但我不能使用
M-x

更新:08/30/2015

当我看到
M-x customize group ns
下的选项时,似乎
Alt
实际上被用作Meta?为什么它不起作用

14隐藏Ns替代修饰符:[值菜单]元|
15[州]:标准|
16此变量描述备用键或选项键的行为。更多|

37隐藏Ns右替换修改器:[值菜单]使用Ns替换修改器的值|
38[州]:标准|

39此变量描述右备用键或选项键的行为。更多

当在终端中使用Emacs(开关
-nw
)时,您可能没有
Meta
键,具体取决于您的平台等。特别是,Alt键盘键可能不起到
Meta
键的作用。您可能会找到一些关于如何使其作为上下文(平台等)的
Meta
工作的信息(例如,在这里或通过谷歌搜索),但您可能不会

您可以始终使用
ESC
(退出键)后跟一个键,其作用与应用于该键的
Meta
修改器相同。例如,您可以使用
ESC x
,而不是
M-x


(您按下并释放
ESC
,然后对
x
执行相同操作
ESC
不是修改键-您在按下
x
时没有按住它)

您的问题是OSX正在偷取该键。有几件事可以让你的生活更轻松

  • 使用自制软件安装emacs。OSX附带的版本很旧
  • 使用iterm2代替默认的term.app-更好,功能更丰富
  • 在iterm2中,您可以将“左”或“右”选项的关键点覆盖设置为+ESC,这将使其全部工作
  • 这些都可以在本地机器上工作,但是如果您连接到远程机器并在那里运行emacs,则可能会遇到其他问题。这是一个类似的问题,您的密钥设置可能不会被ssh会话窃取/丢弃-这一切都取决于您的终端、ssh配置和远程系统

    注意,对于emacs,您通常不需要运行remote。Emacs自带一个名为Tramp的内置系统,功能非常强大。使用tramp,您可以打开远程目录并像编辑本地文件一样编辑文件。您在本地运行emacs,tramp使用ssh打开远程文件,将内容读入本地emacs缓冲区,然后将更改写回远程文件。有助于设置ssh密钥,这样您就不必担心密码问题(但您需要一个ssh代理来轻松实现这一点)


    一般来说,当你发现emads对按键没有反应时,特别是当你尝试C-h k时,当你点击键绑定时什么都没有发生,你无法开始工作,几乎可以肯定的是,你和emacs之间有什么东西在偷键——这通常是窗口管理器或操作系统,但这也可能是由于终端模拟器等。在使用emacs的20多年中,我从来没有让emacs在按下组合键时“什么都不做”——如果emacs接收到键输入,它会做出响应,即使有东西告诉你按下的键没有键绑定。如果emacs什么都不做,你知道消息就是无法传递

    谢谢您的
    ESC
    ,它是用于紧急情况的。我仍然想使用“Alt”。当我看到
    M-x customize group ns
    下的选项时,似乎
    Alt
    实际上被用作Meta?为什么它不起作用。14Hide Ns Alternate Modifier:[值菜单]元| 37 HIDE Ns Right Alternate Modifier:[值菜单]使用Ns Alternate Modifier的值|正如我所建议的,可能是
    Alt-x
    (或
    Alt
    一般)被你的平台抓取,而Emacs从未看到它。当你做
    C-h k Alt-x
    时会发生什么?我猜Emacs甚至不认识
    Alt
    的用法。只是猜测。如果是这样,那么你可能需要检查你平台的文档,看看你是否可以阻止它抓取
    Alt
    。谢谢你的建议,原因是我不想使用Tramp的儿子是,每当我想打开和编辑文件时,我都需要键入
    C-x C-f/remotehost:filename RET
    。这通常不是很快。另外,一个很好的建议是使用·item2·:-DFYI-对于经常访问的文件或目录,您不需要每次都键入。只需使用Emacs书签即可远程文件或目录。例如,在您经常工作的远程目录(目录缓冲区)上有一个书签。@Drew很棒。书签是个好主意。它对本地目录也很有帮助。非常感谢。