![Exec vim na nova janela urxvt preservando o tema](https://rvso.com/image/109225/Exec%20vim%20na%20nova%20janela%20urxvt%20preservando%20o%20tema.png)
Quero criar um script simples para iniciar nvim
(não gvim
) em uma janela de terminal separada (estou usando urxvt
o termo). Atualmente tenho:
#!/usr/bin/env bash
exec urxvt -hold -e "vim"
Parece legítimo e funciona, mas o problema é que o tema vim não é carregado ao abrir o terminal (provavelmente porque .bashrc
não é lido ou por algum outro problema estranho combase16-shell).
Os plug-ins são carregados, o que significa que o arquivo init do nvim é carregado. Eu tentei fazer algo como
exec urxvt -hold -e "source <absolute_path>/.bashrc; vim"
para forçar o base16-shell a carregar o tema do terminal (que pode ser uma dependência do tema do vim), mas ainda não funciona.
Sinto que estou faltando alguma coisa, mas não consigo acertar. Como fazer esse script funcionar?
Responder1
Ok, então resolvi o problema. Acontece que -e
o flag executa um comando sem realmente iniciarinterativobash shell, o que significa que o bash não lê .bashrc
na inicialização.
À medida que base16-shell
inicializa o tema do terminal (que é de fato uma dependência do tema base16 do vim), a execução de um script a partir de a .bashrc
no final nvim
é iniciada com cores padrão (já que a dependência não é carregada e o base16-vim não pode inicializar corretamente).
Portanto, a solução é iniciar bash
explicitamente o shell interativo para ler .bashrc
e carregar o tema base16 e somente após esse lançamento nvim
(que é alias vim
na minha ocasião).
Aqui está o roteiro 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"