Я пытаюсь сделать мою установку gVim максимально переносимой, и при этом я хочу поместить файл _viminfo каталог $VIM а не в $HOME . Я довольно новичок во взломе конфигураций vimrc, но вот что я пытался:

let viminfopath=$VIM."\\_viminfo"
execute "set viminfo='1000,n".escape(viminfopath, ' ')

" Some other portability stuff.
set nobackup
set nowritebackup
if has("win32") || has("win64")
    set directory=$TMP
else
    set directory=~/tmp
end

Это, кажется, не работает, хотя; у кого-нибудь есть советы?

Спасибо!

Редактировать: running :echo viminfopath выдает результат F:\Programs\Vim\_viminfo , поэтому сам путь, по крайней мере, действителен. Это должна быть операция execute которая не работает.

2 ответа2

1

Вы можете использовать предложения amix: (Я знаю, что подход MySys может быть реализован разными и лучшими способами, но я думаю, что вы можете понять идею)

fun! MySys()
  return "windows"
endfun

set runtimepath=~/vim_local,$VIMRUNTIME
source ~/vim_local/vimrc

$ VIMRUNTIME - подход, действительно интересный. Также проверьте amim vimrc , есть несколько советов по кроссплатформенности, с которых можно начать.

1

Я думаю, что если вы используете обратную косую черту в качестве разделителя каталогов, вы сломаете все, что не является Windows.

let viminfopath=$VIM."\\_viminfo"

Я бы стрелял за

let viminfopath=$VIM."/_viminfo"

вместо. Это должно работать в Windows, как и все остальное.

Конечно, это предположение, но я бы начал с этого.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .