Como obtenho o diretório home do Vim?

7

Eu queria definir a variável VIMHOME dessa maneira (comum para Windows e Linux),

let $VIMHOME=expand("%:p")."/..",

para que VIMHOME seja "~ / .vim" no Linux ou "caminho / para / vimfiles" no Windows.

Coloquei isso em um arquivo var.vim e coloquei isso no diretório do plugin. Ele carrega corretamente, mas o VIMHOME está definido apenas para "./..".

Como obtenho o caminho completo de um arquivo usando expand ?

Existe uma maneira fácil de definir VIMHOME ?

Editar: Eu mudei a expressão para:

let $VIMHOME=expand("<sfile>:p:h")

Agora, VIMHOME está definido como "~ / .vim / plugin" no Linux.

Meu requisito é definir VIMHOME como "~ / .vim" ou "caminho / para / vimfiles". Mas,

let $VIMHOME=expand("<sfile>:p:h")
let $VIMHOME=expand("$VIMHOME:p:h")

não está funcionando.

Como posso resolver isso?

    
por asdfg 15.03.2010 / 06:11

2 respostas

12

Coloque isso no seu arquivo de plug-in var.vim :

let $VIMHOME=expand('<sfile>:p:h:h')

% em expandir se referirá ao arquivo que está sendo editado (ou seja, o nome do caminho dado na linha de comando). <sfile> se referirá ao arquivo que está sendo "originado" (ou seja, o plug-in ou arquivo de inicialização que está ativo quando a expansão é feita).

O modificador :p torna o nome do caminho absoluto e o sufixo :h descarta o último componente do nome do caminho (ou seja, o nome do arquivo nesse caso).

    
por 15.03.2010 / 07:37
3

Isso é o que eu estava procurando,

if has('win32') || has ('win64')
    let $VIMHOME = $VIM."/vimfiles"
else
    let $VIMHOME = $HOME."/.vim"
endif
    
por 15.03.2010 / 10:04

Tags