Làm cách nào tôi có thể tra cứu các biểu tượng LaTeX trong Vim?


12

Tôi có thể tích hợp một số hình thức hoàn thành biểu tượng cho Vim không? Các trình soạn thảo TeX chuyên dụng như TeXMaker cung cấp danh sách các ký hiệu để hoàn thành (ví dụ: \alhiển thị danh sách có \alpha, \lahiển thị \lambda\langle).

Xin lưu ý rằng TeX có một số khá lớn các biểu tượng, vì vậy đề nghị liên quan đến bản đồ thủ công \alđến \alphasẽ là vô ích.

Các plugin liên quan tôi có:

  • SuperTab với let g:SuperTabDefaultCompletionType="context"set omnifunc=syntaxcomplete#Complete
  • Hộp LaTeX

Nếu có vấn đề, tôi sử dụng XeLaTeX để biên dịch.

Liên quan:


Bổ sung cho điều này, sẽ làm mất hiệu lực khi bạn biết cách vẽ một nhân vật nhưng bạn không nhớ tên của lệnh.
Gilles 'SO- ngừng trở thành ác quỷ'

Tôi dự định thêm một tính năng như vậy vào vimtex , dựa trên việc hoàn thành từ điển như được sử dụng chẳng hạn latex-suite. vimtexlà một plugin tương đối mới và dựa trên LaTeX-Box, vì vậy nó sẽ cảm thấy hơi quen thuộc.
Karl Yngve Lervåg

@ KarlYngveLervåg Tôi đã chuyển sang vimtex gần đây. Bạn đã nhận được xung quanh để thêm tính năng này? Sau đó tôi có thể nuke từ điển, và có lẽ bạn có thể đăng bài bằng cách sử dụng vimtex như một câu trả lời.
muru

Đúng. Tôi khuyên bạn nên sử dụng snippetscho các bản mở rộng phức tạp, nhưng đối với những bản đơn giản, bạn có thể xem :h vimtex-imapsphần mô tả về tính năng được triển khai trong vimtex.
Karl Yngve Lervåg

Câu trả lời:


9

Để mở rộng các lệnh trong LaTeX, tôi sử dụng một từ điển được sao chép từ latex-suite (chi tiết, cái này ) và đặt nó vào ~/.vim/dictionariesrồi sử dụng

autocmd FileType * exec("setlocal dictionary+=".$HOME."/.vim/dictionaries/".expand('<amatch>'))
set completeopt=menuone,longest,preview
set complete+=k

Ý tưởng từ đây . Tôi sử dụng nó với supertab; tệp từ điển không thực sự hoàn chỉnh (có \alphanhưng không \langle) nhưng đó sẽ là vấn đề hoàn thành nó ...

Một tùy chọn để thêm các biểu tượng sẽ là phân tích cú pháp (không phức tạp --- chỉ cần một chút phép thuật shell sẽ làm điều đó) cơ sở dữ liệu giải mã . Ví dụ: người ta có thể sử dụng:

{ curl -sL https://raw.githubusercontent.com/kirel/detexify/master/lib/latex/symbols.yaml |
   grep -Po '(?<=\\)[[:alpha:]]{2,}';
   curl -sL https://raw.githubusercontent.com/gerw/vim-latex-suite/master/ftplugin/latex-suite/dictionaries/dictionary
} | sort -u | tee ~/.vim/dictionaries/tex

Tôi biết rằng @muru sẽ không cưỡng lại việc tìm đúng kịch bản! Btw, sẽ tốt hơn nếu thêm từ khóa từ từ điển latex-suite ...
Rmano

1
Làm xong. Nó đã thêm hơn 600 từ vào danh sách từ bỏ. :)
muru

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.