Friday, February 28, 2014

Re: Dumb question: variables in the statusline


On Feb 27, 2014 9:55 PM, "Benjamin Klein" <ben@silver-chalice.com> wrote:
>
> On Feb 27, 2014, at 11:42 AM, Charles Campbell <Charles.E.Campbell@nasa.gov> wrote:
>
> > * Could you give us the new exe line you're using to set the statusline?
>
> Right now it's
>
> execute "setlocal statusline=" . status
>
> where `status` is the string returned by the function.
>
> > * What does   :echo &l:stl  show ?
>
> The function which is supposed to get the status line begins the string with the a:1, and then appends %= and the rest of the line to that. &l:stl, after I get the error, is the a:1 (message) passed to the function. Everything from that =% onward is being left out.
>
> > * You're passing a:1 to exe; perhaps it should be escaped, too:  ... fnameescape(a:1) ...
>
> A good idea -- thanks. (It hasn't seemed to affect this situation though, sadly.)

Don't use :execute and incorrect escaping. The following should work:

    let &l:statusline='%!FunctionFromWhichIAmTryingToGetAStatusline('.string(a:1).')'

Function fnameescape() has other purpose and it must not be used to escape strings for statusline.

I am not sure how this would deal with some special characters though: those below 0x20 and %. They should not cause trouble AFAIK, but I may be wrong.

>
> Ben
>
> --
> b
>
> Sent from my iPhone
>
> --
> --
> 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/groups/opt_out.

--
--
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/groups/opt_out.

No comments: