Tôi không thể so sánh, vì Vim-LaTeX là plugin LaTeX duy nhất tôi đã sử dụng. Tôi đã sử dụng Vim-LaTeX được gần một năm. Vì vậy, tôi sẽ nói về Vim-LaTeX một mình.
Có nhiều tính năng hiện diện trong Vim-LaTeX. Tôi không nhớ tất cả chúng. Tôi sẽ chỉ nói về các tính năng mà tôi biết và sử dụng liên tục.
Lưu ý: Đây là những trải nghiệm người dùng hạn chế của tôi , có thể rất sai lệch . Tôi không phải là người dùng Vim dày dạn. Và tôi không biết gì về vimscript.
IMAP () và <C-j>
Jumpping
IMAP()
chức năng và chức năng <C-j>
jumpping được cung cấp riêng như một plugin imaps.vim
trong gói Vim-LaTeX. Chúng là các tính năng mạnh mẽ và có thể rất hữu ích ngay cả khi bạn không viết LaTeX.
IMAP()
chức năng cung cấp một cách tự nhiên hơn để làm chèn ánh xạ mode và khuôn mẫu nói chung so với built-in imap
và iabbrev
, IMO.
<C-j>
jumpping được sử dụng bởi nhiều tính năng hoàn thành Vim-LaTeX. Một điểm jumpping được chỉ định bởi <++>
.
Ánh xạ khóa chế độ chèn tích hợp được thực hiện dưới dạng IMAP()
các cuộc gọi. Ví dụ: bạn có thể tìm thấy một danh sách dài các IMAP()
cuộc gọi hữu ích trong main.vim
tệp:
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")
...
Sau đó, khi bạn gõ nói ()
, con trỏ sẽ tự động nằm giữa cha mẹ, thay thế đầu tiên <++>
. Sau khi bạn nhập xong, bạn đá <C-j>
và đập, con trỏ sẽ di chuyển ra khỏi ngoặc đơn và bạn tiếp tục gõ về phía trước. Khi bạn đã quen với nó, nó bắt đầu hình thành một dòng gõ gây nghiện ...
Bạn nhìn thấy từ phía trên một \left
\right
cặp có thể được gõ dễ dàng với hành trình kép của khung mở của nó. Và <C-j>
jumpping làm cho dòng chảy.
Một trục trặc lớn IMAP()
và <C-j>
điều đó là chúng làm rối tung lịch sử thay đổi cuối cùng của bạn . (Một lỗi tôi muốn sửa trong một thời gian dài.) Do đó, bạn có thể gặp phải hành vi không mong muốn khi cố gắng làm lại thay đổi cuối cùng của mình .
nếu "thay đổi được cho là cuối cùng" của bạn có chứa các lệnh gọi hàm này.
Bạn có thể thực hiện tất cả các loại ánh xạ bằng cách sử dụng IMAP()
, từ ánh xạ khóa đơn giản đến tạo khuôn phức tạp hơn. Dưới đây là một số ví dụ về ánh xạ của tôi ( 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')
Một sự thật thú vị về imaps.vim
plugin là nó là một plugin toàn cầu, ngụ ý việc sử dụng tiềm năng của nó ngoài LaTeX. Thật vậy, tôi sử dụng <++>
và <C-j>
jumppings (kết hợp với các plugin khác) để xây dựng các mẫu đoạn mã trong C.
<F5> <F7>
Chèn lệnh và môi trường
Một nhược điểm của IMAP()
là tổ hợp phím không thể được sử dụng trong văn bản bình thường nữa (trừ khi bạn hoàn tác ánh xạ theo u
). Trong các trường hợp mà bạn chỉ muốn kích hoạt ánh xạ như bạn muốn, <F5>
và <F7>
sẽ có ích. Hai khóa này được sử dụng để kích hoạt môi trường và chèn lệnh nội tuyến tương ứng. Và họ hành xử khác nhau dựa trên chế độ và các tùy chỉnh từ người dùng.
Trong Chế độ chèn / Chế độ bình thường, khi con trỏ đính kèm một từ hoặc trong từ đó, nhấn <F5>
theo mặc định sẽ chèn một môi trường cơ bản của biểu mẫu
\begin{word}
<Cursor>
\end{word}<++>
dựa trên từ; nhấn <F7>
theo mặc định sẽ chèn một lệnh nội tuyến cơ bản của biểu mẫu \word{}<++>
dựa trên từ.
"Theo mặc định", ý tôi là bạn có thể tùy chỉnh hành vi của một từ cụ thể khi được kích hoạt bởi <F5>
/ <F7>
. Đây là một số cài đặt của tôi ( .vimrc
):
let g:Tex_Com_newcommand = "\\newcommand{<++>}[<++>]{<++>}<++>"
let g:Tex_Com_latex = "{\\LaTeX}<++>"
let g:Tex_Com_D = "\\D{<++>}{<++>}<++>"
Trong Insert / Normal Mode, khi con trỏ được không gắn liền với bất cứ điều gì (hay còn gọi là một mình ), nhấn <F5>
/ <F7>
sẽ nhắc cho bạn một thực đơn để chọn môi trường / lệnh để chèn. Hoặc bạn có thể gõ tên của môi trường / lệnh mong muốn ở phía dưới. Cá nhân, tôi hiếm khi sử dụng <F5>
/ <F7>
cách này.
Nhấn <F5>
/ <F7>
sau khi chọn trực quan một đoạn văn bản sẽ nhắc một menu để gói văn bản . Sau đó, văn bản được chọn sẽ được bọc trong môi trường / lệnh bạn đã chọn hoặc gõ.
Trong Chế độ chèn / chế độ bình thường, khi con trỏ ở trong phạm vi của một môi trường / lệnh, nhấn <Shift>+<F5>/<F7>
sẽ nhắc một menu để thay đổi môi trường / lệnh .
Linh tinh Mappings
- Chữ Hy Lạp.
`a
đến `z
và thủ đô tương ứng.
- Các biểu tượng như
`8
cho \infty
, `<
cho \le
, `I
cho \int_{<++>}^{<++>}<++>
, v.v.
- Nhấn
"
hai lần sẽ nhận được một cặp dấu ngoặc kép TeX. Vì vậy, để gõ ký "
tự chữ , bạn phải sử dụng.
- Nhấn trong một số môi trường liệt kê sẽ chèn
\item
thẻ thích hợp .
- Bạn có thể quấn phần lựa chọn trực quan của toán học trong
\left
\right
cặp bằng `(
, `[
và `{
.
- Folding có thể tùy chỉnh. Ba kiểm soát biến toàn cầu những gì có thể được gấp lại:
Tex_FoldedSections
, Tex_FoldedMisc
, và Tex_FoldedEnvironments
.
Đôi khi các ánh xạ tích hợp đã đi quá xa hoặc không thoát khỏi những gì bạn muốn. Bạn có thể ghi đè lên ánh xạ tích hợp bằng cách xác định lại chúng trong 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')
Đặt nhiều công cụ biên dịch
Tôi luôn cần phải chuyển đổi giữa pdflatex
và xelatex
động cơ. Vì vậy, tôi có các dòng sau trong .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>
Xem PDF, Chuyển tiếp và Tìm kiếm lùi giữa trình xem Vim và PDF
Đây là một chủ đề lộn xộn và phức tạp. Với một số người xem PDF nhất định và một số may mắn nhất định , nó có thể rất dễ dàng. Nhưng đó chủ yếu là vấn đề tìm kiếm google.
Gợi ý
- Bạn nên tìm sự cân bằng giữa cách LaTeX và cách Vim-LaTeX.
- Vim-LaTeX hoàn toàn không có trọng lượng nhẹ. Có một số tính năng và / hoặc ánh xạ chính mà bạn có thể sẽ không bao giờ sử dụng và bạn phải ghi đè chúng theo cách thủ công.
- Bạn dùng Vim. Bạn biết kiên nhẫn nghĩa là gì . :-)
Nhìn chung, tôi nghĩ rằng nó sẽ hoạt động tốt nếu bạn sẵn sàng đầu tư một chút thời gian để chế ngự con thú. Điều đó đã được nói, nếu tôi có thời gian và kiến thức đầy đủ, tôi chắc chắn sẽ giảm bớt các tính năng trên cao và khám phá tiềm năng tích hợp với các plugin khác.
Người giới thiệu
vimtex
có thể làm việc song song với nhauLatex-Suite
, điều đó có nghĩa là bạn có thể tận dụng tốt nhất hai plugin cùng một lúc . :)