我有一台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)
谢谢!
答案 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
答案 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
而不是转移到显示#符号。当你想输入@?