vim中的数学符号

时间:2009-03-27 02:02:44

标签: math vim

有谁知道如何让vim将数学符号的html实体转换为数学字符?

例如:

&安培; NE;变成≠

&安培; there4;变成∴

这是一个带有符号html实体的表 http://barzilai.org/math_sym.htm

<小时/> 更新:Solved, bignose came through with the solution

使用Vim的digraphs功能。使用Unicode的字符编码,

参见':help digraphs'获取文档

我仍然在寻找一种等宽的Unicode字体,因此它可以完全呈现​​,但是有了额外的空间,它可以很好地工作。

为了查看数学字符,UTF-8必须是编码和显示这些字符的字体。

我在vim配置文件中添加了以下内容。

使用syntax /

创建自定义文件:mathdoc.vim
" set the encoding to be utf-8, requires gVim or a terminal capable of
" unicode see ':help Unicode' for details
set encoding=utf-8
" requires a font that has characters for the higher uniocode symbols
set guifont=MS\ Gothic

我将此添加到filetype,以便为我自己的自定义扩展名.txtmt

设置此项
au BufNewFile,BufRead *.txtmt   setf mathdoc

但你也可以打开文件打电话:

:set ft=mathdoc

digraphs效果很好,因为下面指出的bignose是如何工作的

在插入模式下: 按控制+ k后跟:

∴是S *

≠是!=

Σ是+ Z

≡是= 3

⇐是&lt; =

⇒是=&gt;

⇔是==

∀是FA

∃是TE

∋是 - )

请参阅:有关完整列表的有向图 *请注意,如果你只看到半个屏幕值得你,字符编码不是unicode,unicode字符覆盖几个屏幕,输入:set encoding = utf-8切换到utf-8。

上面链接中的表格中包含了查找键盘快捷键所需字符的数字,例如8756是<

2 个答案:

答案 0 :(得分:22)

你希望 Vim称之为“有向图”:阅读:help digraphs以查看它们的使用方式,并:digraphs列出Vim中已定义的内容。

总结:在插入模式下,按 Ctrl + K (这会导致Vim显示突出显示的?,等待进一步输入),然后定义有向图的两个字符。然后Vim用您定义的结果字符替换您键入的内容。例如。 Ctrl + K = 产生'≠'。

答案 1 :(得分:4)

我不确定在纯vimscript中存在这样做的库,但是,vim允许你嵌入Python,而Python有BeautifulSoup可以处理converting html entities to unicode

我没有在我的vim上启用python支持,所以我不得不考虑编写一个外部脚本soup.py,它将html实体转换为UTF-8:

# soup.py
from BeautifulSoup import BeautifulStoneSoup
import sys
input = sys.stdin.read()
output = str(BeautifulStoneSoup(input, convertEntities=BeautifulStoneSoup.HTML_ENTITIES))
sys.stdout.write(output)

(仅供参考,我不知道python,所以尽管有效,但它可能非常难看)

您可以通过选择包含实体的行在vim中使用它 你想在视觉模式下转换,并将它们传递给脚本:

:'<,'>!python soup.py

例如,如果我的光标在读取行

&there4; i &ne; 10

我点击了

!!python soup.py<Enter>

它会将其转换为

∴ i ≠ 10