Exec vim na nova janela urxvt preservando o tema

Exec vim na nova janela urxvt preservando o tema

Quero criar um script simples para iniciar nvim(não gvim) em uma janela de terminal separada (estou usando urxvto 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 .bashrcnã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 -eo flag executa um comando sem realmente iniciarinterativobash shell, o que significa que o bash não lê .bashrcna inicialização.

À medida que base16-shellinicializa 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 .bashrcno 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 bashexplicitamente o shell interativo para ler .bashrce carregar o tema base16 e somente após esse lançamento nvim(que é alias vimna 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"

informação relacionada