On 14.03.2012 20:11, Benjamin R. Haskell wrote:
On Wed, 14 Mar 2012, Timothy Madden wrote:

On 14.03.2012 19:40, Charles Campbell wrote:
Timothy Madden wrote:
On 14.03.2012 18:21, Sergey Khorev wrote:
:let&rtp = '~/.vim,' .&rtp

Or even set rtp+=~/.vim or set rtp^=~/.vim :)

But I want to insert the ~/.vim/ dir inside &rtp in the right place
before $VIMRUNTIME, and only if it is not included in &rtp already.


set rtp+= ... will not append if already ... is already present
set rtp^= ... will prepend, but will not prepend if ... is already
present

For this I need to process every dir in &rtp and compare it with
both ~/.vim/ and $VIMRUNTIME. And for this I need the canonical path
names.

Are you worried about whether or not ~/.vim is already in
$VIMRUNTIME? $VIMRUNTIME has already been expanded, so if ~/.vim
duplicates one of the $VIMRUNTIME entries, it won't prepend with ^=
and won'tappend with += .

Ok, than
:set rtp ^= ~/.vim
:set rtp += ~/.vim
will take care of any duplicates.

But if ~/.vim is not already in &rtp, that it will be prepended (or
appended) to the entire list, and that is not what I want. I would
like to insert it in the list right before $VIMRUNTIME.

(by the way, $VIMRUNTIME is not &runtimepath, it is only one of the
directories in &runtimepath, and it usually appears there in the
middle of the list).

Right, so is there any reason you don't have control over what's being
added to &rtp?

I.e. If you're using some kind of plugin management, just do:

==> in your .vimrc/_vimrc <==

" 'rtp' contains $VIMRUNTIME by default...
" 'rtp' contains $HOME/vimfiles and $VIM/vimfiles by default...

" this next section might depend on recent changes... (I think vimfiles
" is used if it exists, and .vim otherwise)
"
" if vimfiles exists, it will have been used rather than .vim
" otherwise, &rtp should already contain .vim
if (exists(expand('~/vimfiles')))
" then add ~/.vim before and ~/.vim/after after
se rtp^=~/.vim
se rtp+=~/.vim/after
endif

I believe the order of the directories in &runtimepath is significant. The fact that Vim has those after/ directories, which are meant to come last in &runtimepath, shows my point I believe.

Now, since 'runtimepath' is a user setting, that is 'runtimepath' is meant to be set and modified by the user, not automatically by my script, than I want to try to make my script as non-intrusive as possible.

That means I want to at least put my directory, which is ~/.vim, in the right position in &runtimepath, in front of the $VIMRUNTIME directory.

Thank you,
Timothy Madden

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

Reply via email to