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 git con nuestros .vimarchivos, pero hay algunas pequeñas diferencias en lo que queremos en nuestras configuraciones. Por lo tanto, 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 control común .vimrcfuera de la fuente, cada uno 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 variable.
Quizás otro ángulo sobre esto es: ¿leerá vim automáticamente todos los archivos en mi .vimdirectorio? Si es así, podríamos poner un enlace simbólico llamado username.vim, y vincularlo a un archivo externo que sería diferente para cada uno de nosotros.

let whoami = ""justo antes de lasourcelínea, de modo que si no puede cargar el archivo externo, la variable existe y recibo el mensaje de error que habíamos configurado previamente para la variable que no se está configurando.silent! sourceparteUsando un try / catch
Desde que hice esta pregunta, se me ocurrió otro caso de uso para cargar un archivo externo: ajustes específicos de la máquina.
Como puedo o no necesitar hacer ajustes en una máquina determinada, estoy usando a
try/catchpara cargar el archivo externo; Si no hay tal archivo, dejo que falle en silencio.fuente
Para responder a la última pregunta, los archivos
~/.vimno se cargan automáticamente, pero todos los archivos sí~/.vim/plugin.fuente
after,autoload)Puede hacer que su ~ / .vimrc cargue otro archivo usando el
:sourcecomando. Por ejemplo, cada uno podría poner sus comandos únicos en ~ / .myvimrc y cargar esos comandos conO, como estaba pensando, cada uno podría poner su nombre en ese archivo así:
y luego pon esto en tu ~ / .vimrc:
Sin embargo, en lugar de poner sus nombres en archivos, puede usar $ USER como sugirió akira, o configurar
userusandowhoami, de esta manera:La función sustituto () es necesaria porque la salida del sistema () generalmente tiene un '\ n' agregado al final.
fuente
whoamino funciona en windowswhoamigenera un nuevo proceso, cuando abre su editor, debe ser rápido y no (inútil) hacer el trabajo varias veces nuevamente.El nombre del usuario conectado está disponible en la variable de entorno $ USER. puedes acceder a esa variable fácilmente:
entonces, solo usa
en su vimrc y ponga su configuración específica de usuario en
o cualquiera que sea su nombre de usuario
fuente
No estoy seguro de cómo se ve su vimrc, por lo que esto puede no ser factible, pero si hay partes grandes que usted y su amigo comparten, es posible que desee dividirlos en complementos separados. Puede agregar archivos al
~/.vim/plugindirectorio para cargarlos en el inicio. (Se cargan en orden alfabético; úselos:scriptnamespara verificar).De esa manera, cada uno puede tener un vimrc que es completamente único, pero todas sus configuraciones comunes están en complementos. Si los separa lógicamente, también facilita compartir con otros.
fuente