Loading ...
Sorry, an error occurred while loading the content.

Re: Functions with [range] do not preserve the cursor line

Expand Messages
  • Christian Brabandt
    ... I also stumbled over this behaviour in my csv plugin. I think this is documented somewhere, but can t find it currently. What I usually do, is either
    Message 1 of 33 , Nov 19, 2012
    • 0 Attachment
      On Mon, November 19, 2012 22:52, So8res wrote:
      > I think functions with [range] should preserve the cursor line. Assume you
      > have:
      >
      > function RangeTest() range
      > echo line('.')
      > endfunction
      >
      > And you put the cursor on line 2 and :%call RangeTest()
      >
      > This function will echo 1, because the cursor is moved to the beginning of
      > the range *before* entering the function.
      >
      > I was attempting to create a function which does a search-replace (:s)
      > without moving the cursor (using winsaveview() and winrestview()). It
      > turns out this is not possible, because the cursor is moved before
      > winsaveview() can be called.
      >
      > Is this the intended behavior, or is it a bug? If it's intended, is there
      > a way to save the winview before entering a function with [range]?

      I also stumbled over this behaviour in my csv plugin. I think this is
      documented somewhere, but can't find it currently. What I usually do,
      is either surround the call to the function by
      winsaveview()/winrestview() calls. But this gets ugly when mappings
      thing so I instead simply call the function without a range but have
      the function take 2 extra arguments for the range.

      regards,
      Christian

      --
      You received this message from the "vim_dev" 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
    • So8res
      ... Any word on getting a variant of range functions that don t move the cursorline? This still bites me occasionally. -- -- You received this message from the
      Message 33 of 33 , Nov 11, 2013
      • 0 Attachment
        On Wednesday, December 5, 2012 9:13:17 AM UTC-8, So8res wrote:
        > >
        > > I don't like "stay", but can't think of something better right now.
        > >
        > > Perhaps "keepline"?
        > >
        >
        > How do you feel about using 'range!' (with a bang) instead?
        >
        > It would keep the :function argument space more concise, and would only be usable with 'range', both of which are nice. However, there's no precedent (that I can find) for command arguments having bangs.

        Any word on getting a variant of range functions that don't move the cursorline? This still bites me occasionally.

        --
        --
        You received this message from the "vim_dev" 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_dev" group.
        To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscribe@....
        For more options, visit https://groups.google.com/groups/opt_out.
      Your message has been successfully submitted and would be delivered to recipients shortly.