Я нахожусь в энергии весь день в последнее время, практикуя код. Часто времена, когда я захочу сделать что-то от подсказки - я буду использовать привязку клавиш для:! колотите и сделайте то, что когда-либо я должен сделать, затем введите выход для возврата к сценарию энергии, я продолжаю работать.
иногда я забываю, что нахожусь в оболочке и потребности ввести по абсолютному адресу вокруг для нахождения моего сценария. Есть ли способ настроить его так, чтобы моя подсказка сказала "$ энергии": или что-то подобное?
Я предполагаю, что мог попытаться создать a .bashrc_for_vim
и выполненный source .bashrc_for_vim
или что-то как этот, но это кажется довольно неуклюжим.
Кто-либо здесь выяснил изящный способ сделать это?
Я использую $SHLVL
переменная среды, описанная в man bash
как
SHLVL Incremented by one each time an instance of bash is started.
В моем ~/.bashrc
:
# set a variable to reflect SHLVL > 1
if [[ $SHLVL -gt 1 ]] ; then
export SUBSHELL="${SUBSHELL:+$SUBSHELL}+"
else
export SUBSHELL=""
fi
Я использую это позже в установке моего PS1
для добавления "+" для каждого уравнивают.
if [[ "$color_prompt" = yes ]]; then
# chroot? Depth green user@host nocolor : green $PWD ref (status) off $ or # space
PS1='${debian_chroot:+($debian_chroot)}${SUBSHELL}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[1;31m\]($?)\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}${SUBSHELL}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt
Используемый, это похоже:
walt@bat:~(0)$ uptime
22:57:48 up 2 days, 9:51, 2 users, load average: 2.23, 0.75, 0.41
# start a subshell, see the first "+" appear
walt@bat:~(0)$ bash
# start a 2nd subshell, see the second "+" appear
+walt@bat:~(0)$ bash
# Start vim, then do :!bash
++walt@bat:~(0)$ vim foo
# here, underneath vim, look at the process tree leading to here
+++walt@bat:~(0)$ ps -fp$$
UID PID PPID C STIME TTY TIME CMD
walt 6803 6802 0 23:10 pts/21 00:00:00 bash
+++walt@bat:~(0)$ ps -fp$$,6802
UID PID PPID C STIME TTY TIME CMD
walt 6802 6732 0 23:10 pts/21 00:00:00 vim foo
walt 6803 6802 0 23:10 pts/21 00:00:00 bash
+++walt@bat:~(0)$ ps -fp$$,6802,6732
UID PID PPID C STIME TTY TIME CMD
walt 6732 6662 0 23:10 pts/21 00:00:00 bash
walt 6802 6732 0 23:10 pts/21 00:00:00 vim foo
walt 6803 6802 0 23:10 pts/21 00:00:00 bash
+++walt@bat:~(0)$ ps -fp$$,6802,6732,6662
UID PID PPID C STIME TTY TIME CMD
walt 6662 5932 0 23:10 pts/21 00:00:00 bash
walt 6732 6662 0 23:10 pts/21 00:00:00 bash
walt 6802 6732 0 23:10 pts/21 00:00:00 vim foo
walt 6803 6802 0 23:10 pts/21 00:00:00 bash
+++walt@bat:~(0)$ ps -fp$$,6802,6732,6662,5932
UID PID PPID C STIME TTY TIME CMD
walt 5932 5795 0 Jan29 pts/21 00:00:00 bash
walt 6662 5932 0 23:10 pts/21 00:00:00 bash
walt 6732 6662 0 23:10 pts/21 00:00:00 bash
walt 6802 6732 0 23:10 pts/21 00:00:00 vim foo
walt 6803 6802 0 23:10 pts/21 00:00:00 bash
+++walt@bat:~(0)$ ps -fp$$,6802,6732,6662,5932,5795
UID PID PPID C STIME TTY TIME CMD
walt 5795 5070 0 Jan29 ? 00:00:37 /usr/lib/gnome-terminal/gnome-terminal-server
walt 5932 5795 0 Jan29 pts/21 00:00:00 bash
walt 6662 5932 0 23:10 pts/21 00:00:00 bash
walt 6732 6662 0 23:10 pts/21 00:00:00 bash
walt 6802 6732 0 23:10 pts/21 00:00:00 vim foo
walt 6803 6802 0 23:10 pts/21 00:00:00 bash
# now unwind, returning to vim
+++walt@bat:~(0)$ exit
# back in vim, :q!
Press ENTER or type command to continue
# unwind
++walt@bat:~(0)$ exit
# unwind
+walt@bat:~(0)$ exit
# back at the top level
walt@bat:~(0)$ : and I'm out
Vim устанавливает VIMRUNTIME
(и VIM
) переменные среды в оболочке от :sh
или :!bash
, таким образом, можно обнаружить его тот путь в Вашем .bashrc
:
if [ "$VIMRUNTIME" ]
then
PS1="vim: $PS1"
fi
Вышеупомянутое снабдит префиксом Вашу существующую подсказку "энергию":. Вы могли изменить его на что-то еще, как просто vim $:
, если Вы хотели. Помещенный, что в конце файла так, чтобы Ваша нормальная подсказка была настроена к тому времени, таким образом, можно или использовать его или заменить его.
Вы не можете сделать того же для Ctrl-Z, потому что это действительно возвращает Вас Вашей исходной оболочке - это не новая сессия, это - то, которое Вы запустили vim
от во-первых, таким образом, это имеет ту же среду и настройки, поскольку Вы запустили с.