所以这里是我刚刚找到的解决方案:制作TeX输入法的个性化副本,删除所有不需要的条目。然后使用时 M-x set-input-method ,选择个性化版本而不是 TeX 。
M-x set-input-method
TeX
我本来会尝试过这个,但内置的文档 set-input-mode 并且它没有为我找到它的输入方法的实际来源提供足够的指导。只有在对SO进行了另一次搜索后才发现: Emacs:无法激活输入法 我能够获得足够的信息来自己完成这项工作。
set-input-mode
细节:
在Emacs中,打开 /usr/share/emacs/22.1/leim/leim-list.el 并找到要自定义的输入法的条目。该条目将类似于以下形式:
/usr/share/emacs/22.1/leim/leim-list.el
(register-input-method "TeX" "UTF-8" 'quail-use-package "\\" "LaTeX-like input method for many characters." "quail/latin-ltx")
请注意上面表单中最后一个元素中引用的文件名前缀。找到相应的Elisp源文件;在这种情况下,它是文件的相对路径 quail/latin-ltx.el[.gz] 。在Emacs中打开该文件,然后检查出来;它应该具有方法重映射的条目,包括期望和不期望的条目。
quail/latin-ltx.el[.gz]
在其他Emacs自定义项中制作该Elisp源文件的用户本地副本。在Emacs中打开该本地副本。
在您的本地副本中,找到 (quail-define-package ...) 表单在文件中,并更改包的名称;我用了 FSK-TeX 作为我的新名字,如下:
(quail-define-package ...)
FSK-TeX
(quail-define-package "FSK-TeX" "UTF-8" "\\" t ;; <-- The first argument here is the important bit to change. "LaTeX-like input method for many characters but not as many as you might think. ...)
浏览本地副本,并删除所有不需要的映射的S表达式。
在.emacs配置文件中,使用类似于您查看时看到的表单注册自定义输入法 leim-list.el 在第1步中:
leim-list.el
(register-input-method "FSK-TeX" "UTF-8" 'quail-use-package "\\" "FSK-customized LaTeX-like input method for many characters." "~/ConfigFiles/Elisp/leim/latin-ltx")
重新启动Emacs并测试新的输入法;在我的情况下,通过做 M-x set-input-method FSK-TeX 打字 一个 _ 0 ,并确认 a_0 显示在缓冲区中。
M-x set-input-method FSK-TeX
a_0
因此,至少有一个答案在安装完成后不如问题中列出的一些解决方法(并且事实证明,在Emacs 22手册中也正式记录,作为切断输入法处理的方法) )。
但是,我对这个解决方案并不满意,因为我更愿意继承TeX模式的未来变化,而且只需要我的 .emacs 启动时删除不需要的条目。
.emacs
所以我会等着看其他人是否提出了比这更好的答案。
该 邪恶 用于类似vim的模态键绑定的插件允许映射两个后续的按键 _ 插入单个的关键 _ 字符:
_
(set-input-method 'TeX) (define-key evil-insert-state-local-map (kbd "_ _") (lambda () (interactive) (insert "_"))) (define-key evil-insert-state-local-map (kbd "^ ^") (lambda () (interactive) (insert "^")))
什么时候 _ 然后 1 我们得到了压力 鈧乗r 和以前一样
1
鈧乗r
什么时候 _ 然后 _ 我们得到了压力 _ 。
类似的 ^ 。
^
我自己没有测试过,但这似乎是你正在寻找的东西:
“如何在emacs的TeX模式下禁用下划线下标” - 资源
博客的作者: (setq font-lock-maximum-decoration nil) (从最大值)
(setq font-lock-maximum-decoration nil)
提到评论:
(eval-after-load "tex-mode" '(fset 'tex-font-lock-subscript 'ignore))