2009-03-27 41 views
11

Có ai biết cách vim chuyển đổi các thực thể html của ký hiệu toán học thành các ký tự toán học không?Ký hiệu toán học trong vim

Ví dụ:

& ne; trở thành ≠

& there4; trở thành & có4;

đây là một bảng với các đối tượng biểu tượng html http://barzilai.org/math_sym.htm


Cập nhật: Solved, bignose came through with the solution.

sử dụng: chức năng digraphs của Vim. với một mã hóa ký tự Unicode,

thấy ': giúp chữ ghép' cho tài liệu

Tôi Vẫn đang tìm kiếm một monospace font Unicode để nó ám hoàn toàn nhưng với không gian thêm nó hoạt động tuyệt vời.

Để xem các ký tự toán học UTF-8 phải là mã hóa và phông chữ sẽ hiển thị các ký tự đó.

Tôi đã thêm phần sau vào tệp cấu hình vim của mình.

tập tin tùy chỉnh được tạo: mathdoc.vim trong cú pháp/

" 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 

tôi thêm này để filetype để thiết lập này cho phần mở rộng tùy chỉnh của riêng tôi .txtmt

au BufNewFile,BufRead *.txtmt setf mathdoc 

nhưng bạn luân phiên có thể gọi đây là với tệp mở:

:set ft=mathdoc 

các công cụ vẽ hoạt động tốt như bignose được chỉ định bên dưới đây là cách nó hoạt động

trong chế độ chèn: kiểm soát báo chí + k tiếp theo:

& there4; là S *

≠!=

∑ được + Z

≡ là = 3

⇐ là < =

⇒ là =>

⇔ là ==

& forall; là FA

∃ là TE

∋ được -)

see: chữ ghép cho danh sách đầy đủ * lưu ý nếu bạn chỉ nhìn thấy một nửa màn hình giá trị bạn mã hóa ký tự không phải là unicode, ký tự unicode bao gồm nhiều màn hình, gõ: set encoding = utf-8 để chuyển sang utf-8.

Bảng trong liên kết ở trên có các số cho các ký tự bạn cần tìm phím tắt, 8756 là & có4; ví dụ

Trả lời

18

Bạn muốn gì Vim cuộc gọi “chữ ghép”: đọc :help digraphs để xem cách họ đang sử dụng, và :digraphs vào danh sách những người được quy định tại Vim của bạn.

Tóm tắt: trong chế độ chèn, nhấn Ctrl + K (gây Vim để hiển thị một nhấn mạnh ?, chờ đợi đầu vào hơn nữa), thì định nghĩa hai nhân vật của digraph. Vim sau đó thay thế những gì bạn đã gõ với ký tự kết quả được xác định. Ví dụ. Ctrl + K, !, = sản xuất ‘≠’.

+0

Tuyệt vời, đó là một bước đi đúng hướng, bây giờ tôi chỉ cần chuyển sang Unicode để các ký tự tồn tại cho các ký tự toán Unicode. –

2

Tôi không chắc chắn rằng thư viện tồn tại để làm điều này trong vimscript tinh khiết, tuy nhiên, vim không cho phép bạn nhúng Python, và Python có BeautifulSoup mà có thể xử lý converting html entities to unicode:

Tôi không có hỗ trợ python kích hoạt trên vim của tôi, vì vậy tôi đã phải giải quyết để viết một kịch bản bên ngoài, soup.py, chuyển đổi đơn vị html sang 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, tôi không biết trăn, vì vậy mặc dù làm việc, đó là có lẽ khá xấu xí)

Bạn có thể sử dụng nó trong vim bằng cách chọn dòng với các đơn vị bạn muốn chuyển đổi trong chế độ hình ảnh, và chuyển chúng tới các kịch bản thusly:

:'<,'>!python soup.py 

Ví dụ, nếu con trỏ của tôi là trên một dòng đọc

&there4; i &ne; 10 

Và tôi nhấn

!!python soup.py<Enter> 

nó sẽ chuyển nó sang

∴ i ≠ 10 
Các vấn đề liên quan