2009-03-27 20 views
11

vimが数式記号のhtmlエンティティを数学文字に変換する方法を知っていますか?例えばvimの数学記号

& NE。 ≠

& there4;それになる。 Solved, bignose came through with the solution:ここ

は、シンボルのhtmlエンティティを更新 http://barzilai.org/math_sym.htm


を持つテーブルです。

Vimの:digraphs機能を使用します。 「:二重字を助ける」それは完全にレンダリングするので、私はまだ固定幅Unicodeフォントを探していますが、余分なスペースと、それは素晴らしい作品ドキュメント

のUnicodeの文字符号化、

を参照してくださいと。

数学文字を表示するには、UTF-8がエンコードとその文字を表示するフォントである必要があります。

私は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 

は私が

au BufNewFile,BufRead *.txtmt setf mathdoc 

.txtmt私自身のカスタム拡張のためにこれを設定するには、ファイルタイプするためにこれを追加/構文でmathdoc.vimいますが、交互でこれを呼び出すことができますファイルオープン:

:set ft=mathdoc 

digraphsは次のように指定されていますそれは挿入モードで

に動作します:続い プレスコントロール+ K:

&there4。はS *

≠です。=

がZ +は

≡ = 3

⇐は=

⇒ <は=>

⇔が

&FORALL ==

であるです。あるFA

∃は

∋はTE

されている - )

参照:完全なリストについては、有向グラフ *注あなただけであなたは文字エンコーディングしている価値が半分の画面を見ている場合ではないのUnicode、Unicode文字いくつかの画面をカバーするには、set encoding = utf-8と入力してutf-8に切り替えます。

上記のリンクの表には、キーボードショートカットを見つけるために必要な文字の番号があります.8756は&there4です。それらが使用されているかを確認するために:help digraphsを読んで、そして:digraphsはあなたのVimで定義されたものをリストする:例

答えて

18

のためにあなたはVimが「有向グラフ」呼んをしたいです。

要約:挿入モードで、(Vimはさらなる入力を待って、強調表示された?を表示させる)プレスCtrlキー + K、有向グラフの次に定義された2つの文字。 Vimは入力した内容を定義された結果の文字に置き換えます。例えば。 Ctrl + K,,=は '≠'を生成する。

+0

これは正しい方向の一歩ですが、Unicodeに切り替える必要があるので、Unicodeの数学文字のための有向グラフが存在するようにしてください。 –

2

私は図書館が純粋vimscriptでこれを行うために存在していることはよく分からない、しかし、Vimはあなたは、Pythonを埋め込むことができ、およびPythonはconverting html entities to unicodeを扱うことができるBeautifulSoupを持って行います。

私はPythonのサポートが有効になっていません。私のvimの上、私はUTF-8にHTMLエンティティを変換し、外部スクリプト、soup.py、書き込みのために解決しなければならなかった:(FYI、それはだ、私のpythonを知らないので、それが動作するにもかかわらず、

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

をおそらくかなり醜い)

あなたはビジュアルモードに変換したいエンティティ で線を選択し、thuslyスクリプトに渡すことにより、vimの中でそれを使用することができます:私のカーソルが

を読んライン上にあった場合、例えば、

:'<,'>!python soup.py 

&there4; i &ne; 10 

と私はそれが

に変換します

!!python soup.py<Enter> 

を打ちます

∴ i ≠ 10 
関連する問題