Monday, April 8, 2013

Re: split on ^@

On Monday, April 8, 2013 3:24:07 PM UTC-5, FlashBurn wrote:
> I'm trying to create a list of file using globpath(). The problem is that globpath returns them as a single string, the other problem is that some of the files contains white spaces in their path. Here is what I came up with
>
> call writefile(split(escape(globpath(s:dir_str, '*.[hc]'), ' '), "^@"), s:myfile)
>
> The ^@ symbol shows up when globpath is written to a file without splitting it, i.e if you do the following, your files will separated with ^@
>
> writefile([escape(globpath(s:dir_str, '*.[hc]'), ' ')], s:myfile)
>
> The problem is that split doesn't recognize ^@. I get the following errors
>
> E114: Missing quote: "
> E116: Invalid arguments for function split(escape(globpath(s:dir_str, '*.[hc]'), ' '), "
> E116: Invalid arguments for function writefile
>
> Does anybody know how to make split recognize this funny symbol?
>
> Any help is appreciated.

That "funny symbol" is a NULL character, which Vim uses internally to represent newline characters.

You can probably split on "\n" instead of "^@", but more likely you can just call writefile on the string directly to get each file on its own line.

--
--
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: