2009-03-27 8 views
11

Est-ce que quelqu'un sait comment convertir vim les entités html des symboles mathématiques en caractères mathématiques?Symboles mathématiques dans vim

Par exemple:

& ne; devient ≠

& il4; devient & there4;

ici est une table avec les entités html symbole http://barzilai.org/math_sym.htm


Mise à jour: Solved, bignose came through with the solution.

en utilisant les fonctions: digraphs de Vim. avec un codage de caractères Unicode,

voir « : aider digraphs » pour la documentation

Je Toujours à la recherche d'une police Unicode il monospace rend tout à fait, mais avec des espaces supplémentaires, il fonctionne très bien.

Afin de voir les caractères mathématiques UTF-8 doit être le codage et une police qui affichera ces caractères.

J'ai ajouté ce qui suit à mes fichiers de configuration vim.

fichier créé

personnalisé: mathdoc.vim dans la syntaxe/

" 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 

Je a ajouté à filetype de mettre cela pour ma propre extension personnalisée .txtmt

au BufNewFile,BufRead *.txtmt setf mathdoc 

mais vous pouvez alternativement appeler cela avec le fichier est ouvert:

:set ft=mathdoc 

digrammes fonctionne très bien comme le bignose spécifié ci-dessous est comment cela fonctionne

en mode d'insertion: appuyez sur Ctrl + k suivie par:

& There4; est S *

≠ est!=

∑ est + Z

≡ est = 3

⇐ est < =

⇒ est =>

⇔ est ==

& forall; est FA

∃ est TE

∋ est -)

voir: digraphs pour la liste complète * Notez que si vous voyez seulement la moitié des écrans valeur que vous êtes le codage des caractères non Unicode, les caractères unicode couvrir plusieurs écrans, tapez: set encoding = utf-8 pour passer à utf-8.

La table dans le lien ci-dessus a les numéros pour les caractères dont vous aurez besoin pour trouver les raccourcis clavier, 8756 est & there4; par exemple

Répondre

18

Vous voulez ce que les appels « Vim digraphs »: lire :help digraphs pour voir comment ils sont utilisés et :digraphs à la liste ceux définis dans votre Vim.

Résumé: en mode d'insertion, appuyez sur Ctrl + K (qui provoque Vim pour afficher une surbrillance ?, en attente d'entrée supplémentaire), puis les deux définies caractères du digramme. Vim remplace alors ce que vous avez tapé avec le caractère résultant défini. Par exemple. Ctrl + K, !, = produit '≠'.

+0

Génial, c'est un pas dans la bonne direction, maintenant je dois juste passer à Unicode afin que les digrammes existent pour les caractères mathématiques Unicode. –

2

Je ne suis pas sûr que les bibliothèques existent pour faire en vimscript pur, cependant, vim ne vous permettent d'intégrer Python et Python a BeautifulSoup qui peut gérer converting html entities to unicode:

Je ne prend pas en charge python activé sur mon vim, donc je devais contenter d'écrire un script externe, soup.py, qui convertit les entités 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) 

(pour votre information, je ne sais pas python, donc même si cela fonctionne, il est probablement très moche)

Vous pouvez l'utiliser dans vim en sélectionnant les lignes avec des entités que vous souhaitez convertir en mode visuel, et de les transmettre au script ainsi:

:'<,'>!python soup.py 

Par exemple, si mon curseur était sur une ligne de lecture

&there4; i &ne; 10 

Et je frappe

!!python soup.py<Enter> 

il convertirait à

∴ i ≠ 10 
Questions connexes