Typy plików vim i TeX: plaintex vs. tex


24

Otwieram .texpliki w Vimie, ale niektóre pliki są rozpoznawane jako, filetype=plaintexa inne jako filetype=tex. Dlaczego to? Jaki jest wyzwalacz, który rozpoznaje plik jako tex, który ma wyróżnienie, którego chcę?

Odpowiedzi:


24

Dlaczego niektóre .texpliki są otwierane w Vim as, filetype=plaintexa inne as filetype=tex? Ponieważ .texw tym przypadku używane jest to samo rozszerzenie dla wielu rodzajów plików, „Vim próbuje zgadnąć, jaki to plik”, zgodnie z dokumentacją zastępowania typów plików Vim .

Sekcja wtyczki ft-tex w dokumentacji typu pliku Vima zawiera listę reguł używanych przez Vima ( wersje 7 i nowsze ) w celu ustalenia, który typ pliku należy zastosować dla .texplików:

  1. Jeśli pierwsza linia pliku to %&<format>gdzie <format>może być plaintex, contextlub tex, następnie typ pliku jest ustawiony na zwykły tex kontekście lub lateks, odpowiednio.
  2. Jeśli w pierwszym wierszu nie ma polecenia oznaczenia formatu, Vim przeszukuje plik w poszukiwaniu słów kluczowych, aby ustalić, czy typ pliku powinien być ustawiony na context(ConTeXt) czy tex(LaTeX).
  3. Jeśli nie zostaną znalezione żadne słowa kluczowe, typ pliku jest ustawiony na plaintex(zwykły TeX).

Ostatnia zasada jest ważna. Jeśli utworzysz pusty .texplik za pomocą polecenia podobnego touch myfile.tex, to po otwarciu go w Vimie typ pliku będzie domyślnie plaintexustawiony na , ponieważ plik jest pusty.

Możesz zmienić domyślne zachowanie, ustawiając zmienną globalną tex_flavorw swoim .vimrc:

  • let g:tex_flavor = "plain"
  • let g:tex_flavor = "context"
  • let g:tex_flavor = "latex"

13

Czy używasz wtyczki pakietu LaTeX? Jeśli tak, to prawdopodobnie chcesz

let g:tex_flavor='latex'

w twoim .vimrc.


Nie ma to nic wspólnego z wtyczką pakietu LaTeX. Zobacz odpowiedź Matthew Rankin lub :h ft-tex-plugin.
Hotschke

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.