Matt Wozniski (2008-12-01 17:10 -0500) wrote:
> On Sun, Nov 30, 2008 at 3:52 AM, anhnmncb wrote:
>>
>> As title, I want to make a function for foldtext like this:
>
> Looks to me like your function is confused...
>
>> function MY_TeX_BiBFoldText()
>
> You get a List containing the text of all lines in the fold:
>
>> let line = getline(v:foldstart, v:foldend)
>
> Then you find the offsets in that list of the matching lines:
>
>> let matchlinea = match(line, '^\s*author.*{.*}.*') + 1
>> let matchlinet = match(line, '^\s*title.*{.*}.*') + 1
>
> Then you use those offsets as line numbers, instead of offsets into a
> list. Why are you using getline(match()+1) here, instead of
> line[match()] ?
>
>> let matcha = substitute(getline(matchlinea), '^.*{\(.*\)}*.*$', '\1', 'g')
>> let matcht = substitute(getline(matchlinet), '^.*{\(.*\)}*.*$', '\1', 'g')
>
> Seems to me that those lines should be:
>
> let matchlinea = match(line, '^\s*author.*{.*}.*')
> let matchlinet = match(line, '^\s*title.*{.*}.*')
> let matcha = substitute(line[matchlinea], '^.*{\(.*\)}*.*$', '\1', 'g')
> let matcht = substitute(line[matchlinet], '^.*{\(.*\)}*.*$', '\1', 'g')
>
>> let matched = "title: " . matcht . " author: " . matcha
>> return v:folddashes . matched
>> endfunction
>
> Try that, see if it helps.
Hello, your version works! thanks :) I should use line[], not getline().
>
> ~Matt
>
>
--~--~---------~--~----~------------~-------~--~----~
You received this message from the "vim_use" maillist.
For more information, visit http://www.vim.org/maillist.php
-~----------~----~----~----~------~----~------~--~---