2016-11-03 1 views
0

Есть ли хороший способ добавления пользовательских латексных шаблонов в vim? В texmaker у меня есть shortcut shift + F1 и что в то время как нажато пишет все \includepackage{} Использую.Латексные шаблоны в vim

Ну, теперь я думаю о двух приближенных способов:

  1. При создании нового файла .tex, я могу импортировать текст из скелета. Но есть, но. У меня есть разные типы документов, которые я пишу, и мне не нужно импортировать все, потому что таким образом мне нужно будет изменить часть импортированного текста.

  2. Определите свои собственные команды в vim. Но есть и но. Мне не нужны эти команды в каждом типе файлов, но только в файлах .tex, а также удобнее нажимать shift + F1 вместо ввода команды.

ответ

2

Там существуют

  • фрагмент кода плагинов, где вы можете выбрать, который скелет вы хотите расширить в явном виде. т. е. никакие расширения не будут инициированы для новых файлов.
  • плагины расширителя шаблонов, которые автоматически расширяют новые файлы. Среди них некоторые плагины могут обнаружить текущую ситуацию или спросить пользователя, который должен использовать точный скелет.
  • и некоторые плагины, которые делают оба.

Я поддерживал fork of mu-template уже много лет. Он относится к обоим категориям. Его синтаксис сильно отличается от snipmate & co, и его система замещения более навязчива. Однако, в отличие от других решений, он позволяет включать динамически (переопределяемые) скелеты. Это означает, что вы можете иметь скелет tex.template, который спросит вас (конечного пользователя), какой тип файла LaTeX вы хотите создать (статья, книга, слайды, новый раздел и т. Д.) И включить связанный и специализированный скелет ,

Если вы посмотрите на default LaTeX skeleton, вы увидите, что он спрашивает конечного пользователя о том, какой файл создается - этот файл довольно плох, поскольку я редко пишу новый документ LaTeX, я никогда не брал чтобы улучшить его. Вы увидите пример динамической скелетной диспетчеризации в vim skeleton file - точный тип скрипта выводится автоматически на этот раз.

0

С вашим вторым вариантом, вы можете ограничить ваш сдвиг + F1 связывания с .tex файлов.

autocmd BufEnter *.tex noremap <S-F1> ... 
autocmd! BufLeave *.tex uncap <S-F1> 
+1

Eew. Просто поместите 'nnoremap ....' в '$ HOME/vim/syntax/tex.vim' (или поместите его в' autocmd FileType tex', если вы не хотите переместить его из '.vimrc'). С '', нет необходимости в уродливом сопоставлении и разметке. – Amadan

+0

Прохладный, это намного приятнее. – chepner

Смежные вопросы