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

Re: Access vim command from the lua end WAS: How do the default key commands work

Expand Messages
  • Marco
    ... Nice list I didn t know before. ... Thanks for the explanation. It s not about remapping. I m writing a vimscript in lua. In a function I need the position
    Message 1 of 3 , Jan 30, 2011
      On 2011-01-30 Tim Chase <vim@...> wrote:

      > If you want a catalog of the functionality, you can look at
      > things like
      >
      > [...]
      >
      > or more generically:
      >
      > :h index.txt

      Nice list I didn't know before.

      > They're available "natively" from within a "noremap" version of a
      > mapping. So if you want to swap the functionality of "j" and "k"
      > (wow, that would get annoying, but it's a good example), you can use
      >
      > :nnoremap j k
      > :nnoremap k j
      >
      > If you didn't use the "nore" version, then the 2nd one would
      > produce a recursive mapping:
      >
      > :nmap j k " now both j & k act like k
      > :nmap k j " now k calls j calls k calls j calls k...boom
      >
      > Hope this makes sense. There's no underlying function (like I
      > understand Emacs has) accessible to which keys can be rebound.

      Thanks for the explanation.

      It's not about remapping. I'm writing a vimscript in lua. In a function I need
      the position of the opening and closing bracket. So in vim I would execute »%«
      twice. Than I have both positions. If there would be functions for the basic
      comands I just would execute the corresponding function. But apparently this
      is not the case.

      So I rephrase my question. How to access basic vim commands (here: %) from
      inside lua? How to access an arbitrary vim function from inside lua?

      vim 7.3 compiled with lua interpreter


      Regards
      Marco


      --
      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
    • Ben Schmidt
      ... Use the :normal command (probably with ! to avoid using user mappings). E.g. ... Then to get the cursor position, you can use the getpos() function. E.g.
      Message 2 of 3 , Jan 30, 2011
        > It's not about remapping. I'm writing a vimscript in lua. In a function I need
        > the position of the opening and closing bracket. So in vim I would execute »%«
        > twice. Than I have both positions. If there would be functions for the basic
        > comands I just would execute the corresponding function. But apparently this
        > is not the case.
        >
        > So I rephrase my question. How to access basic vim commands (here: %) from
        > inside lua? How to access an arbitrary vim function from inside lua?

        Use the :normal command (probably with ! to avoid using user mappings).
        E.g.

        :lua vim.command"normal! %"

        Then to get the cursor position, you can use the getpos() function. E.g.

        :lua mypos = vim.eval"getpos('.')"

        Or something like that (I don't know Lua, and don't have the interface
        compiled in, so haven't tested; but this is the idea).

        Smiles,

        Ben.



        >
        > vim 7.3 compiled with lua interpreter
        >
        >
        > Regards
        > Marco
        >
        >

        --
        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
      • Marco
        ... Thank you very much. Marco -- You received this message from the vim_use maillist. Do not top-post! Type your reply below the text you are replying to.
        Message 3 of 3 , Jan 31, 2011
          On 2011-01-31 Ben Schmidt <mail_ben_schmidt@...> wrote:

          > > So I rephrase my question. How to access basic vim commands (here: %) from
          > > inside lua? How to access an arbitrary vim function from inside lua?
          >
          > Use the :normal command (probably with ! to avoid using user mappings).
          > E.g.
          >
          > :lua vim.command"normal! %"
          >
          > Then to get the cursor position, you can use the getpos() function. E.g.
          >
          > :lua mypos = vim.eval"getpos('.')"
          >

          Thank you very much.

          Marco


          --
          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
        Your message has been successfully submitted and would be delivered to recipients shortly.