Получить абсолютный путь к tmux.conf в конфигурационном файле tmux - PullRequest
0 голосов
/ 10 апреля 2020

Я отчаянно пытаюсь извлечь абсолютный путь к файлу tmux.conf (который является символической c ссылкой) внутри самого файла. Обычно этого легко добиться в bash с помощью:

file_dir=$(dirname $(realpath -f $0))

Но я не уверен, как этого добиться в tmux.conf.

Краткая справка: у меня есть репозиторий, в котором хранится мой конфиг tmux, который я использую на нескольких машинах. Все, что я хочу сделать, это клонировать репозиторий, установить символьную ссылку c, и tmux.conf выяснит, где находится репозиторий и все необходимые файлы. Но поэтому мне нужно знать об абсолютном пути символьной ссылки. Я не хочу ничего добавлять в bashr c или создавать другой скрипт, который запускает tmux.conf.

Кто-нибудь предлагает, как этого добиться?

Как заметил @Nicholas Marriott, это работает как шарм! Спасибо.

run -b 'tmux set-env -g TMUX_PLUGIN_MANAGER_PATH "$(dirname $(realpath -f $HOME/.tmux.conf))/plugins/"'
ran -b '$(dirname $(realpath -f $HOME/.tmux.conf)/plugins/tpm/tpm)'

1 Ответ

0 голосов
/ 10 апреля 2020

Нет способа получить путь к файлу конфигурации, например $0, но если вы знаете его местоположение и просто хотите знать, куда он указывает, вы можете, например:

run 'tmux set -g @conf_dir "$(dirname $(realpath -f ~/.tmux.conf))"'

Тогда используйте #{@conf_dir}.

Но учтите, что source-file не расширяет форматы, поэтому вы не можете просто сделать source-file "#{@conf_dir}/*.conf" - вам придется использовать run-shell, например:

run 'tmux source "#{@conf_dir}/*.conf"'

Кроме того, поскольку вы устанавливаете опцию пользователя, она не будет доступна до тех пор, пока не будет выполнена команда, поэтому не во время разбора.

...