Disclaimer: I usually edit .tex
files in Vim, but I don't use the Vim-LaTeX
suite.
I wouldn't say the following suggestions are tricks per se - they are provided by third-party plugins - but they actually help me with my usual TeX workflow:
Created by Michael Sanders
From the manual: snipMate.vim
aims to be an unobtrusive, concise vim
script that implements some of TextMate's snippets features in Vim. A snippet is a piece of often-typed text that you can insert into your document using a trigger word followed by a <tab>
.
snipMate
helps me a lot, mainly because it offers snippets for several languages out of the box, including TeX. For example, when editing a file mydoc.tex
, typing
begin<tab>
will expand to an environment block of the form
\begin{env}
\end{env}
with the cursor selecting the word env
. After typing the environment name, hitting <tab>
again will take the cursor to
\begin{env}
|
\end{env}
for me to type. The snippets list for TeX is not that big, but the plugin seems to have a fairly easy syntax for us to create custom snippets. Here's the code used to create the above snippet:
# \begin{}...\end{}
snippet begin
\begin{${1:env}}
${2}
\end{$1}
So far, so good.
Created by Matt Wozniski
From the manual: Sometimes, it's useful to line up text. Naturally, it's nicer to have the computer do this for you, since aligning things by hand quickly becomes unpleasant. While there are other plugins for aligning text, the ones I've tried are either impossibly difficult to understand and use, or too simplistic to handle complicated tasks. This plugin aims to make the easy things easy and the hard things possible, without providing an unnecessarily obtuse interface. It's still a work in progress, and criticisms are welcome.
Tabular
helps me a lot when I'm trying to add elements in a tabular
environment. It organizes the columns in a human-readable format. Let's suppose we have the following mess entries:
\begin{tabular}{lll}
Hello world & I love ducks & Vim rocks\\
Think of a very long entry & How was your day & Quack!
\end{tabular}
It's quite confusing, but Tabular
can help us. I usually enter in Visual
mode, select the two rows and then issue
:'<,'>Tabularize /&
and we are done. The new rows now look like
\begin{tabular}{lll}
Hello world & I love ducks & Vim rocks\\
Think of a very long entry & How was your day & Quack!
\end{tabular}
I can also apply :Tabularize /&
, but I prefer to delimit my scope. A similar plugin Align
can also be used for this purpose, see my answer to Which text editor to make tables scripts human readable.
Created by Tim Pope
From the manual: Surround.vim
is all about "surroundings": parentheses, brackets, quotes, XML tags, and more. The plugin provides mappings to easily delete, change and add such surroundings in pairs.
I usually use this plugin when editing source code from other languages. Let's suppose I have the following text enclosed between double quotes:
"Hello world"
By calling cs"'
, the double quotes are automatically replaced by single quotes. I decided to make a different use of surround
, so I took an example from the documentation and adapted to my TeX needs. First of all, I have the following line in my .vimrc
:
autocmd FileType tex let b:surround_45 = "``\r''"
Note that 45
is the ASCII code of -
. Now I can simply call cs"-
and my text
"Hello world"
becomes
``Hello world''
The documentation has a few examples on TeX snippets.
For those who want to try the plugins I listed above, I highly recommend the use of the awesome pathogen
plugin created by Tim Pope.
From the manual: Manage your runtimepath
with ease. In practical terms, pathogen.vim
makes it super easy to install plugins and runtime files in their own private directories.
Hope it helps. :)
Adobe is not designed to work with winedt or tex, but sumatrapdf is. I suggest using sumatrapdf with winedt. It also works seemlessly with forward and inverse search features.
With winedt 5.x:
Download sumatrapdf from this site, and install. Open winedt, go to Options
---> Execution Modes
:
In the window that opens, click the Acrobat
tab and make the paths to sumatrapdf available as in this picture:
Once the paths are set, click OK and your winedt will start using sumatrapdf as the viewer.
Best Answer
Can't tell how vim-latex's preview work, but setup forward and backward search in vim can be done with little configuration using zathura, based on this gist :
https://gist.github.com/vext01/16df5bd48019d451e078
Your insight is right. First, you ought to compile your pdf with
synctex
enabled (I imagine vim-latex does this automatically). Then,zathura
has the--synctex-forward
option that allows you to specify a location on the pdf to jump to. This is the "forward" direction. On the other side, there is-x command
which tells zathura to executecommand
when youCTRL+Click
. Finally vim can be launched with--servername nameserver
so you can call it from outside (zathura's-x
option) and jump to a specific location -- "backward" direction.The gist gives a good implementation of this. Bellow is my slightly modified version :
nnoremap <buffer> <leader>p :call Synctex()<CR>
alias vim="vim --servername vimd"
Basically,
vim
than<leader>p
to open the pdf in the right place.vim
alias automatically sets up a server, allowing external programs to talk to vim.Synctex()
which callsvimura
external script, passing the--synctex-forward
option and data from vim's context (line('.')
...)vimura
calls zathura with both-x
setup with vim and--synctex-forward
retrieved from argument.<leader>p
moves the pdf to the right location,Ctrl+click
moves vim to the right location.Hope it makes it not too confusing.