Emacs问题 - 哈希键

时间:2010-10-20 11:01:39

标签: 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

以及其他一些人,但似乎都没有效果。你能告诉我什么吗? 我可能能够在a中输入井号(#)的其他方式 文件。

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

(fset 'insertPound "#")
(global-set-key (kbd "M-3") 'insertPound)

谢谢!

5 个答案:

答案 0 :(得分:37)

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

在英国Macbook上的emacs中键入pound或hash(#)键:

OS X和英国键盘的问题是英镑键实际上有一英镑。要获得“#”,您必须按Alt + 3

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

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

答案 1 :(得分:29)

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

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

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

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

答案 2 :(得分:13)

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

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

如果您只需要global-set-key符号,则上面的#方法很好,但如果您还需要访问字符,该怎么办? (这是英国键盘上的Alt-3)

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

(setq ns-right-alternate-modifier (quote none))

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

您可以使用

查看所有可用选项
M-x customize-group RET ns RET

信用转到http://emacsformacosx.com/tips

答案 3 :(得分:1)

我的解决方案(注意转义序列):

;; Even though we may have set the Mac OS X Terminal's Alt key as the emacs Meta key ...                                                                                                                                                                                      
;; ... we want to be able to insert a '#' using Alt-3 in emacs as we would in other programs                                                                                                                                                                                  
(fset 'insertPound "#")
(define-key global-map "\M-3" 'insertPound)

答案 4 :(得分:-1)

正如S.Lott所说,插入数字符号(或散列,磅,octothrope)是 S - 3

为什么要使用元修饰符插入?此外,您的设置中绑定了什么 M - 3 ?您可以通过执行 C - h - k 然后按下组合键来获取它。


假设您正确引用Alt并且它正在设置Meta修改位,那么您可以推送

(global-unset-key (kbd "M-3"))

进入.emacs并评估它以禁用此功能。

所有“普通”键都绑定到self-insert-command。 shift修饰符只是提升用于调用此函数的'key',因此当你执行S-3时,你得到的是#而不是3。

另外,我仍然不明白为什么你使用Alt而不是转移到显示#符号。当你想输入@?

时,你会怎么做?
相关问题