Nie mogę dokonać porównania, ponieważ Vim-LaTeX jest jedyną wtyczką LaTeX, z której korzystałem. Używam Vim-LaTeX od prawie roku. Opowiem więc o samym Vim-LaTeX.
W Vim-LaTeX jest wiele funkcji. Nie pamiętam ich wszystkich. Opowiem tylko o funkcjach, które znam i których używam stale.
Uwaga: są to moje ograniczone doświadczenia użytkownika , które mogą być bardzo mylące . Nie jestem wytrawnym użytkownikiem Vima. I nic nie wiem o vimscript.
IMAP () i <C-j>
Jumpping
IMAP()
funkcje i funkcje <C-j>
skokowe są dostarczane osobno jako wtyczka imaps.vim
w pakiecie Vim-LaTeX. Są to zaawansowane funkcje i mogą być bardzo przydatne, nawet jeśli nie piszesz LaTeX.
IMAP()
funkcja zapewnia bardziej naturalny sposób wykonywania mapowań w trybie wstawiania i szablonów w ogóle niż wbudowane imap
i iabbrev
IMO.
<C-j>
przeskakiwanie jest wykorzystywane przez wiele funkcji uzupełniających Vim-LaTeX. Punkt przeskoku jest oznaczony symbolem <++>
.
Wbudowane odwzorowania klawiszy w trybie wstawiania są implementowane jako IMAP()
wywołania. Na przykład możesz znaleźć długą listę przydatnych IMAP()
połączeń w main.vim
pliku:
call IMAP ('__', '_{<++>}<++>', "tex")
call IMAP ('()', '(<++>)<++>', "tex")
call IMAP ('[]', '[<++>]<++>', "tex")
call IMAP ('{}', '{<++>}<++>', "tex")
...
call IMAP ('((', '\left( <++> \right)<++>', "tex")
call IMAP ('[[', '\left[ <++> \right]<++>', "tex")
call IMAP ('{{', '\left\{ <++> \right\}<++>', "tex")
...
Następnie, gdy wpiszesz say ()
, kursor będzie automatycznie znajdować się między nawiasami, zastępując pierwszy <++>
. Po zakończeniu pisania w środku, kopniesz <C-j>
i uderzysz, kursor wyjdzie z nawiasu i po prostu będziesz pisać dalej. Kiedy już się do tego przyzwyczaisz, zaczyna tworzyć ciąg pisania, który jest trochę uzależniający ...
Widzisz z góry \left
\right
parę można łatwo wpisać za pomocą podwójnego pociągnięcia uchwytu otwierającego. A <C-j>
skakanie sprawia, że pisanie jest płynne.
Jednym z głównych usterki od IMAP()
i <C-j>
rzeczą jest to, że oni bałagan ostatnią historię zmian . (Jeden błąd, który chcę naprawić przez długi czas.) Dlatego możesz napotkać nieoczekiwane zachowanie podczas próby powtórzenia ostatniej zmiany, .
jeśli „domniemana ostatnia zmiana” zawiera te wywołania funkcji.
Możesz wykonywać wszelkiego rodzaju mapowania IMAP()
, od prostych mapowań kluczowych do bardziej złożonych szablonów. Oto kilka przykładów moich mapowań ( ftplugin/tex.vim
):
call IMAP('*EEQ',"\\begin{equation*}\<CR><++>\<CR>\\end{equation*}<++>",'tex')
call IMAP('DEF',"\\begin{definition}[<++>]\<CR><++>\<CR>\\end{definition}<++>",'tex')
call IMAP('BIC','\binom{<++>}{<++>}<++>','tex')
call IMAP('PVERB','\PVerb{<++>}<++>','tex')
call IMAP('VERB','\verb|<++>|<++>','tex')
Ciekawym faktem na temat imaps.vim
wtyczki jest to, że jest to wtyczka globalna, co sugeruje jej potencjalne wykorzystanie poza LaTeX. Rzeczywiście, używam <++>
i <C-j>
przeskakuję (łącząc się z innymi wtyczkami) do tworzenia szablonów fragmentów kodu w C.
<F5> <F7>
Wstawianie poleceń i środowisk
Jedną wadą IMAP()
jest to, że kombinacji klawiszy nie można już używać w normalnym tekście (chyba że cofniesz mapowanie przez u
). W przypadkach, w których chcesz uruchomić mapowanie według własnego uznania, <F5>
i <F7>
przydadzą się. Te dwa klucze są używane odpowiednio do uruchamiania środowisk i wstawiania poleceń wbudowanych. I zachowują się inaczej w zależności od trybu i ustawień użytkownika.
W trybie wstawiania / normalnym, gdy kursor dołącza słowo lub znajduje się w nim, naciśnięcie <F5>
domyślnie wstawia podstawowe środowisko formularza
\begin{word}
<Cursor>
\end{word}<++>
na podstawie słowa; naciśnięcie <F7>
domyślnie wstawi podstawowe polecenie wstawiane w formularzu \word{}<++>
na podstawie słowa.
„Domyślnie” mam na myśli to, że możesz dostosować zachowanie określonego słowa, gdy zostanie wywołane przez <F5>
/ <F7>
. Oto niektóre z moich ustawień ( .vimrc
):
let g:Tex_Com_newcommand = "\\newcommand{<++>}[<++>]{<++>}<++>"
let g:Tex_Com_latex = "{\\LaTeX}<++>"
let g:Tex_Com_D = "\\D{<++>}{<++>}<++>"
W trybie wstawiania / normalnym, gdy kursor nie jest podłączony do niczego (aka sam ), naciśnięcie przycisku <F5>
/ <F7>
spowoduje wyświetlenie menu do wyboru środowiska / polecenia do wstawienia. Lub możesz wpisać nazwę żądanego środowiska / polecenia na dole. Osobiście rzadko używam <F5>
/ w <F7>
ten sposób.
Naciśnij <F5>
/ <F7>
po wizualnym wybraniu fragmentu tekstu spowoduje wyświetlenie menu do zawijania tekstu . Następnie zaznaczony tekst zostanie zawinięty w wybranym środowisku lub poleceniu.
W trybie wstawiania / normalnym, gdy kursor znajduje się w zakresie środowiska / polecenia, naciśnięcie <Shift>+<F5>/<F7>
powoduje wyświetlenie menu zmiany środowiska / polecenia .
Różne kluczowe mapowania
- Litery greckie.
`a
do `z
i odpowiednich stolic.
- Symbole jak
`8
na \infty
, `<
na \le
, `I
na \int_{<++>}^{<++>}<++>
, itd.
"
Dwukrotne naciśnięcie daje parę podwójnych cudzysłowów TeX-a. Aby wpisać dosłowny "
znak, musisz użyć.
- Naciśnięcie w kilku środowiskach wyliczania spowoduje wstawienie odpowiedniego
\item
znacznika.
- Możesz owinąć wizualnie wybraną część matematyki
\left
\right
parami przez `(
, `[
i `{
.
- Składanie można dostosować. Trzy zmienna globalna kontrola co można złożyć:
Tex_FoldedSections
, Tex_FoldedMisc
, i Tex_FoldedEnvironments
.
Czasami wbudowane mapowania po prostu zaszły za daleko lub nie wychodzą z tego, co chcesz. Możesz zastąpić wbudowane odwzorowania, zmieniając je w after/ftplugin/tex.vim
:
call IMAP('`|','\abs{<++>}<++>','tex')
call IMAP('ETE',"\\begin{table}\<CR>\\centering\<CR>\\caption{<+Caption text+>}\<CR>\\label{tab:<+label+>}\<CR>\\begin{tabular}{<+dimensions+>}\<CR><++>\<CR>\\end{tabular}\<CR>\\end{table}<++>",'tex')
call IMAP('==','==','tex')
call IMAP('`\','`\','tex')
Ustaw silnik wielokrotnej kompilacji
Zawsze muszę przełączać się między silnikiem pdflatex
a xelatex
silnikiem. Tak więc mam następujące wiersze .vimrc
:
"switch to pdflatex
function SetpdfLaTeX()
let g:Tex_CompileRule_pdf = 'pdflatex --interaction=nonstopmode -synctex=1 -src-specials $*'
endfunction
noremap <Leader>lp :<C-U>call SetpdfLaTeX()<CR>
"switch to xelatex
function SetXeLaTeX()
let g:Tex_CompileRule_pdf = 'xelatex --interaction=nonstopmode -synctex=1 -src-specials $*'
endfunction
noremap <Leader>lx :<C-U>call SetXeLaTeX()<CR>
Przeglądaj PDF, wyszukiwanie do przodu i do tyłu między Vimem a przeglądarką PDF
To jest bałaganiarski i skomplikowany temat. Dzięki pewnej przeglądarce plików PDF i pewnej odrobinie szczęścia może to być bardzo łatwe. Ale to głównie kwestia wyszukiwania w Google.
Propozycje
- Powinieneś znaleźć równowagę między sposobem LaTeX a sposobem Vim-LaTeX.
- Vim-LaTeX nie jest wcale lekki. Istnieją pewne funkcje i / lub kluczowe odwzorowania, których prawdopodobnie nigdy nie użyjesz i musisz je ręcznie zastąpić.
- Używasz Vima. Wiesz, co oznacza cierpliwość . :-)
Ogólnie rzecz biorąc, myślę, że będzie działać dobrze, jeśli będziesz chciał zainwestować trochę czasu, aby oswoić bestię. Biorąc to pod uwagę, gdybym miał czas i odpowiednią wiedzę, z pewnością przerzedzę ogólne funkcje i zbadam potencjał integracji z innymi wtyczkami.
Bibliografia
vimtex
można pracować obok siebieLatex-Suite
, co oznacza, że możesz uzyskać najlepszą z dwóch wtyczek jednocześnie . :)