Parę słów wstępu
Dostosowanie Neovim do pisania w $\LaTeX$ nie jest trudne, ale gdy robi się to
pierwszy raz może zająć trochę czasu. W tym artykule pokaże jak przy pomocy
kilku dodatków zrobić pełnoprawne IDE z podglądem na żywo czy podpowiedziami,
a jako bonus nasze prace będzie pilnował git. Nie przejmuj się jeżeli nie
miałeś styczności z vimem postaram się wytłumaczyć wszystko w miarę
łopatologicznie.
Nie skupimy się tutaj na używaniu Neovim jako takiego (zapraszam do innego artykuł Wrowadzenie do vima ) ale na jego potężnej konfiguralności i użycia go do pracy z dystrybucją $\TeX$.
Jest do wyboru parę naprawdę fajnych wtyczek ułatwiających pracę z plikami
.tex są to między innymi: LaTeX-Suite
,
LaTeX-Box
czy
quicktex
… ja wybrałem
vimtex
. Na co dzień używam
Debiana
więc opis instalacji pakietów będą dotyczyły
tego właśnie OSa.
(Wymagane) pakiety
Instalujemy potrzebne komponenty
Instalujemy $\TeX$ Live
Zaczniemy od instalacji $\TeX$ Live1, to dość rozbudowana dystrybucja z mnóstwem pakietów, możemy zainstalować całość:
1# apt-get install texlive-full
albo dostosować instalacje pod swoje potrzeby, pamiętajmy jednak aby
zainstalować również pakiet texlive-lang-polish aby mieć pełne wsparcie
języka polskiego, polecam zainstalowanie małego programu texdoctk do
wygodnego przeglądania dokumentacji zainstalowanej na komputerze.
Przeglądarka PDF
Instalujemy przeglądarkę wspierającą wyszukiwanie do przodu (forward search), na linuxie mamy spory wybór ja wybrałem Zathura
Dlaczego wybrałem zathure?
Przede wszystkim zathura ma takie same skróty klawiszowe jak vim np.
poruszamy się po dokumencie za pomocą standardowych klawiszy vima hjkl
Forward search: Redagując plik tex wciskamy \lv i nasz otwarty dokument
PDF przeskoczy do miejsca w którym znajduje się kursor.
Backward search: Działa to oczywiście też w drugą stronę będąc na pliku PDF
wciskamy <C-Enter> lub <Ctrl-LeftMouseClick> i zostajemy przeniesieni do
edytora z kursorem w odpowiednim miejscu.
Więc instalujemy:
1# apt-get install zathura zathura-pdf-poppler zathura-ps
System kontroli wersji git
Git
został zaprojektowany w celu zarządzania historią
kodu źródłowego. Ale wcale nie musimy być programistami aby z niego korzystać,
ba to świetne narzędzie pod kontrole którego możemy oddać swoje pliki tex.
W tym artykule skupimy się na podstawach podstaw aby zanadto nie komplikować,
ale byśmy mogli swobodnie go używać.
1# apt-get install git
Szybka podstawowa konfiguracja:
1$ git config --global user.name "Imię Nazwisko"
2$ git config --global user.email adres@email.com
3$ git config --global core.editor vim
Na tym etapie to wszystko co musisz wiedzieć o gicie, w następnej części artykułu rozwiniemy temat.
Instalujemy Neovim
Aby zainstalować Neovim, a jakże wykonujemy magiczną komendę:
1# apt-get install neovim
I to wszystko!
Konfiguracjia Neovim
Instalacja pluginów
Wtyczki możemy instalować na dwa sposoby przy użyciu któregoś menadżera
pluginów lub przez ręczne pobranie źródeł i rozpakowaniu w katalogu
.config/nvim/plugged, ponieważ będziemy używać gita do wersjonowania naszych
dokumentów i że jest to sposób dużo wygodniejszy do zarządzania
i aktualizowania pluginów my użyjemy gita, a raczej użyje go menadżera wtyczek.
Mój wybór to vim-plug2 więc instalujemy (musisz mieć zainstalowany
pakiet curl):
1sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \
2 https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
Otwieramy plik .config/nvim/init.vim (jeżeli nie ma, to tworzymy odpowiednie
katalogi i pliki)
1$ mkdir .config/nvim/
2$ touch .config/nvim/init.vim
na początku pliku tworzymy sekcie dla menadżera wtyczek vim-plug
1call plug#begin()
2
3call plug#end()
vimtex
Dodamy naszą pierwszą wtyczkę czyli vimtex3
1call plug#begin()
2 Plug 'lervag/vimtex'
3call plug#end()
Otwieramy vima i instalujemy wtyczkę :PlugInstall.
Sprawdzamy czy wtyczka ma spełnione zależności :checkhealth, w moim przypadku
brakuje pakietu latexmk którego vimtex używa do kompilacji dokumentów
i neovim-remote, a więc:
1# apt-get install latexmk
2# apt-get install python3-pip
3$ pip3 install neovim-remote
Teraz gdy mamy już zainstalowane co trzeba, zabierzmy się za konfigurację
niektórych ustawień vimtex jest ich naprawdę sporo tutaj skupimy się
na najważniejszych
1" https://github.com/lervag/vimtex/wiki
2let g:vimtex_compiler_progname = $HOME.'/.local/bin/nvr'
3" Ustawiamy aby traktował dokumenty TeX jako pisane w stylu LaTeX
4let g:tex_flavor = 'latex'
5let g:vimtex_quickfix_mode=0
6
7" Podgląd PDF
8" https://manpages.debian.org/buster/zathura/zathurarc.5.en.html
9let g:latex_view_general_viewer = 'zathura'
10let g:vimtex_view_method = 'zathura'
vimtex posiada wygodne automatycznie generowany spis treści który otwieramy
komendą :VimtexTocOpen
Jak wszystko tutaj też możemy dostosować wyświetlanie do swoich potrzeb i upodobań. Oto przykład:
1" Ustawienia spisu treści
2let g:vimtex_toc_config = {
3 \ 'name' : 'TOC',
4 \ 'layers' : ['content', 'todo', 'include'],
5 \ 'resize' : 1,
6 \ 'split_width' : 25,
7 \ 'todo_sorted' : 0,
8 \ 'show_help' : 1,
9 \ 'show_numbers' : 1,
10 \ 'mode' : 2,
11 \}
Więcej informacji znajdziesz w dokumentacji
Sprawdzamy czy działa
Na tym etapie sprawdzamy czy wszytko działa jak powinno, wypróbujemy kilka podstawowych skrótów vimtex:
\llKompiluje dokument i otwiera przeglądarkę PDF z podglądem. Tak, tak z podświetleniem aktualnej pozycji kursora w pliku.[[Przeskakujemy do poprzedniej sekcji, lub następnej]].%Poruszamy się pomiędzy pasującymi separatorami.dseUsuń środowisko (otoczenie)csczmień środowisko
To jest oczywiście czubek góry lodowej jeżeli chodzi o vimtex kompletną listę
komend mamy
tu
lub
poprostu wpisując w wierszu komend :help vimtex
Ok, tyle na początek wystarczy, jak wszystko działa to lecimy dalej.
coc.nvim
Pomimo że vimtex jest super, niektóre funkcje, takie jak automatyczne
uzupełnianie czy podpowiedzi o błędach kodu $\LaTeX$, czy też niestandardowe
segmenty kodu lepiej powierzyć innym wtyczkom, vimtex świetnie z nimi
współpracuje.
Użyjemy coc.nvim4. Nie wchodząc w techniczne szczegóły coc.nvim
to inteligentny silnik dla nvim ktury używa Protokół serwera
języka
W celu zainstalowania pluginu dodajemy do naszego pliku init.vim kolejną
pozycje w sekcji vim-plug
1call plug#begin()
2 Plug 'lervag/vimtex'
3 Plug 'neoclide/coc.nvim', {'branch': 'release'}
4call plug#end()
Otwieramy neovim i instalujemy wtyczkę :PlugInstall. Po instalacji wtyczki
dobrym nawykiem jest sprawdzenie czy mamy spełnione wszystkie zależności, w tym
celu tak jak robiliśmy to przy instalacji wtyczki vimtex uruchamiamy
polecenie :checkhealth i ewentualnie instalujemy wymagane pakiety.
Gdy wszytko działa instalujemy dodatek do coc.nvim zaprojektowany specjalnie
dla vimtex, a mianowicie coc-vimtex. W tym celu w linii komend neovima
uruchamiamy polecenie:
1:CocInstall coc-vimtex