Derive o diretório vimfiles da opção runtimepath


0

Eu quero definir um $VIMFILES variável no meu vimrc arquivo para determinar de uma maneira não específica da plataforma o caminho do arquivo do meu vimfiles diretório (a la Como obtenho o diretório home do Vim? ). Isso deve ser trivial (na verdade, acho que deveria ser uma variável interna), mas não consigo descobrir uma maneira robusta de fazer isso. O método usando um plugin requer que você coloque qualquer código que realmente usa esta variável no seu after diretório, que (na minha opinião) faz o plugin quase inútil. O método usando if has determinar o sistema operacional e definir manualmente a variável parece absurdamente frágil e tedioso.

Então, eu gostaria apenas de fazer a suposição de que o primeiro componente do valor padrão do runtimepath opção é a vimfiles diretório que eu quero.

No entanto, não tenho ideia de como extrair o primeiro componente de rtp. Isso, novamente, parece que deveria ser trivial, mas &rtp[0] expande para o primeiro personagem do runtimepath, porque aparentemente &rtp é na verdade uma string, embora seja claramente semanticamente uma lista (!!?).

Então ... como eu obtenho o primeiro componente do caminho do runtim? Existe uma maneira melhor de fazer isso?


Por curiosidade, que problema você está tentando resolver?
romainl

Eu uso o $VIMFILES variável tanto para configurar rtp e path para Vundle e para definir undodir para persistente desfazer. Sem essa variável, eu precisaria da lógica de localização do diretório do vimfile em ambas as partes da minha configuração do Vim.
Kyle Strand

Respostas:


0

Eu acho que entendi:

set rtp&
let $VIMFILES=split(&rtp,",")[0]

Ainda parece excessivamente manual, mas não é tão feio quanto eu temia.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.