2009-03-27 4 views
11

Кто-нибудь знает, как заставить vim конвертировать html-объекты математических символов в математические символы?Математические символы в vim

Например:

& пе; становится ≠

& есть4; становится & there4;

здесь таблица символов HTML сущностей http://barzilai.org/math_sym.htm


Обновлено: Solved, bignose came through with the solution.

используя: орграфы функциональности Vim. с кодировкой символов Unicode,

см «: помочь орграфы» для документации

Я еще ищу моноширинный шрифт Unicode, так что делает полностью, но с дополнительными пространствами, он прекрасно работает.

Для отображения математических символов UTF-8 должна быть кодировкой и шрифтом, который отображает эти символы.

Я добавил следующие файлы конфигурации vim.

создан пользовательский файл: 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 

диграфы отлично работают, поскольку bignose, указанный ниже, является следующим: он работает

в режиме вставки: нажмите Ctrl + K следует:

& there4; is S *

≠ есть!=

∑ является + Z

≡ является = 3

⇐ является < =

⇒ является =>

⇔ является ==

& FORALL; является FA

∃ является TE

∋ есть -)

смотри: орграфы для полного списка * обратите внимание, если вы видите только половину экрана стоит вы кодировки символов не юникод, юникод накройте несколько экранов, введите: set encoding = utf-8 для переключения на utf-8.

Таблица в приведенной выше ссылке содержит номера символов, которые вам нужны, чтобы найти сочетания клавиш, 8756 is & there4; например

ответ

18

Вы хотите какие Vim называет «орграфы»: прочитайте :help digraphs, чтобы увидеть, как они используются, и :digraphs перечислить определенные из них в вашем Vim.

Резюме: в режиме вставки, нажмите Ctrl + K (который вызывает Вим для отображения выделенного ?, ожидая дальнейшего ввода), то определенные два символа орграфа. Затем Vim заменяет введенный вами символ. Например. Ctrl + K, !, = производит «≠».

+0

Удивительно, это шаг в правильном направлении, теперь мне просто нужно переключиться на Unicode, чтобы орграфы существовали для математических символов Unicode. –

2

Я не уверен, что библиотеки существуют, чтобы сделать это в чистом vimscript, однако, ВИМ действительно позволяет вставлять Python и Python имеет BeautifulSoup, который может обрабатывать converting html entities to unicode:

У меня нет поддержки питона включена на мой Vim, так что мне пришлось довольствоваться писать внешний скрипт, 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) 

(FYI, я не знаю, питона, так что даже если это работает, это вероятно, довольно уродливый)

Вы можете использовать его в Vim, выбрав линии с субъектами вы хотите преобразовать в визуальном режиме, и передавая их в сценарий таким образом:

:'<,'>!python soup.py 

Например, если мой курсор находился на линии чтения

&there4; i &ne; 10 

И я ударил

!!python soup.py<Enter> 

было бы преобразовать его в

∴ i ≠ 10 
Смежные вопросы