Vim Tips Wiki
(Merge the comment into the body of the tip)
(allow for jumping to indented sections)
Tag: Visual edit
 
Line 27: Line 27:
 
function! TexJump2Section( cnt, dir )
 
function! TexJump2Section( cnt, dir )
 
let i = 0
 
let i = 0
let pat = '^\\\(part\|chapter\|\(sub\)*section\|paragraph\)\>\|\%$\|\%^'
+
let pat = '^\s*\\\(part\|chapter\|\(sub\)*section\|paragraph\)\>\|\%$\|\%^'
let flags = 'W' . a:dir
+
let flags = 'W' . a:dir
while i < a:cnt && search( pat, flags ) > 0
+
while i < a:cnt && search( pat, flags ) > 0
let i = i+1
+
let i = i+1
endwhile
+
endwhile
let @/ = pat
+
let @/ = pat
endfunction
+
endfunction
 
</pre>
 
</pre>

Latest revision as of 10:56, 30 June 2014

Tip 489 Printable Monobook Previous Next

created June 19, 2003 · complexity basic · version 


This is a small mapping that can be used for jumping sections in a latex file.

map <silent> ]s :/\\\(sub\)\{,2}section\s*{<CR> :noh<CR>
map <silent> [s :?\\\(sub\)\{,2}section\s*{<CR> :noh<CR>

The above commands don't work with a count. The following maps correctly work with a count and also update the pattern. Also, if you want to keep the original search pattern, just comment out the "let @/ = pat" line.

" section jumping
noremap <buffer> <silent> ]] :<c-u>call TexJump2Section( v:count1, '' )<CR>
noremap <buffer> <silent> [[ :<c-u>call TexJump2Section( v:count1, 'b' )<CR>
function! TexJump2Section( cnt, dir )
  let i = 0
  let pat = '^\s*\\\(part\|chapter\|\(sub\)*section\|paragraph\)\>\|\%$\|\%^'
   let flags = 'W' . a:dir
   while i < a:cnt && search( pat, flags ) > 0
     let i = i+1
   endwhile
   let @/ = pat
 endfunction