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

126324Re: replace e flag works in command but fails if that command in key mapping

Expand Messages
  • porphyry5
    Oct 3, 2011
    • 0 Attachment
      You're right, it does load .vimrc first, because *new* entries made to
      that file show up in the session, but modified entries do not, because
      they are overwritten, and deleted entries still exist in the session,
      because the sessions file restores them. I really can't see the point
      of preserving these relic entries like this, surely one would always
      want to be using the most up to date .vimrc in its entirety. Instead
      what one gets is a mixture of the most recent .vimrc and the one in
      effect when the session was first created. That's confusing enough
      when one uses only one session, but if you have several of them for
      different projects, each using a different mix of .vimrc files?

      So I googled for solutions to this problem, and apparently these
      entries in vimrc, in the order given, will do the trick, though
      deleted entries will still live on in the session, but those present
      no problem.

      :autocmd! " Remove ALL autocommands for current group, ensures
      subsequent aus will only ever be included once
      au! BufWritePost ~/.vimrc source % " reload .vimrc each time the
      file is updated

      So now I'm going to kill my current session file and recreate it, and
      test this autocommand out.


      On Oct 2, 10:35 am, Tony Mechelynck <antoine.mechely...@...>
      wrote:
      > On 02/10/11 16:04, porphyry5 wrote:
      >
      > > Well, I think I finally have this figured out.  If I'm using sessions,
      > > any session includes its own .vimrc, being that .vimrc in effect when
      > > the session was first begun.  Then changing the actual .vimrc file has
      > > no effect on the session, because it will never reload the
      > > actual .vimrc.  So if I want to change a mapping in .vimrc, and have
      > > the benefit of that change in my session, I must make the new mapping
      > > explicitly in the current session, as well as in .vimrc.
      >
      > On the contrary, starting Vim with -S will source your vimrc first; but
      > then it will proceed with your session file, which may override anything
      > your vimrc has set.
      >
      > You may use sessions without running :mksession -- a session file is
      > just a Vim script sourced after your vimrc, usually to set up your
      > windows and tabs and such. You can create one by hand, e.g. as
      >
      > cd ~
      > e file1.txt
      > new file2.txt
      > new /path/to/file3.txt
      > lcd %:h
      > tabnew /someotherpathto/file4.txt
      > tabnew file5.txt
      > tab help
      > tabnext  " wrap around to first tab
      > wincmd w " wrap around to first window
      >
      > You can even name it ~/Session.vim, then "vim -S" or "gvim -S" will run
      > it; and they will use all the settings of your vimrc too.
      >
      > Best regards,
      > Tony.
      > --
      > There's only one way to have a happy marriage and as soon as I learn
      > what it is I'll get married again.
      >                 -- Clint Eastwood

      --
      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
    • Show all 5 messages in this topic