在前面兩篇文章里, 我簡單地介紹了vim latex suite的用法和配置. 在這一篇文章里, 我將簡單地介紹一下另外一個latex的插件---vimtex.
6. vimtex 插件
6.1 vimtex 插件的安裝
如果你用vundle的插件管理器, 在vimrc文件中, 加入這么一行:
Plugin 'lervag/vimtex'
6.2 vimtex的基本用法
6.2.1 imaps 映射
如下表:
| 按鍵 | 效果 | 模式 |
|---|---|---|
| \li | 文件信息顯示 | n |
| \lt | 打開目錄 | n |
| \ll | 編譯文檔 | n |
| \lv | 查看文檔 | n |
| \lc | 清除latex編譯文件 | n |
6.2.2 模塊編輯
在vim中, 可以快速編輯一些模塊. 比如: di)是刪除( )內(nèi)的東西, 這里, ) 就代表( )的模塊. 在vimtex中, 我們定義了一些常用的latex模塊. 比如:
| 按鍵 | 效果 | 模式 |
|---|---|---|
| dse | 刪除光標周圍的\begin \end環(huán)境 |
n |
| dsc | 刪除光標周圍的\command{} 環(huán)境 |
n |
| ds$ | 刪除光標周圍的$ $ 環(huán)境 |
n |
| dsd | 刪除光標周圍的括號 | n |
| cse [1] | 修改光標周圍的\begin \end環(huán)境 |
n |
| csc | 修改光標周圍的\command{} 環(huán)境 |
n |
| cs$ | 修改光標周圍的$ $ 環(huán)境 |
n |
| csd | 修改光標周圍的括號模式 | n |
| tsc |
\command{} 和 \command*{}的互換 |
n |
| tse |
\begin{env} 和 \begin{env*}的互換 |
n |
| tsd |
( ... ) 和 \left( ... \right) 的互換 |
n |
在這里, tsd默認的變換list是
let g:vimtex_delim_toggle_mod_list = [
\ ['\left', '\right'],
\ ['\mleft', '\mright'],
\]
當(dāng)然我們可以進行修改, 比如, 在tex.vim中, 我們可以設(shè)置:
let g:vimtex_delim_toggle_mod_list = [
\ ['\bigl', '\bigr'],
\ ['\Bigl', '\Bigr'],
\ ['\biggl', '\biggr'],
\ ['\Biggl', '\Biggr'],
\]
這樣一來, 通過tsd命令, 我們可以在這些型號的括號選擇了.
另外還有下面的幾個常用textobj模塊, 這些可以和y(復(fù)制), d (刪除)及c (修改)搭配使用:
| 按鍵 | 效果 | 模式 |
|---|---|---|
| ]] | 補全括號和環(huán)境[^2] | i |
| ac | 全部\command命令 |
xo |
| ic |
\command{...} 括號內(nèi)的內(nèi)容 |
xo |
| ad | 整個括號和括號里的內(nèi)容 | xo |
| id | 括號里的內(nèi)容 | xo |
| ae | 整個環(huán)境和環(huán)境里的內(nèi)容 | xo |
| ie | 環(huán)境里的內(nèi)容 | xo |
| a$ | 整個$ ... $的內(nèi)容 |
xo |
| i$ |
$ ... $ 里的內(nèi)容 |
xo |
| K | 在\usepackage{package} 跳到package的幫助文檔 |
n |
在vim-textobj-user的幫助下, 我們開可以自己定義模塊, 比如說:
call textobj#user#plugin('latex', {
\ 'bracket-math': {
\ '*pattern*': ['\\\[', '\\\]'],
\ 'select-a': 'au',
\ 'select-i': 'iu',
\ },
\ 'paren-math': {
\ '*pattern*': ['\\(', '\\)'],
\ 'select-a': 'a\',
\ 'select-i': 'i\',
\ },
\ 'double-quote': {
\ '*pattern*': ['``', "''"],
\ 'select-a': 'aQ',
\ 'select-i': 'iQ',
\ },
\ 'biglimiter': {
\ '*pattern*': ['\\{', '\\}'],
\ 'select-a': 'aU',
\ 'select-i': 'iU',
\ },
\ })
在這里, 我們定義了\( \), \{ \}, quotes和\[ \]的幾個模塊.
6.2.3 自動補全label
- labels: >
\ref{sec:<CTRL-X><CTRL-O> - numbers: >
\eqref{2<CTRL-X><CTRL-O> - labels and numbers together (separated by whitespace): >
\eqref{eq 2<CTRL-X><CTRL-O>
至于其他的自動補全, 可以參考YouCompleteMe 插件.
相關(guān)文章:
-
比如在一個環(huán)境
align周圍, 我們按下按鍵cse, 在命令行里就會出現(xiàn):Change surrounding environment: align的提示, 然后輸入equation, 那么這個環(huán)境就會變成\begin{equation} ... \end{equation}了. ?