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

How to wait for VIM to finish parsing document?

Expand Messages
  • Viminator
    I m writing a small Vimscript that will open a number of files, indent them (gg=G), and then save them. I ve noticed that oftentimes, the first couple of files
    Message 1 of 2 , Apr 16, 2013
    • 0 Attachment
      I'm writing a small Vimscript that will open a number of files, indent them (gg=G), and then save them.

      I've noticed that oftentimes, the first couple of files do not get indented correctly, even if the command works fine when executed manually. It looks as if the indentation command is being executed before the file is fully parsed, or perhaps before the syntax plugin finishes loading.

      I've tried adding a manual "sleep" to the beginning of the command, but this doesn't seem to make a difference.

      Anyone know what might be causing this issue, and how I can force VIM to finish loading plugins / parsing before the command runs?

      --
      --
      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 vim_use+unsubscribe@....
      For more options, visit https://groups.google.com/groups/opt_out.
    • Ben Fritz
      ... Vim is single-threaded, your problem is NOT caused by any timing issues unless your indent script shells out to a background task that you explicitly do
      Message 2 of 2 , Apr 16, 2013
      • 0 Attachment
        On Tuesday, April 16, 2013 12:12:09 PM UTC-5, Viminator wrote:
        > I'm writing a small Vimscript that will open a number of files, indent them (gg=G), and then save them.
        >
        > I've noticed that oftentimes, the first couple of files do not get indented correctly, even if the command works fine when executed manually. It looks as if the indentation command is being executed before the file is fully parsed, or perhaps before the syntax plugin finishes loading.
        >
        > I've tried adding a manual "sleep" to the beginning of the command, but this doesn't seem to make a difference.
        >
        > Anyone know what might be causing this issue, and how I can force VIM to finish loading plugins / parsing before the command runs?

        Vim is single-threaded, your problem is NOT caused by any timing issues
        unless your indent script shells out to a background task that you
        explicitly do asynchronously.

        Most likely there is a problem with your command, or you've suppressed the
        autocmds that set filetype or syntax or the like (maybe implicitly).

        If you're using :bufdo or :argdo, see the note at :help :bufdo and
        :help :argdo:

        Note: While this command is executing, the Syntax
        autocommand event is disabled by adding it to
        'eventignore'. This considerably speeds up editing
        each buffer.

        If your indent script depends on the syntax highlighting you may need to
        manually run the syntax autocmd for the file. I think :doautocmd can be
        used to do this easily.

        If this doesn't fix your problem, please give the exact command you are
        running in case there is something else wrong with it.

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