2015-03-03 17:17 GMT+03:00 at <atorgovitsky@gmail.com>:
I found the following code on a stackexchange post: http://tex.stackexchange.com/questions/1548/intelligent-paragraph-reflowing-in-vim
The code is for environment-aware formatting in LaTeX.
It's not longer working quite the way I want it---I think it is interacting with one of my other plugins that has been updated---so I'd like to try to modify it. However I don't have a great knowledge of the Vim scripting language, so I don't really understand what's going on in the code. Could someone explain it to me?
You better explain how it is interacting. Based on the kind of interaction it may appear that you need to know only a few lines. The code below simply selects lines between some lines like `\start`…` \start` and tells Vim to reformat them.
Basically you need to know `:h range`, `:h gq` and, if you still don't understand other code, `:h :{command}` where `:{command}` is a lowercase letter sequence at the start of the line with colon prepended.
Alternatively/additionally, if you have a good solution for formatting in LaTeX, please share!
Here's the code. It's also on the Stackexchange post in case the formatting gets messed up:
" Reformat lines (getting the spacing correct) {{{
fun! TeX_fmt()
if (getline(".") != "")
let save_cursor = getpos(".")
let op_wrapscan = &wrapscan
set nowrapscan
let par_begin = '^\(%D\)\=\s*\($\|\\start\|\\stop\|\\Start\|\\Stop\|\\\(sub\)*section\>\|\\item\>\|\\NC\>\|\\blank\>\|\\noindent\>\)'
let par_end = '^\(%D\)\=\s*\($\|\\start\|\\stop\|\\Start\|\\Stop\|\\place\|\\\(sub\)*section\>\|\\item\>\|\\NC\>\|\\blank\>\)'
try
exe '?'.par_begin.'?+'
catch /E384/
1
endtry
norm V
try
exe '/'.par_end.'/-'
catch /E385/
$
endtry
norm gq
let &wrapscan = op_wrapscan
call setpos('.', save_cursor)
endif
endfun
nmap Q :call TeX_fmt()<CR>
--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
No comments:
Post a Comment