这个页面表明希腊字母可以通过使用M-i
. M-i
但是,Debian Squeeze 变体中的 Emacs 23.2.1 在按下时会插入“制表符”字符。如何在 Emacs 中插入希腊字母,例如 α 和 β?
11 回答
M-x set-input-method RET TeX
将允许您编写例如\beta
to getβ
或to get\sum
等。\Sigma
Σ
toggle-input-method
它可以用、绑定到C-\和 来打开和关闭C-<。
您可以使用ucs-insert
bound to
C-x8RET按名称或按值插入任何 Unicode 字符。
例如插入一个 lambda 你可以做
- C-x8RET
GREEK SMALL LETTER LAMBDA
RET→ λ - C-x8RET
03bb
RET→ λ
也可以使用制表符完成。
C-x8RET* lambda
TAB
将列出以 lambda 结尾的每个 unicode 字符。
您可以将输入法设置为希腊语:
M-x set-input-method RET greek
或者
C-x RET C-\ greek
(这是相同的)。要设置输入法,请按C-\
( toggle-input-method
)。
扩展@Oleg Pavliv 的答案:
要在您的文件中一劳永逸地解决这个问题.emacs
,您需要选择一个键模式(如M-g + <latin letter>
)和一个可记忆的对应表<greek letter> - <latin letter>
。我建议不要发明任何新东西,而是使用 PostScript Symbol 编码中的对应关系。这使我得出以下结论:
(global-set-key (kbd "M-g a") "α")
(global-set-key (kbd "M-g b") "β")
(global-set-key (kbd "M-g g") "γ")
(global-set-key (kbd "M-g d") "δ")
(global-set-key (kbd "M-g e") "ε")
(global-set-key (kbd "M-g z") "ζ")
(global-set-key (kbd "M-g h") "η")
(global-set-key (kbd "M-g q") "θ")
(global-set-key (kbd "M-g i") "ι")
(global-set-key (kbd "M-g k") "κ")
(global-set-key (kbd "M-g l") "λ")
(global-set-key (kbd "M-g m") "μ")
(global-set-key (kbd "M-g n") "ν")
(global-set-key (kbd "M-g x") "ξ")
(global-set-key (kbd "M-g o") "ο")
(global-set-key (kbd "M-g p") "π")
(global-set-key (kbd "M-g r") "ρ")
(global-set-key (kbd "M-g s") "σ")
(global-set-key (kbd "M-g t") "τ")
(global-set-key (kbd "M-g u") "υ")
(global-set-key (kbd "M-g f") "ϕ")
(global-set-key (kbd "M-g j") "φ")
(global-set-key (kbd "M-g c") "χ")
(global-set-key (kbd "M-g y") "ψ")
(global-set-key (kbd "M-g w") "ω")
(global-set-key (kbd "M-g A") "Α")
(global-set-key (kbd "M-g B") "Β")
(global-set-key (kbd "M-g G") "Γ")
(global-set-key (kbd "M-g D") "Δ")
(global-set-key (kbd "M-g E") "Ε")
(global-set-key (kbd "M-g Z") "Ζ")
(global-set-key (kbd "M-g H") "Η")
(global-set-key (kbd "M-g Q") "Θ")
(global-set-key (kbd "M-g I") "Ι")
(global-set-key (kbd "M-g K") "Κ")
(global-set-key (kbd "M-g L") "Λ")
(global-set-key (kbd "M-g M") "Μ")
(global-set-key (kbd "M-g N") "Ν")
(global-set-key (kbd "M-g X") "Ξ")
(global-set-key (kbd "M-g O") "Ο")
(global-set-key (kbd "M-g P") "Π")
(global-set-key (kbd "M-g R") "Ρ")
(global-set-key (kbd "M-g S") "Σ")
(global-set-key (kbd "M-g T") "Τ")
(global-set-key (kbd "M-g U") "Υ")
(global-set-key (kbd "M-g F") "Φ")
(global-set-key (kbd "M-g J") "Φ")
(global-set-key (kbd "M-g C") "Χ")
(global-set-key (kbd "M-g Y") "Ψ")
(global-set-key (kbd "M-g W") "Ω")
您可以使用另一个前缀,例如:
(global-set-key (kbd "C-x <ESC> a") "α")
(global-set-key (kbd "C-x <ESC> b") "β")
或global-abbrev-table
按照您提到的页面上的说明使用。
在 Emacs 中偶尔插入希腊字符的最简单方法是使用abbrev-mode和这个希腊字母缩写表。
要使用上述要点,请启动 emacs 并调用M-x edit-abbrevs
它将启动 Abbrevs 编辑器。然后在该部分下剪切并粘贴其中的定义(global-abbrev-table)
(以使它们全局可用)或将它们放在另一个标题下,例如(text-mode-abbrev-table)
.
确保使用Mx abbrev-mode RET在给定缓冲区中启用 abbrev-mode,或者通过添加到您的 init 文件中全局启用 abbrev-mode。(setq-default abbrev-mode t)
或者,如果您只想为文本和派生模式启用缩写模式,请使用(add-hook 'text-mode-hook (lambda () (abbrev-mode 1)))
.
有关更多信息,请参阅有关 abbrev-mode 的 emacs wiki。
C-x 8 RET
,如上面@Daimrod 所述,适合一次性插入。
如果要绑定键以插入给定的 Unicode 字符: Load library ucs-cmds.el
,然后使用C-1 C-x 8 RET
. 这将插入您选择的字符,并创建一个具有相同名称的命令,您可以将其绑定到一个键。
例如,C-1 C-x 8 RET GREEK SMALL LETTER LAMBDA RET
定义 command greek-small-letter-lambda
,它在调用时插入该字符。
您可以使用宏一次创建多个这样的命令ucsc-make-commands
,也可以从ucs-cmds.el
. 例如,要为每个希腊字母创建单独的命令,只需执行以下操作:
(ucsc-make-commands "^greek [a-z]+ letter")
然后你可以绑定,比如说,命令greek-small-letter-beta
或C-c b
任何东西:
(global-set-key (kbd "C-c b") 'greek-small-letter-beta)
Rasmus 的表弟对非 TeX/LaTeX 需求的回答:
M-x set-input-method RET C-\ greek RET
or
C-x RET C-\ greek RET
或者
M-x set-input-method RET C-\ greek-babel RET
or
C-x RET C-\ greek-babel RET
这些中的任何一个都为您提供输入方法,例如键入单个击键,“a”只是为您提供一个 alpha (α),“b”为您提供一个 beta (β) 等等。
之后,您只需输入
C-\
快速从默认输入法切换到希腊语输入法。很方便。
但你必须注意:键并不总是与声音相匹配。例如,输入 hello 会得到 ηελλο。这是因为他们把“h”键变成了希腊语 eta (η),仅仅是因为 η 看起来像一个 h,而且大写的希腊语 eta (H) 与我们的“H”相同,尽管它发音不同。
greek-babel 输入法相对于希腊语的优势将主要被那些使用更高级/复杂的 Attic Greek 的人所欣赏,它使用了很多口音。(Attic 在柏拉图时代约公元前 400 年在雅典使用,尽管重音和小写字母是在几个世纪后添加的。)您可以按两个键 < o 并得到 ὁ。后撇号是“h”音,称为“粗呼吸”——因此ὁ发音为“ho”。口音非常简单和快速。您可以在同一个字符上组合重音。例如,按三个键 > ' a 你会得到ἄ。如果您不需要重音符号,只需使用希腊语输入法。
使用 greek 和 greek-babel 输入法,您还可以点击 Ch C-\ 以获取有关输入法的帮助缓冲区,其中包括一个可爱的表格,其中包含所有可能的击键组合供您使用。(Cx o 移动到下一个窗口,因此您可以进入该信息窗口并向下滚动..)
TeX 输入法通常非常适合输入符号,但是如果您以任何频率输入它们(例如,如果您正在使用某种函数式编程语言输入),每次您想要插入时λ
,它很快就会变成拖累输入\lambda
一个希腊字母。
另一方面,希腊语输入法可以有效地处理希腊字母,并且是一个干净的解决方案,因为它利用了 Emacs 的内置希腊语支持,但它作为默认输入法并不是很有用。
您可以像这样结合两种方法的好处(放在您的 Emacs 初始化配置中的某个位置):
(progn
;; conveniently enter math and greek symbols
;; leverage built-in input methods support in emacs to enter greek letters
;; by using the prefix ",."
;; adapted from https://emacs.stackexchange.com/a/53810
(set-input-method "greek")
(setq greek-map (quail-map))
;; add a translation rule to the TeX input method to delegate to
;; the greek input method
(set-input-method "TeX")
(quail-defrule ",." greek-map)
;; set default input method to TeX so that it can be activated
;; with C-\, e.g. to enter math or other symbols in general
(setq default-input-method "TeX"))
这使用 TeX 输入法作为默认值,但在使用前缀时添加了一条规则以临时委托给希腊语输入法,.
。
例子:
,.a => α
,.l => λ
,.v => ω
\to => →
\circ = ∘
^2 => ²
_i => ᵢ
资料来源:
https://emacs.stackexchange.com/a/53810
https://stackoverflow.com/a/10197062/323874
要了解如何输入您已经在屏幕上某处看到的单个字符,您可以将该字符复制粘贴到某个 emacs 缓冲区/文件中,然后调用M-x describe-char
. 有了 α,它产生
[...] to input: type "C-x 8 RET 3b1" or "C-x 8 RET GREEK SMALL LETTER ALPHA" [...]
PS:重新你的个人资料,也试试['a'] * 28
在 Spacemacs
M-m i u
这使您可以按名称搜索所需的符号。