Emacs问题 - 哈希键

And*_*rei 32 macos emacs

我有一台Mac笔记本电脑,我正在连接到运行Linux的服务器.由于Alt + 3已经在EMACS中绑定到命令,因此我无法在文件中插入哈希符号.我尝试过在网上找到的以下解决方案:

(global-unset-key (kbd "C-3"))
(global-set-key (kbd "C-3") '(lambda() (interactive) (insert-string
"#")))      //I know that C is for CTRL not Alt - I have tried with
M-3 instead as well
Run Code Online (Sandbox Code Playgroud)

还有其他一些,但似乎都没有用.你能告诉我任何其他方式我可以在文件中输入井号(#).

麻生太郎尝试过(没用):

(fset 'insertPound "#")
(global-set-key (kbd "M-3") 'insertPound)
Run Code Online (Sandbox Code Playgroud)

谢谢!

小智 37

来自http://jimbarritt.com/non-random/2010/11/07/typing-the-pound-or-hash-key-in-emacs-on-uk-macbook

在英国Macbook上的emacs中输入英镑或哈希(#)键:

OS X和英国键盘的问题在于,英镑键实际上有一英镑.要获得"#",您必须按Alt + 3

当然,在emacs中,alt键是由emacs捕获的元键.插入到.emacs文件中的简单函数应正确映射键.

;; Allow hash to be entered  
(global-set-key (kbd "M-3") '(lambda () (interactive) (insert "#")))
Run Code Online (Sandbox Code Playgroud)


use*_*019 30

我假设你有一个Mac UK键盘,所以Shift- 3是£.在大多数其他键盘上Shift- 3正如其他人所说的那样#.

我绕过它的方法是将输入源更改为澳大利亚,唯一的区别是Shift- 3现在#和Alt- 3是£(或者作为emacs绑定)

输入源设置为系统偏好设置 - >语言和文本 - >输入源
在以后的OSX版本(OSX 10.11肯定但是早些时候)输入源设置是系统偏好设置 - >键盘 - >输入源默认情况下,这将只显示英国键盘看到更多点击列表底部的+并添加澳大利亚

我喜欢这个而不是在emacs中添加代码的原因是Shift- 3所有应用程序都是#,例如包括Xcode/Eclipse,所以我不必根据应用程序切换密钥,或者根据我在美国键盘上或在Windows/Linux等

  • +1。我需要变得对文化更加敏感,并意识到有些键盘与我自己的不同。:) (2认同)
  • 我认为下面的全局设置密钥方法更好. (2认同)

小智 14

我知道这有点晚了,答案已被接受.但是,我刚刚从Linux转向使用英国键盘的MacOS,并遇到了同样的问题.

注意:我正在使用此处的emacs:http://emacsformacosx.com/.以下可能与Carbon Emacs/Aquamacs等有所不同.

global-set-key如果您只需要#标志,上面的方法就可以了,但如果您还需要访问该字符,该怎么办?(这是英国键盘上的Alt-3)

我的解决方案是将其添加到我的init文件中:

(setq ns-right-alternate-modifier (quote none))
Run Code Online (Sandbox Code Playgroud)

这将删除右侧alt/option键的emacs绑定.

您可以看到所有可用选项

M-x customize-group RET ns RET
Run Code Online (Sandbox Code Playgroud)

归功于http://emacsformacosx.com/tips


gid*_*gid 5

这里和其他地方给出的许多解决方案都适用于#在普通缓冲区中输入,但它们并不能使其像普通按键一样工作;特别是,它会中止增量搜索,这使得编写处理 Python 注释或 C#include语言的宏变得困难。因此,最好更早地转换按键,这样它就像另一个打字击键一样。

\n\n

我发现将此命令添加到 Emacs 配置中效果非常好:

\n\n
(define-key key-translation-map (kbd "M-3") (kbd "#"))\n
Run Code Online (Sandbox Code Playgroud)\n\n

...并删除所有(global-set-key...)尝试。

\n\n

如果 - 像我一样 - 你切换你的修饰键,Opt \xe2\x8c\xa5映射到Hyper,所以我只是用皮带和大括号:

\n\n
(define-key key-translation-map (kbd "M-3") (kbd "#"))\n(define-key key-translation-map (kbd "M-\xc2\xa3") (kbd "#"))\n(define-key key-translation-map (kbd "H-3") (kbd "#"))\n(define-key key-translation-map (kbd "H-\xc2\xa3") (kbd "#"))\n(define-key key-translation-map (kbd "S-3") (kbd "#"))\n(define-key key-translation-map (kbd "S-\xc2\xa3") (kbd "#"))\n
Run Code Online (Sandbox Code Playgroud)\n