On Friday, January 10, 2014 3:06:44 PM UTC-6, Jacobo de Vera wrote:
> On Fri, Jan 10, 2014 at 7:03 PM, Rick Dooling <rpdoo.com> wrote:
> 
> >
> 
> >> > This one grabs the buffer contents, converts it to HTML, and sends it to 
> >> > the clipboard for pasting into WordPress or whatever.
> 
> >>
> 
> >> > " Send Text Through Filter To Clipboard:
> 
> >> > " http://vim.wikia.com/wiki/Use_filter_commands_to_process_text
> 
> >> > function! MDC()
> 
> >> >         :redir @+
> 
> >> >         " No output file specified so it goes to STDOUT
> 
> >> >         exe '!pandoc %'
> 
> >> >         :redir END
> 
> >> > endfunction
> 
> >>
> 
> >> > This morning I was monkeying with using Python in Vim to do this. That 
> >> > also works. Then you can use Python's Markdown module.
> 
> >>
> 
> >> But does it though? From what I see the line:
> 
> >>
> 
> >> exe '!pandoc %'
> 
> >>
> 
> >> Is running pandoc with the *file* open in the current buffer as input,
> 
> >> which means you have to have a file and you have to save it in order
> 
> >> for it to work. This is similar to what was shown in previous emails,
> 
> >> but what I was wondering is whether one can use something similar that
> 
> >> uses buffer contents, not file contents.
> 
> >>
> 
> 
> 
> >
> 
> > if no file is specified with -o in pandoc it goes to STDOUT, and you are 
> > using redir to redirect STOUT to the clipboard. At least that's how I 
> > understand it.
> 
> >
> 
> > Another scripting angle, esp. using Python or Ruby is just run the 
> > commands, save the file, and tell vim to open the file in a new buffer.
> 
> >
> 
> > Now that I've been playing, the redirect to the clipboard is actually even 
> > more useful, because you can use Marked2 or some other html 
> > converter/viewer to check things before loading your html up to go paste.
> 
> >
> 
> > Rick
> 
> >
> 
> 
> 
> Rick, I think you and I are talking about two different things here. I
> 
> am talking about the input and you are talking about the output. So
> 
> yes, pandoc sends its output to stdout, which is captured by Vim. But
> 
> the input, it takes from a file name, which is the value after
> 
> replacing '%' on that exe line.
> 
> 
> 
> Say you create a new file, then write some markdown, and, before
> 
> saving, you run that function. You'd get nothing, because pandoc
> 
> receives, as input, an empty file. Pandoc, and many other programs,
> 
> however, support getting their input from stdin. In vim you can send
> 
> the contents of the current buffer to a process' stdin, and then the
> 
> process' stdout replaces those contents, just like when one does:
> 
> 
> 
> :%!sort
> 
> 
> 
> What I was trying to ask is. How does one send those unsaved contents
> 
> to a program without getting them replaced with the output of such
> 
> program, but instead get the output in a separate tab? The function
> 
> you sent provides a solution for the second part, since it will
> 
> redirect output to a variable or a register. Now we are only missing
> 
> the first part, which we nearly have, but it uses files, rather than
> 
> buffer contents.
> 
> 
> 
> Hope that clarifies my question a little.
> 
> 
> 
> Regards,
> 
> 
> 
> -- 
> 
> Jacobo de Vera
> 
> http://www.jacobodevera.com
> 
> @jovianjake

I think I am not the person to answer. I have never tried to do anything with 
buffer contents before saving them as a file. In fact, my maps often begin with 
:w<CR> to make sure that the save happens first, or I guess :up<CR>. I think it 
would be a bad idea to attempt anything with a filter or external program on an 
unsaved file. One error and poof.

-- 
-- 
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 [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to