Skip to main content

A Vim-style LaTeX TUI editor.

Project description

txtr screenshot

A Vim-style LaTeX editor for the terminal.

txtr screenshot

Documentation | PyPI


txtr (aka texitor) is a terminal-based LaTeX editor built for speed. It combines Vim-style modal editing with snippets, completions, citations, compiler tooling, and a growing plugin system.

Under active development. Expect bugs :)

Installation

pip install texitor

In-depth installation instructions are in the docs - see txtr.benji.mom/installation for more details.

If you encouter an error regarding installing system wide packages, you may need to install with pipx or in a virtual environment.

Requires Python 3.11 or later.

Quick start

txtr file.tex

If the file does not exist, txtr creates it. On first run txtr seeds config, snippets, commands, and keybind overrides into ~/.config/txtr/.

Never used a Vim-style editor before? The bare minimum to get going is:

  • i enters Insert mode so you can type (this is how you can actually get text into the editor)
  • Esc takes you back to Normal mode
  • :w saves
  • :q quits
  • :wq saves and quits
  • ? opens the help menu

Inside txtr:

  • ? opens the help menu
  • : opens command mode
  • :snippets jumps straight to snippet help
  • :config show opens the config panel
  • :plugin list shows installed plugins

What even is LaTeX?

LaTeX is a typesetting system commonly used for academic writing, especially in fields like mathematics and physics. It allows you to write documents with complex formatting and is particularly good at handling equations, citations and references.

LaTeX is generaly quite long-winded to write by hand, which is exactly why txtr exists - to make LaTeX editing faster, more efficient and collate together all the utilities you may want into one single editor.

What ships with txtr

  • Vim-style modal editing for .tex files
  • LaTeX snippets and completions
  • citation autocomplete from .bib files
  • compiler commands, buildwatch, and PDF build workflows
  • built-in plugins:
    • wordcount - latex-aware word count
    • freeze - screenshot/export via the freeze CLI
    • zathura - external PDF open + SyncTeX forward search
  • installable user plugins on top of the built-ins
  • a full docs site with config, snippets, themes, and plugin guides

Built-in plugins ship with txtr, but they are still configured and enabled like normal plugins. The README is just the quick overview - the docs are the proper source of truth for setup and config.

IF YOU GET STUCK, READ THE DOCS! (click me)

Documentation

The full docs live at txtr.benji.mom.

Useful starting points:

Notes

  • requires Python 3.11+
  • compiler features expect tools like latexmk or pdflatex to be installed
  • system clipboard features rely on platform clipboard tools
  • some plugins rely on external tools too, for example freeze and zathura

Compatibility

  • Linux - fully supported and tested
  • MacOS - supported but not thoroughly tested
  • Windows - not currently supported, but WSL should work fine - txtr will run but do expect errors

If you would like to port txtr to Windows, please open an issue or PR on GitHub. I don't have access to a Windows machine but would be happy to review and merge contributions that add support.

Contributing

txtr is early-stage. If you find a bug or want to add something, open an issue or PR on GitHub.

tl;dr - just make a pr ...

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

texitor-2.2.1.tar.gz (81.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

texitor-2.2.1-py3-none-any.whl (95.8 kB view details)

Uploaded Python 3

File details

Details for the file texitor-2.2.1.tar.gz.

File metadata

  • Download URL: texitor-2.2.1.tar.gz
  • Upload date:
  • Size: 81.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for texitor-2.2.1.tar.gz
Algorithm Hash digest
SHA256 a266d73270003d58dc429f7a986dab0a36ceb2f06717409e9c281c11c79fa6d9
MD5 1b04526d91fc24914342a7fb6219b948
BLAKE2b-256 5bd3d680f2b737db4b45fd7bc62c311e87aa5853aa758de7a389a4457742ed1a

See more details on using hashes here.

File details

Details for the file texitor-2.2.1-py3-none-any.whl.

File metadata

  • Download URL: texitor-2.2.1-py3-none-any.whl
  • Upload date:
  • Size: 95.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for texitor-2.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2edaa765e159eff5de6986e8236f2281a195cbdf578ce3b58d72e82b6b288cc1
MD5 e1b9bf152eb56c409cb10a5d55e57353
BLAKE2b-256 73a1d02a6f58e97592393044a517893718ad73b9d7d46c83c8111b4c14478401

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page