Difference between revisions of "How to indicate that shell session is running inside Vifm"
(Fix syntax highlighting errors (use pre instead of source tag)) |
(Add the page to HOWTO category) |
||
Line 54: | Line 54: | ||
[https://q2a.vifm.info/372/indicate-that-shell-sessions-is-running-inside-vifm Vifm Q&A question] | [https://q2a.vifm.info/372/indicate-that-shell-sessions-is-running-inside-vifm Vifm Q&A question] | ||
+ | |||
+ | [[Category:HOWTO]] |
Latest revision as of 23:07, 31 August 2018
The idea is to make shell indicate whether it was run inside by Vifm and exiting it will bring Vifm back or not.
Contents
Variant #1. Demonstrated using zsh[edit]
Add the following to .zshrc
:
if [ $(ps -ocommand= $(ps -oppid= -p $$)) = "vifm" ]
then
printf "\e[48;5;21m"
echo "-- VIFM SHELL SESSION --"
export PROMPT="-- VIFM_SESSION --"$'\n'"${ret_status} %{$fg[cyan]%}%c%{$reset_color%} $(git_prompt_info)"
fi
It will look similar to this:
-- VIFM SHELL SESSION -- -- VIFM_SESSION -- ➜ ~ uname Linux -- VIFM_SESSION --
Variant #2. Demonstrated using bash[edit]
To be added to vifmrc
:
let $INSIDE_VIFM = 'true'
In .bashrc
:
if [ -n "$INSIDE_VIFM" ]; then
PS1="[V]$PS1"
unset INSIDE_VIFM
fi
Will look similar to this:
[V][~]$
Drawbacks[edit]
Environment variable might "leak" to some child process, which will later spawn a shell and trick it into reporting as if it's inside Vifm.