pnk*_*lix 13 emacs customization input
在Emacs的,而编辑的我自己的笔记文本文件(一个.txt文件,不是一个.tex文件),我使用的M-x set-input-method Ret TeX,为了方便地访问各种Unicode字符.因此,例如,键入\tospace会导致"→"插入到文本中,并且键入x^2会导致"x 2 "被插入,因为我使用的字体分别支持Unicode代码点0x2192和0x00B2.
该方法中的一个特殊处理字符是下划线键_.但是,我用于Emacs的字体似乎不支持各种下标字符的代码点,例如下标零(代码点0x2080),所以当我输入时_0,我得到的东西在我的输出中呈现为一个空白._0在这种情况下,我宁愿只有两个字符.
我可以得到_0由尴尬的击键序列_spacedel0,因为space在序列的中间按键导致的Emacs中止TeX的输入法.但这很尴尬.
所以,我的问题是:_当我使用TeX输入法时,如何在本地自定义我的Emacs以便不重新映射密钥?或者我如何创建一个TeX输入法的修改克隆(或扩展等),从它的魔力中省略下划线?
到目前为止我尝试过的事情:
describe-key了_; 但它self-insert-command就像许多其他文字字符一样受到限制.我确实看到了post-self-insert-hook那里,但我没有尝试过用它来破坏TeX输入法.到目前为止我没有尝试过的事情:
所以这里是我刚刚找到的解决方案:制作TeX输入法的个性化副本,删除所有不需要的条目.然后在使用时M-x set-input-method,选择个性化版本而不是TeX.
我本来会尝试过这个,但是内置的文档set-input-mode及其类似的东西并没有为我找到它的输入法的实际来源提供足够的指导.只有在对SO进行另一次搜索并找到它之后:Emacs:无法激活输入方法,我能够获得足够的信息来自行完成.
细节:
在Emacs中,打开/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")
Run Code Online (Sandbox Code Playgroud)请注意上面表单中最后一个元素中引用的文件名前缀.找到相应的Elisp源文件; 在这种情况下,它是文件的相对路径quail/latin-ltx.el[.gz].在Emacs中打开该文件,然后检查出来; 它应该具有方法重映射的条目,包括期望和不期望的条目.
在其他Emacs自定义项中制作该Elisp源文件的用户本地副本.在Emacs中打开该本地副本.
在本地副本中,找到(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.
...)
Run Code Online (Sandbox Code Playgroud)浏览本地副本,并删除所有不需要的映射的S表达式.
在.emacs配置文件中,使用类似于leim-list.el在步骤1中查看的表单注册自定义输入法:
(register-input-method
"FSK-TeX" "UTF-8" 'quail-use-package
"\\" "FSK-customized LaTeX-like input method for many characters."
"~/ConfigFiles/Elisp/leim/latin-ltx")
Run Code Online (Sandbox Code Playgroud)重新启动Emacs并测试新的输入法; 在我的情况下,通过执行M-x set-input-method FSK-TeX,键入a_0和确认a_0显示在缓冲区中.
因此,至少有一个答案在安装之后不如问题中列出的一些解决方法(并且事实证明,在Emacs 22手册中也正式记录,作为切断输入法处理的方法) ).
但是,我对这个解决方案并不满意,因为我更愿意继承未来对TeX模式的更改,并且只是.emacs在启动时删除了不需要的条目.
所以我会等着看其他人是否提出了比这更好的答案.
| 归档时间: |
|
| 查看次数: |
1572 次 |
| 最近记录: |