【问题标题】:Unable to type braces and square braces in emacs无法在emacs中输入大括号和方括号
【发布时间】:2011-03-23 13:20:09
【问题描述】:

我正在运行 Mac OS X 和 GNU Emacs 22.3.1。我使用瑞典语键盘。我无法在 emacs 中输入大括号 { }[ ]。尝试输入大括号时,我得到括号。由于我对 Mac 和 emacs 还很陌生,因此我需要一些帮助来配置 emacs 以使其正确。

【问题讨论】:

  • 你所说的“方括号”通常被称为“方括号”。这并不重要,但它的类型有点短。
  • 注意:“方括号”是区域性的。在美国,它表示方括号,在英国,它表示圆括号/圆括号。
  • 不幸的是,没有一个答案解决了我的德语键盘上的类似问题。我根本没有得到任何括号或花括号。
  • @sanityinc 在我的法语键盘上为我解决了这个问题......但我一点也不满意,因为要制作一个“[”,我必须按三个键(alt shift 5)!跨度>

标签: macos emacs keyboard keyboard-layout


【解决方案1】:
(setq mac-option-modifier nil
      mac-command-modifier 'meta
      x-select-enable-clipboard t)

这是我用于瑞典语键盘的。如果您使用它,它甚至可以与 svorak A5 一起使用 :)

【讨论】:

  • 我尝试将它放入我的 ~/.emacs 文件和 ~/.emacs.d/init.el 文件中,但我无法让它工作。
  • 您确定您使用的是 Mac 吗? ;)
  • srsly tho,尝试emacs -Q,然后将上面的内容粘贴到*scratch*,使用 M-x eval-buffer 进行 eval,看看它是否有效。可能是你的其他设置搞砸了。
  • 我刚刚尝试了“emacs -Q,然后将上面的内容粘贴到 scratch,使用 M-x eval-buffer 进行评估”。但是花括号不起作用。
  • 我猜上面的代码没有被正确评估。尝试将其添加到您的 *scratch*-buffer 中,评估它并查看它是否有效。如果它确实有效,请尝试删除所有 emacs 设置(将 .emacs.d 移动到某处)并重新开始。
【解决方案2】:

你也可以试试:

(setq mac-option-key-is-meta t)
(setq mac-right-option-modifier nil)

【讨论】:

  • 为什么我没有早点发现呢? :D
  • 是的! setq mac-right-option-modifier nil 完全救了我!现在我可以将左 alt 作为元数据,将右 alt 作为大括号源。谢谢!
  • 也适合我。实际上,不需要第一行。
  • 我也不需要第一行。
【解决方案3】:

我假设您使用的是图形 emacs,而不仅仅是使用终端中的 OS X 捆绑版本。

要确保 Emacs 以与其他 OS X 应用程序相同的方式响应击键,请尝试以下操作:

(setq default-input-method "MacOSX")

特别是,如果您想使用 Option 键输入不在键盘上的扩展字符(例如“Option-c c”=>“ç”),请使用以下设置:

(setq mac-command-modifier 'meta)
(setq mac-option-modifier 'none)

(将这些命令放在你的 ~/.emacs 或 ~/.emacs.d/init.el emacs 启动文件中,然后在编辑文件时重新启动 Emacs,或者只是“M-x eval-buffer”。)

【讨论】:

    【解决方案4】:
    (setq default-input-method "MacOSX")
    
    (setq mac-command-modifier 'meta
          mac-option-modifier nil
          mac-allow-anti-aliasing t
          mac-command-key-is-meta t)
    

    试试这个。您将能够将 Alt 键用作 AltGR,并且对于所有旧的 M-x 功能,您必须使用命令键。

    【讨论】:

      【解决方案5】:

      将相关的键盘快捷键绑定到插入这些字符的匿名函数,例如将这些行添加到欧洲葡萄牙语的~/.emacs

      (global-set-key "\M-(" (lambda () (interactive) (insert "{")))
      (global-set-key "\M-)" (lambda () (interactive) (insert "}")))
      
      (global-set-key "\M-8" (lambda () (interactive) (insert "[")))
      (global-set-key "\M-9" (lambda () (interactive) (insert "]")))
      

      然后用C-x C-s 保存~/.emacs 并用M-x load-file 重新加载它并输入~/.emacs

      一个缺点是这在迷你缓冲区中起作用,并且键入“Alt-9”会将文本插入缓冲区而不是迷你缓冲区。

      与其他解决方案的比较:此解决方案使用M- 保持与其他快捷方式的兼容性。 @monotux、@sanityinc 和 Abdul Bijur V A 的解决方案确实有效,但它们不能保持这种兼容性,例如Cmd-Q 不再退出程序,M-x 不再调用 mini-buffer 来执行命令。

      @patrikha 的解决方案不适合触控打字,这需要在键盘的右侧和左侧使用相同的修饰符命令(Command、Alt/Option、Shift 和 Control)。例如,使用此解决方案执行 M-x 需要左手拇指在左侧 Alt 键上,左手食指在 S 键上,而不是 right 拇指在右侧 @987654334 @ 钥匙。你可以(setq mac-left-option-modifier nil),但这可能需要改变键盘右侧字母的习惯。

      注意事项:如果您使用 AquaMacs,wiki 在“在非英文键盘或其他带有 Option 修饰符的键上输入 {}[] 等部分中有一个解决方法”。

      我还将这一行添加到./emacs 的末尾以显示括号和大括号的匹配:(show-paren-mode)

      【讨论】:

        【解决方案6】:

        我会尝试基于 Cocoa 的 emacs,即版本 23。对于集成 mac 的 emacs,我会尝试 Aquamacs

        【讨论】:

          【解决方案7】:

          我在使用法语键盘时遇到了同样的问题。它看起来像一个 Aquamacs 问题(Carbon Emacs 不会用 () 替换 {)。

          上面对 emacs 的更改工作正常,我可以输入括号,但我不能再使用标准快捷键(例如 Ctrl+C/Ctrl+V)。

          Aquamacs 提供了一种解决方法。 菜单栏 > 选项 > 选项、命令、元键 > 选择 ...元和法语

          对我来说效果很好。但是它可能不适用于瑞典语,没有瑞典语键盘选项。

          【讨论】:

            【解决方案8】:

            使用 Aquamacs:

            从主菜单中,转到选项 - 选项、命令、元键并选择“组合字符选项”。

            大括号和方括号与标准 Mac 键盘一样工作。

            【讨论】:

              【解决方案9】:

              你不需要记住那些编程之类的东西:这就是答案。转到键盘首选项,然后选中“在菜单栏中显示键盘和字符查看器”。之后,在电池表附近的菜单栏上查看图标并开始双击您想要的任何字符。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2021-01-11
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多