¿Cómo puedo hacer que .vimrc se lea desde un archivo externo?

¿Cómo puedo hacer que .vimrc se lea desde un archivo externo?

Me gustaría modificar mi .vimrcpara leer el valor de una variable de un archivo externo. ¿Cómo puedo hacer esto?

Específicamente, un amigo y yo compartimos un repositorio de git con nuestros .vimarchivos, pero hay algunas pequeñas diferencias en lo que queremos en nuestras configuraciones. Entonces, la mayor parte del archivo es común, pero usamos sentencias if para determinar si se cargan secciones específicas del usuario, como esta:

let whoami = "user2"
if whoami == "user1"
...

Después de verificar nuestro .vimrccontrol de fuente común, cada uno de nosotros tiene que cambiar la let whoamiasignación para que se cargue nuestra propia sección. En cambio, me gustaría mantener un archivo separado, que puede ser diferente para cada uno de nosotros, y desde el cual vim cargará ese valor de variable.

Quizás otro ángulo sobre esto sea:¿Vim leerá automáticamente todos los archivos de mi .vimdirectorio?Si es así, cada uno de nosotros podría colocar un enlace simbólico llamado nombre de usuario.vim y vincularlo a un archivo externo que sería diferente para cada uno de nosotros.

Respuesta1

en su archivo principal .vimrc:

source otherVimScriptFilePath.vim

luego simplemente coloque su declaración de variable en ese archivo:

" otherVimScriptFilePath.vim
let whoami = "user1"

Respuesta2

Usando un intento/captura

Desde que hice esta pregunta, se me ocurrió otro caso de uso para cargar un archivo externo: ajustes específicos de la máquina.

Dado que es posible que necesite o no realizar ajustes en una máquina determinada, estoy usando a try/catchpara cargar el archivo externo; si no existe tal archivo, lo dejo fallar silenciosamente.

" If there are any machine-specific tweaks for Vim, load them from the following file.
try 
  source ~/.vimrc_machine_specific
catch
  " No such file? No problem; just ignore it.
endtry 

Respuesta3

Para responder a la última pregunta, los archivos ~/.vimno se cargan automáticamente, pero todos los archivos ~/.vim/pluginsí lo hacen.

Respuesta4

el nombre del usuario que inició sesión está disponible en la variable de entorno $USER. puedes acceder a esa variable fácilmente:

:echo $USER

entonces, solo usa

execute "silent! source vimrc." . $USER

en su vimrc y coloque la configuración específica de su usuario en

vimrc.joe

o cualquiera que sea su nombre de usuario

información relacionada