Acho que entendi:
set rtp&
let $VIMFILES=split(&rtp,",")[0]
Ainda parece excessivamente manual, mas não é tão feio quanto eu temia.
Eu quero definir uma variável $VIMFILES no meu arquivo vimrc para determinar de uma maneira não específica da plataforma o caminho do arquivo do meu diretório vimfiles (a la Como obtenho o diretório pessoal 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 use esta variável no diretório after , o que (na minha opinião) torna o plugin quase inútil. O método usando if has para determinar o sistema operacional e definir manualmente a variável parece absurdamente frágil e tedioso.
Portanto, gostaria de supor que o primeiro componente do valor padrão da opção runtimepath é o diretório vimfiles desejado.
No entanto, não tenho ideia de como extrair o componente primeiro de rtp . Isso, novamente, parece que deve ser trivial, mas &rtp[0] expande para o primeiro caractere do caminho do runtim, porque aparentemente &rtp é na verdade uma string, embora seja claramente semanticamente uma lista (! !?).
Então ... como obtenho o primeiro componente do caminho do caminho? Existe uma maneira melhor de fazer isso?
Tags vim vimrc cross-platform