> From: Alan Young <alansyoungiii@gmail.com>
> This works ok, but  only for one file being edited per session.  I know
> why, but I don't  know how to fix it.  Hopefully the list can help.
> 
> I have this in my  ~/.vim/after/ftplugin/perl.vim file (see
> https://github.com/harleypig/dot_vim for everything in context):
> 
> "  This makes the status line work *only* for the first perl file
> loaded,  but
> " if I don't do it this way, the statusline has this check  appended
> each time
> " the buffer is visited.  How to fix  this?
> 
> if ! exists("g:did_perl_statusline")
>   setlocal  statusline+=%(\ %{StatusLineIndexLine()}%)
>   let g:did_perl_statusline =  1
> endif
> 
> if has( 'perl' )
> perl << EOP
> use  strict;
> 
> eval "use PPIx::IndexLines";
> my $error = $@;
> 
> sub  index_line {
> 
>   if ( $error ) {
> 
>     VIM::DoCommand  "let subName='$error'";
> 
>   } else {
> 
>     my $curwin =  $main::curwin;
>     my $curbuf = $main::curbuf;
> 
>      # There's got to be a better way to slurp in the current buffer!
>      my $document = join "\n", map { $curbuf->Get( $_ ) } 0  ..
> $curbuf->Count;
> 
>     my $ppi =  PPIx::IndexLines->new( \$document );
>      $ppi->index_lines;
>     ( my $line, undef ) =  $curwin->Cursor;
>     my $sub_name = $ppi->line_type( $line  );
>     VIM::DoCommand "let subName='$line:  $sub_name'";
> 
>   }
> }
> 
> EOP
> 
> function!  StatusLineIndexLine()
>   perl index_line()
>   return  subName
> endfunction
> endif
This looks like it would be a great start, but I'm working with some large files 
and it's grinding my vim to a halt when I switch buffers. I might have to go 
with a lightweight, but less correct option.
Cheers,
Ovid
--
Live and work overseas - http://overseas-exile.blogspot.com/
Buy the book - http://www.oreilly.com/catalog/perlhks/
Tech blog - http://blogs.perl.org/users/ovid/
Twitter - http://twitter.com/OvidPerl/
-- 
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
No comments:
Post a Comment