![Exec vim en el nuevo tema de preservación de ventana urxvt](https://rvso.com/image/109225/Exec%20vim%20en%20el%20nuevo%20tema%20de%20preservaci%C3%B3n%20de%20ventana%20urxvt.png)
Quiero crear un script simple para iniciar nvim
(no gvim
) en una ventana de terminal separada (estoy usando urxvt
el término). Actualmente tengo:
#!/usr/bin/env bash
exec urxvt -hold -e "vim"
Parece legítimo y funciona, pero el problema es que el tema vim no se carga al abrir la terminal (probablemente porque .bashrc
no se lee o por algún otro problema extraño conbase16-shell).
Sin embargo, los complementos se cargan, lo que significa que el archivo de inicio de nvim está cargado. Intenté hacer algo como
exec urxvt -hold -e "source <absolute_path>/.bashrc; vim"
para forzar a base16-shell a cargar el tema del terminal (que podría ser una dependencia del de vim) pero todavía no funciona.
Siento que me falta algo pero no logro hacerlo bien. ¿Cómo hacer que este script funcione?
Respuesta1
Ok, entonces resolví el problema. Resultó que -e
flag ejecuta un comando sin iniciarlo realmenteinteractivobash shell, lo que significa que bash no lee .bashrc
al iniciar.
A medida que base16-shell
se inicializa el tema del terminal (que de hecho es una dependencia del tema base16 de vim), .bashrc
al final nvim
se ejecuta un script desde a con colores predeterminados (ya que la dependencia no está cargada y base16-vim no se puede inicializar correctamente).
Entonces, la solución es iniciar bash
el shell interactivo explícitamente para leer .bashrc
y cargar el tema base16 y solo después de ese lanzamiento nvim
(que vim
en mi ocasión tiene un alias).
Aquí está el guión completo:
#!/usr/bin/env bash
# -hold urxvt option is not needed as vim stays running
# -i bash option to run interactively
exec urxvt -e bash -i -c "vim"