Як я можу шукати символи LaTeX у Vim?


12

Чи можу я інтегрувати якусь форму заповнення символу до Vim? Виділені редактори TeX, такі як TeXMaker, надають список символів для завершення (наприклад, \alпоказує список із \alpha, \laпоказує \lambdaта \langle).

Зверніть увагу , що TeX має досить велику кількість символів, тому пропозиції , пов'язані з ручним відображенням \alдля \alphaбув би марно.

У мене пов'язані плагіни:

  • SuperTab з let g:SuperTabDefaultCompletionType="context"і set omnifunc=syntaxcomplete#Complete
  • LaTeX-Box

Якщо це має значення, я використовую XeLaTeX для компіляції.

Пов'язані:


Доповненням до цього є розпізнавання, коли ви знаєте, як намалювати символ, але ви не пам'ятаєте ім'я команди.
Жил "ТАК - перестань бути злим"

Я планую додати таку функцію до vimtex , грунтуючись на завершенні словника, як використовується, наприклад latex-suite. vimtexє відносно новим плагіном і базується на LaTeX-Box, тому він повинен відчувати себе дещо знайомим.
Карл Інгве Лервег

@ KarlYngveLervåg Я нещодавно перейшов на vimtex. Чи доводилося вам додавати цю функцію? Тоді я можу занурити словник, і, можливо, ви можете опублікувати, використовуючи vimtex як відповідь.
муру

Так. Я рекомендую використовувати snippetsдля складних розширень, але для простих ви можете переглянути :h vimtex-imapsопис функції, реалізованої в vimtex.
Карл Інгве Лервег

Відповіді:


9

Для розширення команд у LaTeX я використовую словник, скопійований з латексного набору (докладно, цей ) та вкладаю його ~/.vim/dictionariesта використовуючи

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

Ідея звідси . Я використовую його з supertab; файл словника насправді не повний (він є, \alphaале ні \langle), але це було б справою його доповнення ...

Одним із варіантів додавання символів буде розбір (не складний --- лише трохи магії оболонки це зробить) база даних detexify . Наприклад, можна використовувати:

{ 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

Я знав, що @muru не буде протистояти пошуку правильного сценарію! До речі, було б краще додати також ключові слова із словника латексного набору ...
Rmano

1
Зроблено. Це додало 600+ слів до списку від detexify. :)
muru

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.