vimtex/README.md
2016-09-22 08:38:51 +02:00

5.3 KiB

vimtex

vimtex is a Vim plugin that provides support for writing LaTeX documents. It is based on LaTeX-Box and it shares a similar goal: to provide a simple and lightweight LaTeX plugin. It has been rewritten from scratch to provide a more modern and modular code base. See here for some more comments on the difference between vimtex and other LaTeX plugins for Vim.

Build Status Donate

Features

Below is a list of features offered by vimtex. The features are accessible as both commands and mappings. The mappings generally start with <localleader>l, but if desired one can disable default mappings to define custom mappings. All features are enabled by default, but each feature may be disabled if desired.

  • Document compilation with latexmk
  • Compilation of selected part of document
  • Support for several PDF viewers with forward search
  • Completion of citations, labels, and file names for figures
  • Document navigation through
    • table of content
    • table of labels
  • Word count (through texcount)
  • Motions
    • Move between sections with [[, [], ][, ]]
    • Move between matching delimiters with %
  • Text objects
    • ic ac Commands
    • id ad Delimiters
    • ie ae LaTeX environments
    • i$ a$ Inline math structures
  • Other mappings
    • Delete the surrounding command or environment with dsc/dse/ds$
    • Change the surrounding command or environment with csc/cse/cs$
    • Toggle starred environment with tse
    • Toggle between e.g. () and \left(\right) with tsd
    • Close the current environment/delimiter in insert mode with ]]
    • Insert new command with <F7>
    • Convenient insert mode mappings for faster typing of e.g. maths
  • Improved folding (:h 'foldexpr')
  • Improved indentation (:h 'indentexpr')
  • Improved syntax highlighting
    • Highlight matching delimiters
    • Support for biblatex/natbib package
    • Support for cleveref package
    • Support for listings package
    • Support for minted package
    • Support for dot2tex with nested syntax highlighting
  • Support for multi-file project packages

See the documentation for a thorough introduction to vimtex (e.g. :h vimtex).

Installation

If you use vim-plug, then add the following line to your vimrc file:

Plug 'lervag/vimtex'

Or use some other plugin manager:

Alternatives

The following are some alternative LaTeX plugins for Vim:

  • LaTeX-Box

    vimtex currently has most of the features of LaTeX-Box, as well as some additional ones. See here for a relatively complete list of features.

    One particular feature that LaTeX-Box has but vimtex misses, is the ability to do single-shot compilation with callback. This functionality was removed because it adds a lot of complexity for relatively little gain (IMHO).

    Note: LaTeX-Box is included with vim-polyglot. Some users are not quite aware of this and end up trying vimtex with LaTeX-Box enabled. This will not work --- please disable LaTeX-Box first!

  • LaTeX-Suite

    The main difference between vimtex and LaTeX-Suite (aka vim-latex) is probably that vimtex does not try to implement a full fledged IDE for LaTeX inside Vim. E.g.:

    • vimtex does not provide a full snippet feature, because this is better handled by UltiSnips or neosnippet or similar snippet engines.
    • vimtex builds upon Vim principles: It provides text objects for environments, inline math, it provides motions for sections and paragraphs
    • vimtex uses latexmk for compilation with a callback feature to get instant feedback on compilation errors
    • vimtex is very modular: if you don't like a feature, you can turn it off.
  • AutomaticTexPlugin

  • vim-latex-live-preview

For more alternatives and more information and discussions regarding LaTeX plugins for Vim, see: