On 2/17/2013 11:39 AM, Paul Isambert wrote:
I usually work in some a long , but organized text file. and sometime I
>really want to quickly put
>some really good texts that I'm editing/viewing into a blog post and
>publish it.
>currently I have to:
>1) visual select the texts that i want to post
>2) copy them into a new buffer
>3) add some yaml front matter stuff like the following:
>
>   ---
>   layout: post
>   title: "github/jeklly notes"
>   description: ""
>   category:
>   tags: []
>   ---
>   {% include JB/setup %}
>
>4) save them as a md file into the _post folder
>
>what is the best vim-way to automate these?
I'd say, again, write a command/function, e.g.:

function! s:Post (fname) range
   exe a:firstline . "," . a:lastline . "yank"
   exe "tabnew/path/to/your/dir/" . a:fname . ".md"
   call append(0, ["Some", "lines", "of", "text."])
   normal p
endfunction

com! -nargs=1 Post call s:Post(<q-args>)

Best,
Paul
hi Paul:
Thanks for the good sample code.
I spend some time to develop it into my need, I found 2 small (but key) issues here:

1) to make command support range, it seems i need to add "-range":

com! -nargs=1 Post call s:Post(<q-args>)


2) even with that, I still can't catch the selected text range, but instead my test shows only 1st line(or "current") line
is yanked. so I tried this:

com! -range=% -nargs=1 Post :<line1>,<line2>call Post(<q-args>)

now it seems to work.

so it seems that to support "range" in command -- a common usage is to pass that range into a called func (also ranged),
that 2 elements can't be ignored...

not sure my understanding is correct or I still miss anything here?


regards
ping


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