Моя командная строка настроена на добавление красного символа «+», который указывает, что я нахожусь в vim «: sh», в отличие от обычного сеанса оболочки. Краеугольным камнем этого является то, что «$$» является pid текущего процесса, поэтому:
MY_PPID=$(ps --no-header -o ppid -p $$) # Gets the pid of the parent
# process.
MY_PCMDLINE=$(ps --no-header -o cmd -p $MY_PPID) # Gets its command line.
MY_CMDDASH=$(awk '{print $1}' <<<$MY_PCMDLINE) # Gets the command name, possibly
# with a preceding hyphen.
MY_CMD=${MY_CMDDASH#-} # Get the bare command name.
Когда у вас есть это, вы можете легко встроить и создать что-то, как я описал, для использования в вашем .bashrc или подобном.
Примечание : метод переменной среды ($ VIM), описанный в другом месте, кажется лучше, чем этот, но я оставлю это, поскольку он работает для определения, являетесь ли вы дочерним процессом чего-либо (не только vim).