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.