2009-03-27 23 views
11

¿Alguien sabe cómo convertir vim las entidades html de los símbolos matemáticos en los caracteres matemáticos?Símbolos matemáticos en vim

Por ejemplo:

& ne; se convierte en ≠

& there4; se convierte en y allí4;

aquí es una tabla con las entidades símbolo html http://barzilai.org/math_sym.htm


Actualizado: Solved, bignose came through with the solution.

usando la funcionalidad: dígrafos de Vim. con una codificación de caracteres de Unicode,

ver ': Ayuda dígrafos de Documentación

Todavía estoy en busca de una fuente de espacio sencillo Unicode por lo que hace por completo, pero con espacios adicionales que funciona muy bien.

Para ver los caracteres matemáticos UTF-8 tiene que ser la codificación y una fuente que mostrará esos caracteres.

Agregué lo siguiente a mis archivos de configuración de vim.

archivo personalizado creado: mathdoc.vim en la sintaxis/

" 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 

he añadido a este filetype para establecer esto para mi propia extensión personalizada .txtmt

au BufNewFile,BufRead *.txtmt setf mathdoc 

pero se podría llamar alternativamente con este el archivo está abierto:

:set ft=mathdoc 

digraphs funciona muy bien como bignose se especifica a continuación aquí es cómo funciona

en modo de inserción: pulse control + k seguidos por:

y there4; es S *

≠ es!=

∑ es + Z

≡ es = 3

⇐ es < =

⇒ es =>

⇔ es ==

y forall; FA es

∃ es TE

∋ es -)

vea: dígrafos para la lista completa * Nota Si sólo se ve la mitad de las pantallas de un vale que estés codificación de caracteres no es Unicode, los caracteres Unicode cubre varias pantallas, escribe: set encoding = utf-8 para cambiar a utf-8.

La tabla en el enlace de arriba tiene los números para los caracteres que necesitará para encontrar los atajos de teclado, 8756 es & there4; por ejemplo

Respuesta

18

¿Quieres qué Vim llama “dígrafos”: leen :help digraphs para ver cómo se utilizan, y :digraphs a la lista de los definidos queridos en su Vim.

Resumen: en el modo de inserción, pulse Ctrl + K (que causa Vim para mostrar una resaltado ?, en espera de entrada adicional), entonces el definido dos caracteres del dígrafo. Vim luego reemplaza lo que escribiste con el personaje resultante definido. P.ej. Ctrl + K, !, = produce '≠'.

+0

Impresionante, eso es un paso en la dirección correcta, ahora solo necesito cambiar a Unicode para que los dágrafos existan para los caracteres matemáticos Unicode. –

2

No estoy seguro de que existen bibliotecas de hacer esto en Vimscript puro, sin embargo, vim sí permite incrustar Python y Python tiene BeautifulSoup que puede manejar converting html entities to unicode:

no tengo apoyo pitón habilitado en mi vim, por lo que tenía que conformarse con escribir un script externo, soup.py, que convierte las entidades hTML a 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) 

(FYI, no sé pitón, así que a pesar de que funciona, es probablemente bastante feo)

Se puede utilizar en vim mediante la selección de las líneas con las entidades que desea convertir en el modo visual, y pasarlos a la secuencia de comandos de esta manera:

:'<,'>!python soup.py 

Por ejemplo, si mi cursor estaba en una línea de lectura

&there4; i &ne; 10 

Y golpeo

!!python soup.py<Enter> 

sería convertirlo en

∴ i ≠ 10 
Cuestiones relacionadas