2009-03-27 6 views
11

Weiß jemand, wie vim die HTML-Einheiten von mathematischen Symbolen in die mathematischen Zeichen konvertieren lassen?Math Symbole in vim

Zum Beispiel:

& ne; wird ≠

& there4; wird & there4;

hier ist eine Tabelle mit dem Symbol HTML-Entities http://barzilai.org/math_sym.htm


Aktualisiert: Solved, bignose came through with the solution.

mit der: Digraphen-Funktionalität von Vim. mit einer Zeichencodierung von Unicode,

sehen ‚: help Digraphe‘ für die Dokumentation

Ich bin immer noch für eine Monospace-Unicode-Schriftart suchen, so dass es vollständig, aber mit zusätzlichen Leerzeichen macht es funktioniert super.

Um mathematische Zeichen zu sehen, muss UTF-8 die Kodierung und eine Schriftart sein, die diese Zeichen anzeigt.

Ich habe zu meinen vim-Konfigurationsdateien folgendes hinzugefügt.

erstellt benutzerdefinierte Datei: mathdoc.vim in der Syntax/

" 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 

ich das dies zu Dateityp hinzugefügt Set für meine eigene benutzerdefinierte Erweiterung .txtmt

au BufNewFile,BufRead *.txtmt setf mathdoc 

aber man kann dies abwechselnd ruft mit die Datei geöffnet:

:set ft=mathdoc 

digraps funktioniert gut wie bignose unten angegeben ist wie es funktioniert

im Einfügemodus: drücken Sie Strg + k gefolgt von:

& There4; ist S *

≠ ist!=

∑ ist + Z

≡ ist = 3

⇐ ist < =

⇒ ist =>

⇔ ist ==

& forall; FA ist

∃ ist TE

∋ ist -)

siehe: Digraphe für die vollständige Liste * Anmerkung, wenn Sie Wert von einer halben Bildschirme sehen sind Sie Zeichencodierung ist nicht Unicode, Unicode-Zeichen Bedecken Sie mehrere Bildschirme, geben Sie ein: set encoding = utf-8, um zu utf-8 zu wechseln.

Die Tabelle in dem obigen Link, um die Zahlen für die Charaktere haben, dass Sie die Tastenkombinationen finden müssen, 8756 ist & There4; zum Beispiel

Antwort

18

Sie wollen welchen Vim Anrufe „Digraphe“: :help digraphs lesen, um zu sehen, wie sie verwendet werden, und :digraphs die definierten diejenigen in Ihrem Vim aufzulisten.

Zusammenfassung: im Einfügemodus, drücken Ctrl + K (die Vim einen markierten ? anzuzeigen verursacht, für eine weitere Eingabe zu warten), dann die definierten zwei Zeichen der Digraph. Vim ersetzt dann das, was Sie mit dem definierten Ergebniszeichen eingegeben haben. Z.B. Ctrl +K, !, = produziert ‚≠‘.

+0

Ehrfürchtig, das ist ein Schritt in die richtige Richtung, jetzt muss ich nur zu Unicode wechseln, so dass die Digraphen für die Unicode-Zeichen existieren. –

2

Ich bin nicht sicher, dass Bibliotheken existieren diese in reiner vimscript zu tun, aber vim Sie erlaubt Python einbetten, und Python hat BeautifulSoup die converting html entities to unicode umgehen kann:

ich nicht Python Unterstützung habe aktiviert auf meinem vim, also musste ich für das Schreiben ein externes Skript regeln, soup.py, die hTML-Entities in UTF-8 konvertiert:

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

(FYI, ich weiß nicht, python, so dass, obwohl das funktioniert, ist es wahrscheinlich ziemlich hässlich)

Sie es in vim indem Sie die Linien mit Einheiten verwenden können Sie im visuellen Modus konvertieren wollen, und sie an das Skript vorbei thusly:

:'<,'>!python soup.py 

Zum Beispiel, wenn mein Cursor auf einer Zeile liest

&there4; i &ne; 10 

Und ich traf

!!python soup.py<Enter> 

es wäre es zu

konvertieren
∴ i ≠ 10