Выполнить vim в новом окне urxvt, сохраняя тему

Выполнить vim в новом окне urxvt, сохраняя тему

Я хочу создать простой скрипт для запуска nvim(не gvim) в отдельном окне терминала (я использую urxvtterm). В настоящее время у меня есть:

#!/usr/bin/env bash

exec urxvt -hold -e "vim"

Кажется, это нормально и работает, но проблема в том, что тема vim не загружается при открытии терминала (вероятно, потому что .bashrcона не читается или из-за других странных проблем сbase16-оболочка).

Плагины загружаются, что означает, что загружен файл инициализации nvim. Я пытался сделать что-то вроде

exec urxvt -hold -e "source <absolute_path>/.bashrc; vim"

чтобы заставить base16-shell загрузить тему терминала (которая может быть зависимостью для темы vim), но это все равно не работает.

Я чувствую, что что-то упускаю, но не могу сделать правильно. Как заставить этот скрипт работать?

решение1

Хорошо, я решил проблему. Оказалось, что -eфлаг запускает команду, не запуская ее на самом делеинтерактивныйоболочка bash, что означает, что bash не выполняет чтение .bashrcпри запуске.

Так как base16-shellинициализируется тема терминала (которая на самом деле является зависимостью темы base16 vim), запуск скрипта из в .bashrcконце концов nvimзапускается с цветами по умолчанию (так как зависимость не загружена и base16-vim не может быть инициализирована должным образом).

Поэтому решение состоит в том, чтобы bashявно запустить интерактивную оболочку для чтения .bashrcи загрузки темы base16 и только после этого запустить ее ( в моем случае nvimэто псевдоним ).vim

Вот весь сценарий:

#!/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"

Связанный контент