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

Re: setpos() and => wrong position

Expand Messages
  • Bram Moolenaar
    ... Hmm, I wonder if the extra list elements are going to cause a problem in some existing script. -- hundred-and-one symptoms of being an internet addict:
    Message 1 of 14 , Aug 22, 2013
      Christian Brabandt wrote:

      > On Mo, 19 Aug 2013, Christian Brabandt wrote:
      >
      > > May be another optional parameter to the setpos() function, that
      > > if given specifies the desired cursor position?
      >
      > Like the attached patch does.

      Hmm, I wonder if the extra list elements are going to cause a problem in
      some existing script.


      --
      hundred-and-one symptoms of being an internet addict:
      107. When using your phone you forget that you don't have to use your
      keyboard.

      /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net \\\
      /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
      \\\ an exciting new programming language -- http://www.Zimbu.org ///
      \\\ help me help AIDS victims -- http://ICCF-Holland.org ///

      --
      --
      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.
    • Christian Brabandt
      ... I don t think, it will make a difference for the optional list-argument of the setpos() call. It might only make a difference for the list returned by the
      Message 2 of 14 , Aug 22, 2013
        On Thu, August 22, 2013 17:23, Bram Moolenaar wrote:
        > Christian Brabandt wrote:
        >> On Mo, 19 Aug 2013, Christian Brabandt wrote:
        >>
        >> > May be another optional parameter to the setpos() function, that
        >> > if given specifies the desired cursor position?
        >>
        >> Like the attached patch does.
        >
        > Hmm, I wonder if the extra list elements are going to cause a problem in
        > some existing script.

        I don't think, it will make a difference for the optional list-argument
        of the setpos() call. It might only make a difference for the list
        returned by the getpos() call now having 5 elements. If you're worried
        about that, simply let getpos('.') always return 4 elements (though
        this makes it harder to determine the prefered column).

        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

        ---
        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.
      • Nikolay Pavlov
        ... I bet there is a bunch of scripts using 4-variable lets. Simple grep over the mess in $HOME/.vam (I hold all but my plugins there) found at least LaTeX_box
        Message 3 of 14 , Aug 22, 2013


          On Aug 22, 2013 8:05 PM, "Christian Brabandt" <cblists@...> wrote:
          >
          > On Thu, August 22, 2013 17:23, Bram Moolenaar wrote:
          > > Christian Brabandt wrote:
          > >> On Mo, 19 Aug 2013, Christian Brabandt wrote:
          > >>
          > >> > May be another optional parameter to the setpos() function, that
          > >> > if given specifies the desired cursor position?
          > >>
          > >> Like the attached patch does.
          > >
          > > Hmm, I wonder if the extra list elements are going to cause a problem in
          > > some existing script.
          >
          > I don't think, it will make a difference for the optional list-argument
          > of the setpos() call. It might only make a difference for the list
          > returned by the getpos() call now having 5 elements. If you're worried
          > about that, simply let getpos('.') always return 4 elements (though
          > this makes it harder to determine the prefered column).

          I bet there is a bunch of scripts using 4-variable lets. Simple grep over the mess in $HOME/.vam (I hold all but my plugins there) found at least LaTeX_box plugin (ftplugin/latex-box/common.vim) and python-mode-klen (autoload/pymode/lint.vim, though it should have used line() and not getpos()). I do not know how many plugins do
              let pos=getpos('.')
              ...
              let [a,b,c,d]=pos
          , use negative indices or something else. Why not use optional argumet to getpos() then? Note: optional argument should make it return a dictionary. 5 indistinguishable  numbers are way too much.

          Also check out winsaveview(), particularly .curswant key. Maybe there is no need to modify getpos().

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

          --
          --
          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.
        • Christian Brabandt
          ... What do you mean with 4-variable lets? ... Probably not. There not much difference to winsaveview() anymore. It was only a suggestion, though. regards,
          Message 4 of 14 , Aug 22, 2013
            On Do, 22 Aug 2013, Nikolay Pavlov wrote:

            > I bet there is a bunch of scripts using 4-variable lets. Simple grep over

            What do you mean with 4-variable lets?

            > the mess in $HOME/.vam (I hold all but my plugins there) found at least
            > LaTeX_box plugin (ftplugin/latex-box/common.vim) and python-mode-klen
            > (autoload/pymode/lint.vim, though it should have used line() and not
            > getpos()). I do not know how many plugins do
            > let pos=getpos('.')
            > ...
            > let [a,b,c,d]=pos
            > , use negative indices or something else. Why not use optional argumet to
            > getpos() then? Note: optional argument should make it return a dictionary.
            > 5 indistinguishable numbers are way too much.

            Probably not. There not much difference to winsaveview() anymore. It was
            only a suggestion, though.

            regards,
            Christian
            --
            Frage an Radio Eriwan:
            Gibt es bei uns mehr Humor als anderswo?
            Radio Eriwan antwortet:
            Im Prinzip ja. Aber wir haben ihn auch nötig.

            --
            --
            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.
          • Nikolay Pavlov
            ... over ... let [a,b,c,d]=e ... to ... dictionary. ... vim_dev group. ... email to vim_dev+unsubscribe@googlegroups.com. ... -- -- You received this message
            Message 5 of 14 , Aug 22, 2013


              On Aug 22, 2013 10:24 PM, "Christian Brabandt" <cblists@...> wrote:
              >
              >
              > On Do, 22 Aug 2013, Nikolay Pavlov wrote:
              >
              > > I bet there is a bunch of scripts using 4-variable lets. Simple grep over
              >
              > What do you mean with 4-variable lets?

                   let [a,b,c,d]=e

              > > the mess in $HOME/.vam (I hold all but my plugins there) found at least
              > > LaTeX_box plugin (ftplugin/latex-box/common.vim) and python-mode-klen
              > > (autoload/pymode/lint.vim, though it should have used line() and not
              > > getpos()). I do not know how many plugins do
              > >     let pos=getpos('.')
              > >     ...
              > >     let [a,b,c,d]=pos
              > > , use negative indices or something else. Why not use optional argumet to
              > > getpos() then? Note: optional argument should make it return a dictionary.
              > > 5 indistinguishable  numbers are way too much.
              >
              > Probably not. There not much difference to winsaveview() anymore. It was
              > only a suggestion, though.
              >
              > regards,
              > Christian
              > --
              > Frage an Radio Eriwan:
              > Gibt es bei uns mehr Humor als anderswo?
              > Radio Eriwan antwortet:
              > Im Prinzip ja. Aber wir haben ihn auch nötig.
              >
              > --
              > --
              > 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.

              --
              --
              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.
            • Bram Moolenaar
              ... Yes, in complicated cases winsaveview() can be used. I think that in most cases the original problem applies: setpos() does not set the curswant position.
              Message 6 of 14 , Aug 22, 2013
                Nikolay Pavlov wrote:

                > On Aug 22, 2013 8:05 PM, "Christian Brabandt" <cblists@...> wrote:
                > >
                > > On Thu, August 22, 2013 17:23, Bram Moolenaar wrote:
                > > > Christian Brabandt wrote:
                > > >> On Mo, 19 Aug 2013, Christian Brabandt wrote:
                > > >>
                > > >> > May be another optional parameter to the setpos() function, that
                > > >> > if given specifies the desired cursor position?
                > > >>
                > > >> Like the attached patch does.
                > > >
                > > > Hmm, I wonder if the extra list elements are going to cause a problem in
                > > > some existing script.
                > >
                > > I don't think, it will make a difference for the optional list-argument
                > > of the setpos() call. It might only make a difference for the list
                > > returned by the getpos() call now having 5 elements. If you're worried
                > > about that, simply let getpos('.') always return 4 elements (though
                > > this makes it harder to determine the prefered column).
                >
                > I bet there is a bunch of scripts using 4-variable lets. Simple grep over
                > the mess in $HOME/.vam (I hold all but my plugins there) found at least
                > LaTeX_box plugin (ftplugin/latex-box/common.vim) and python-mode-klen
                > (autoload/pymode/lint.vim, though it should have used line() and not
                > getpos()). I do not know how many plugins do
                > let pos=getpos('.')
                > ...
                > let [a,b,c,d]=pos
                > , use negative indices or something else. Why not use optional argumet to
                > getpos() then? Note: optional argument should make it return a dictionary.
                > 5 indistinguishable numbers are way too much.
                >
                > Also check out winsaveview(), particularly .curswant key. Maybe there is no
                > need to modify getpos().

                Yes, in complicated cases winsaveview() can be used.

                I think that in most cases the original problem applies: setpos() does
                not set the curswant position. I think the best way to fix this is by
                adding a separate set_curswant() function. Without argument it uses the
                current cursor position, and otherwise it sets the position to a column
                number.

                --
                FIXME and XXX are two common keywords used to mark broken or incomplete code
                not only since XXX as a sex reference would grab everybody's attention but
                simply due to the fact that Vim would highlight these words.
                -- Hendrik Scholz

                /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net \\\
                /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
                \\\ an exciting new programming language -- http://www.Zimbu.org ///
                \\\ help me help AIDS victims -- http://ICCF-Holland.org ///

                --
                --
                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.
              • Nikolay Pavlov
                ... problem in ... list-argument ... over ... to ... dictionary. ... is no ... I think that winrestview() should be officially allowed to accept custom
                Message 7 of 14 , Aug 22, 2013


                  On Aug 23, 2013 1:07 AM, "Bram Moolenaar" <Bram@...> wrote:
                  >
                  >
                  > Nikolay Pavlov wrote:
                  >
                  > > On Aug 22, 2013 8:05 PM, "Christian Brabandt" <cblists@...> wrote:
                  > > >
                  > > > On Thu, August 22, 2013 17:23, Bram Moolenaar wrote:
                  > > > > Christian Brabandt wrote:
                  > > > >> On Mo, 19 Aug 2013, Christian Brabandt wrote:
                  > > > >>
                  > > > >> > May be another optional parameter to the setpos() function, that
                  > > > >> > if given specifies the desired cursor position?
                  > > > >>
                  > > > >> Like the attached patch does.
                  > > > >
                  > > > > Hmm, I wonder if the extra list elements are going to cause a problem in
                  > > > > some existing script.
                  > > >
                  > > > I don't think, it will make a difference for the optional list-argument
                  > > > of the setpos() call. It might only make a difference for the list
                  > > > returned by the getpos() call now having 5 elements. If you're worried
                  > > > about that, simply let getpos('.') always return 4 elements (though
                  > > > this makes it harder to determine the prefered column).
                  > >
                  > > I bet there is a bunch of scripts using 4-variable lets. Simple grep over
                  > > the mess in $HOME/.vam (I hold all but my plugins there) found at least
                  > > LaTeX_box plugin (ftplugin/latex-box/common.vim) and python-mode-klen
                  > > (autoload/pymode/lint.vim, though it should have used line() and not
                  > > getpos()). I do not know how many plugins do
                  > >     let pos=getpos('.')
                  > >     ...
                  > >     let [a,b,c,d]=pos
                  > > , use negative indices or something else. Why not use optional argumet to
                  > > getpos() then? Note: optional argument should make it return a dictionary.
                  > > 5 indistinguishable  numbers are way too much.
                  > >
                  > > Also check out winsaveview(), particularly .curswant key. Maybe there is no
                  > > need to modify getpos().
                  >
                  > Yes, in complicated cases winsaveview() can be used.
                  >
                  > I think that in most cases the original problem applies: setpos() does
                  > not set the curswant position.  I think the best way to fix this is by
                  > adding a separate set_curswant() function.  Without argument it uses the
                  > current cursor position, and otherwise it sets the position to a column
                  > number.

                  I think that winrestview() should be officially allowed to accept custom dictionary:

                      call winrestview({'curswant': 3})

                  seems to work fine. No "If you have changed the values the result is unpredictable.", but say what can be set this way and what combinations of keys should not be used.

                  > --
                  > FIXME and XXX are two common keywords used to mark broken or incomplete code
                  > not only since XXX as a sex reference would grab everybody's attention but
                  > simply due to the fact that Vim would highlight these words.
                  >                                         -- Hendrik Scholz
                  >
                  >  /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net   \\\
                  > ///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
                  > \\\  an exciting new programming language -- http://www.Zimbu.org        ///
                  >  \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

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