Saya tidak akan memberikan perbandingan mendalam, karena saya hanya memiliki pengalaman terbatas dengan berbagai plugin. Saya tahu beberapa plugin dengan baik ( LaTeX-Box dan LaTeX-Suite ), dan saya tahu satu plugin dengan sangat baik, karena saya mengembangkannya sendiri: vimtex . Jadi, saya kebanyakan akan menulis tentang vimtex. Namun, saya pertama-tama akan menunjukkan beberapa referensi yang mungkin menarik bagi orang lain.
Beberapa ikhtisar dan referensi
Ada banyak plugin untuk Vim. Inilah yang saya akui paling tidak semi populer:
Di tex.stackexchange.com , ada sejumlah besar editor dan IDE LaTeX. Ini memberikan ikhtisar yang bagus secara umum, tetapi juga memberikan beberapa ikhtisar plugin untuk Vim:
vimtex
vimtex didasarkan pada LaTeX-Box. Itu dimulai setelah saya berkontribusi perbaikan bug dan pembaruan untuk LaTeX-Box untuk beberapa waktu. Saya menyadari bahwa plugin dapat ditulis dengan cara yang jauh lebih modern jika saya menulisnya dari awal. Saya pertama kali menanggalkan sebagian besar fitur dan membangun "mesin" yang lebih kuat dan modular. Saya kemudian menambahkan fitur, dan saya pikir hari ini ia memiliki sebagian besar fitur LaTeX-Box dan kemudian beberapa.
Alih-alih memberikan daftar lengkap fitur (lihat di sini untuk itu ), saya lebih suka mencoba menunjukkan beberapa perbedaan antara vimtex dan plugin lainnya. Namun, saya ingin memberikan beberapa klaim berani:
- vimtex adalah plugin Vim paling modern untuk LaTeX yang tersedia saat ini
- Kode ini berkualitas tinggi dan saat ini sedang dikelola sendiri oleh saya
- Pengaya sebagian besar stabil, meskipun beberapa fitur masih dikembangkan (dan karena itu dapat berubah dan diperbarui)
vimtex vs LaTeX-Box
Karena vimtex didasarkan pada LaTeX-Box, itu jelas memiliki prinsip yang sama. Idenya adalah untuk menjaga hal-hal sederhana dan untuk menyelesaikan masalah yang belum diselesaikan oleh plugin lain yang lebih baik. Ini menggunakan latexmk untuk mengkompilasi dokumen LaTeX, dan itu dibangun di atas plugin Vim internal untuk penyorotan sintaksis.
Saat ini ada satu fitur penting di LaTeX-Box yang tidak ada di vimtex: Kompilasi sekali pakai dengan panggilan balik . Alasan mengapa fitur ini tidak ada di vimtex adalah hanya karena itu rumit, dan bahwa saya tidak pernah menemukan cara untuk mengimplementasikannya yang cukup sederhana untuk preferensi saya sendiri (saran dipersilahkan, jangan ragu untuk membuka masalah atau menarik permintaan ).
vimtex vs LaTeX-Suite
Perbedaan utama antara vimtex dan LaTeX-Suite mungkin vimtex tidak mencoba untuk mengimplementasikan IDE yang lengkap untuk LaTeX di dalam Vim. Misalnya:
- vimtex tidak menyediakan fitur cuplikan penuh, karena ini lebih baik ditangani oleh UltiSnips atau neosnippet atau mesin cuplikan serupa.
- vimtex dibangun berdasarkan prinsip-prinsip Vim: Ini menyediakan objek teks untuk lingkungan, inline matematika, ini menyediakan gerakan untuk bagian dan paragraf
- vimtex digunakan
latexmk
untuk kompilasi dengan fitur panggilan balik untuk mendapatkan umpan balik instan tentang kesalahan kompilasi
- vimtex sangat modular: jika Anda tidak menyukai fitur, Anda dapat mematikannya.
vimtex
dapat bekerja berdampinganLatex-Suite
, yang berarti Anda bisa mendapatkan yang terbaik dari dua plugin sekaligus . :)Saya tidak bisa melakukan perbandingan, karena Vim-LaTeX adalah satu-satunya plugin LaTeX yang saya gunakan. Saya telah menggunakan Vim-LaTeX selama hampir setahun. Jadi saya akan berbicara tentang Vim-LaTeX sendirian.
Ada banyak fitur yang hadir di Vim-LaTeX. Saya tidak ingat semuanya. Saya hanya akan berbicara tentang fitur yang saya tahu dan gunakan terus-menerus.
Catatan: Ini adalah pengalaman pengguna saya yang terbatas , yang mungkin sangat menyesatkan . Saya bukan pengguna Vim berpengalaman. Dan saya tidak tahu apa-apa tentang vimscript.
IMAP () dan
<C-j>
JumppingIMAP()
fungsi dan fungsi<C-j>
lompatan disediakan secara terpisah sebagai pluginimaps.vim
dalam bundel Vim-LaTeX. Mereka adalah fitur yang kuat dan bisa sangat berguna bahkan ketika Anda tidak sedang menulis LaTeX.IMAP()
fungsi menyediakan cara yang lebih alami untuk melakukan insert modus pemetaan dan template secara umum dari built-inimap
daniabbrev
, IMO.<C-j>
jumpping digunakan oleh banyak fitur penyelesaian Vim-LaTeX. Titik lompatan ditunjukkan oleh<++>
.Pemetaan tombol mode bawaan diimplementasikan sebagai
IMAP()
panggilan. Misalnya, Anda dapat menemukan daftar panjangIMAP()
panggilan berguna dalammain.vim
file:Kemudian ketika Anda mengetik mengatakan
()
, kursor akan berada secara otomatis di antara tanda kurung, menggantikan yang pertama<++>
. Setelah Anda selesai mengetik di dalam, Anda menendang<C-j>
dan memukul , kursor akan keluar dari tanda kurung dan Anda terus mengetik ke depan. Setelah Anda terbiasa, itu mulai membentuk aliran pengetikan yang agak membuat ketagihan ...Anda lihat dari atas
\left
\right
sepasang dapat diketik dengan mudah dengan double stroke dari braket pembuka. Dan<C-j>
melompat membuat aliran pengetikan.Satu kesalahan besar
IMAP()
dan<C-j>
hal adalah mereka mengacaukan riwayat perubahan terakhir Anda . (Satu bug yang ingin saya perbaiki untuk waktu yang lama.) Oleh karena itu, Anda mungkin menemukan perilaku yang tidak terduga ketika mencoba mengulang perubahan terakhir Anda dengan.
jika "perubahan terakhir yang seharusnya" Anda berisi panggilan fungsi ini.Anda dapat melakukan semua jenis pemetaan menggunakan
IMAP()
, dari pemetaan kunci sederhana hingga templating yang lebih kompleks. Berikut adalah beberapa contoh pemetaan saya (ftplugin/tex.vim
):Fakta menarik tentang
imaps.vim
plugin adalah plugin global, yang menyiratkan potensi penggunaannya di luar LaTeX. Memang, saya menggunakan<++>
dan<C-j>
melompat - lompat (menggabungkan dengan plugins lain) untuk membangun template potongan kode di C.<F5> <F7>
Penyisipan Perintah dan LingkunganSalah satu kelemahannya
IMAP()
adalah bahwa kombinasi tombol tidak dapat digunakan dalam teks normal lagi (kecuali jika Anda membatalkan pemetaan denganu
). Dalam hal Anda hanya ingin memicu pemetaan seperti yang Anda inginkan,<F5>
dan<F7>
berguna. Kedua kunci ini digunakan untuk masing-masing lingkungan pemicu dan penyisipan perintah inline. Dan mereka berperilaku berbeda berdasarkan mode dan kustomisasi dari pengguna.Dalam Mode Sisipkan / Normal, ketika kursor melampirkan kata atau di dalam kata, secara otomatis menekan
<F5>
akan memasukkan lingkungan dasar formulirberdasarkan kata; Menekan
<F7>
akan secara default menyisipkan perintah inline dasar formulir\word{}<++>
berdasarkan kata."Secara default", maksud saya Anda dapat menyesuaikan perilaku kata tertentu saat dipicu oleh
<F5>
/<F7>
. Berikut adalah beberapa pengaturan saya (.vimrc
):Dalam Mode Sisipkan / Normal, ketika kursor tidak terpasang pada apa pun (alias sendirian ), menekan
<F5>
/<F7>
akan meminta Anda menu untuk memilih lingkungan / perintah untuk dimasukkan. Atau Anda dapat mengetik nama lingkungan / perintah yang diinginkan di bagian bawah. Secara pribadi, saya jarang menggunakan<F5>
/<F7>
dengan cara ini.Tekan
<F5>
/<F7>
setelah secara visual memilih sepotong teks akan meminta menu untuk membungkus teks . Kemudian teks yang dipilih akan dibungkus dengan lingkungan / perintah yang Anda pilih atau ketikkan.Dalam Mode Sisipkan / Normal, ketika kursor berada dalam lingkup lingkungan / perintah, tekan
<Shift>+<F5>/<F7>
akan meminta menu untuk mengubah lingkungan / perintah .Pemetaan Kunci Misc
`a
ke`z
dan ibukota yang sesuai.`8
untuk\infty
,`<
untuk\le
,`I
untuk\int_{<++>}^{<++>}<++>
, dll."
dua kali mendapat sepasang tanda kutip ganda TeX. Jadi untuk mengetik"
karakter literal , Anda harus menggunakan.\item
tag yang sesuai .\left
\right
berpasangan dengan`(
,`[
dan`{
.Tex_FoldedSections
,Tex_FoldedMisc
, danTex_FoldedEnvironments
.Terkadang pemetaan bawaan baru saja berjalan terlalu jauh atau tidak berhenti seperti yang Anda inginkan. Anda dapat mengesampingkan pemetaan bawaan dengan mendefinisikannya kembali di
after/ftplugin/tex.vim
:Atur Multiple Compilation Engine
Saya selalu perlu beralih antara
pdflatex
danxelatex
mesin. Jadi, saya memiliki baris berikut di.vimrc
:Lihat PDF, Maju dan Mundur Cari antara Vim dan PDF viewer
Ini adalah topik yang berantakan dan rumit. Dengan penampil PDF tertentu dan sedikit keberuntungan , itu bisa sangat mudah. Tapi ini terutama masalah pencarian google.
Saran
Secara keseluruhan, saya pikir ini akan bekerja dengan baik jika Anda bersedia meluangkan waktu untuk menjinakkan binatang buas. Yang sedang berkata, seandainya saya punya waktu dan pengetahuan yang memadai, saya pasti akan menipiskan fitur-fitur overhead dan mengeksplorasi potensi integrasi dengan plugin lain.
Referensi
sumber