Exec vim в новом окне urxvt сохранение темы

Я хочу создать простой сценарий для запуска nvim (не gvim) в отдельном окне терминала (я использую urxvt term). На данный момент у меня:

#!/usr/bin/env bash

exec urxvt -hold -e "vim"

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

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

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

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

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

0
07.04.2017, 22:00
1 ответ

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

Поскольку base16-shell инициализирует терминальную тему (которая действительно является зависимостью от темы vim base16), запуск скрипта из .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"
1
28.01.2020, 02:46

Теги

Похожие вопросы