Git Product home page Git Product logo

vimtex's Introduction

VimTeX

VimTeX is a modern Vim and Neovim filetype and syntax plugin for LaTeX files.

Gitter CI tests Donate

Table of contents

Requirements

VimTeX requires Vim version 8.0.1453 or Neovim version 0.4.3. The requirements were updated in July 2020 after the release of VimTeX 1.0. If you are stuck on older versions of Vim or Neovim, then you should not use the most recent version of VimTeX, but instead remain at the v1.0 tag.

Some features require external tools. For example, the default compiler backend relies on latexmk. Users are encouraged to read the requirements section in the documentation (:h vimtex-requirements).

Installation

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

Plug 'lervag/vimtex'

Or use some other plugin manager:

If you use the new package feature in Vim, please note the following:

  • Make sure to read and understand the package feature: :help package!
  • Use the /pack/foo/start subdirectory to make sure the filetype plugin is automatically loaded for the tex filetypes.
  • Helptags are not generated automatically. Run :helptags to generate them.
  • Please note that by default Vim puts custom /start/ plugin directories at the end of the &runtimepath. This means the built in filetype plugin is loaded, which prevents VimTeX from loading. See #1413 for two suggested solutions to this. To see which scripts are loaded and in which order, use :scriptnames.
  • For more information on how to use the Vim native package solution, see here and here.

Quick Start

The following is a simple guide for how to use VimTeX. It only displays the most basic features. Users are strongly encouraged to read or at least skim through the documentation to learn about the different features and possibilities provided by VimTeX (see :h vimtex).

Quick start gif

Advanced users and potential developers may also be interested in reading the supplementary documents:

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, latexrun, tectonic, or arara
  • LaTeX log parsing for quickfix entries using
  • Compilation of selected part of document
  • Support for several PDF viewers with forward search
  • Completion of
    • citations
    • labels
    • commands
    • file names for figures, input/include, includepdf, includestandalone
    • glossary entries
    • package and documentclass names based on available .sty and .cls files
  • Document navigation through
    • table of content
    • table of labels
    • proper settings for 'include', 'includexpr', 'suffixesadd' and 'define', which among other things
      • allow :h include-search and :h definition-search
      • give enhanced gf command
  • Easy access to (online) documentation of packages
  • Word count (through texcount)
  • Motions
    • Move between section boundaries with [[, [], ][, and ]]
    • Move between environment boundaries with [m, [M, ]m, and ]M
    • Move between math environment boundaries with [n, [N, ]n, and ]N
    • Move between frame environment boundaries with [r, [R, ]r, and ]R
    • Move between comment boundaries with [* and ]*
    • Move between matching delimiters with %
  • Text objects
    • ic ac Commands
    • id ad Delimiters
    • ie ae LaTeX environments
    • i$ a$ Inline math structures
    • iP aP Sections
    • im am Items
  • Other mappings
    • Delete the surrounding command, environment or delimiter with dsc/dse/ds$/dsd
    • Change the surrounding command, environment or delimiter with csc/cse/cs$/csd
    • Toggle starred command or environment with tsc/tse
    • Toggle between e.g. () and \left(\right) with tsd
    • Toggle (inline) fractions with tsf
    • 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
    • Context menu on citations (e.g. \cite{...}) mapped to <cr>
  • Improved folding (:h 'foldexpr')
  • Improved indentation (:h 'indentexpr')
  • Syntax highlighting
    • A consistent core syntax specification
    • General syntax highlighting for several popular LaTeX packages
    • Nested syntax highlighting for several popular LaTeX packages
    • Highlight matching delimiters
  • Support for multi-file project packages

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

Other relevant plugins

Even though VimTeX provides a lot of nice features for working with LaTeX documents, there are several features that are better served by other, dedicated plugins. For a more detailed listing of these, please see :help vimtex-non-features.

Linting and syntax checking

Snippets and templates

Tag navigation

Alternatives

The following are some alternative LaTeX plugins for Vim:

  • 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, latexrun, tectonic or arara 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.
  • 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).

  • AutomaticTexPlugin

  • vim-latex-live-preview

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

vimtex's People

Contributors

144026 avatar 927589452 avatar andymass avatar bk90 avatar camilstaps avatar doronbehar avatar filbranden avatar greencourt avatar j1-lee avatar jipolanco avatar karlmoritz avatar kiryph avatar konfekt avatar languitar avatar lervag avatar manu-mannattil avatar matze-dd avatar mbrunnen avatar mcorah avatar micbou avatar patnr avatar prataffel avatar psvenk avatar rsekman avatar shun095 avatar tom-anders avatar tornaxo7 avatar uinput avatar vyasr avatar znculee avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.