VIM, when I shell to prompt using :!bash I'd like the command prompt to reflect me being in a shell












0















I am in vim all day lately, practicing code. Often times when I want to do something from the prompt - I will use a key binding for :!bash and do what ever I need to do, then type exit to return to the vim script I am working on.



sometimes I forget that I am in a shell and need to poke around to find my script. Is there a way to set it up so that my prompt says "vim $:" or something similar?



I suppose I could try to create a .bashrc_for_vim and run source .bashrc_for_vim or something like that, but that seems pretty clunky.



Has anyone here figured out an elegant way to do this?










share|improve this question



























    0















    I am in vim all day lately, practicing code. Often times when I want to do something from the prompt - I will use a key binding for :!bash and do what ever I need to do, then type exit to return to the vim script I am working on.



    sometimes I forget that I am in a shell and need to poke around to find my script. Is there a way to set it up so that my prompt says "vim $:" or something similar?



    I suppose I could try to create a .bashrc_for_vim and run source .bashrc_for_vim or something like that, but that seems pretty clunky.



    Has anyone here figured out an elegant way to do this?










    share|improve this question

























      0












      0








      0








      I am in vim all day lately, practicing code. Often times when I want to do something from the prompt - I will use a key binding for :!bash and do what ever I need to do, then type exit to return to the vim script I am working on.



      sometimes I forget that I am in a shell and need to poke around to find my script. Is there a way to set it up so that my prompt says "vim $:" or something similar?



      I suppose I could try to create a .bashrc_for_vim and run source .bashrc_for_vim or something like that, but that seems pretty clunky.



      Has anyone here figured out an elegant way to do this?










      share|improve this question














      I am in vim all day lately, practicing code. Often times when I want to do something from the prompt - I will use a key binding for :!bash and do what ever I need to do, then type exit to return to the vim script I am working on.



      sometimes I forget that I am in a shell and need to poke around to find my script. Is there a way to set it up so that my prompt says "vim $:" or something similar?



      I suppose I could try to create a .bashrc_for_vim and run source .bashrc_for_vim or something like that, but that seems pretty clunky.



      Has anyone here figured out an elegant way to do this?







      bash vim prompt






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Feb 1 at 2:03









      Robert BakerRobert Baker

      8210




      8210






















          2 Answers
          2






          active

          oldest

          votes


















          1














          I make use of the $SHLVL environment variable, described in man bash as



          SHLVL  Incremented by one each time an instance of bash is started.


          In my ~/.bashrc:



          # set a variable to reflect SHLVL > 1
          if [[ $SHLVL -gt 1 ]] ; then
          export SUBSHELL="${SUBSHELL:+$SUBSHELL}+"
          else
          export SUBSHELL=""

          fi


          I use this later in setting up my PS1 to add a "+" for each level down.



          if [[ "$color_prompt" = yes ]]; then
          # chroot? Depth green user@host nocolor : green $PWD ref (status) off $ or # space
          PS1='${debian_chroot:+($debian_chroot)}${SUBSHELL}[33[01;32m]u@h[33[00m]:[33[01;34m]w[33[1;31m]($?)[33[00m]$ '
          else
          PS1='${debian_chroot:+($debian_chroot)}${SUBSHELL}u@h:w$ '
          fi
          unset color_prompt force_color_prompt


          In use, it looks like:



          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





          share|improve this answer
























          • Hey thank you very much! That works perfectly when I shell out, differently when I <CTRL Z>. One question though, what value is represented between the ( )'s, in your case (0)? The reason I ask is I did a <CRTL Z> from Vim and it didn't have the +, but it did have a value of (140) in red. there.

            – Robert Baker
            Feb 1 at 4:44



















          2














          Vim sets the VIMRUNTIME (and VIM) environment variables within the shell from :sh or :!bash, so you can detect it that way in your .bashrc:



          if [ "$VIMRUNTIME" ]
          then
          PS1="vim: $PS1"
          fi


          The above will prefix your existing prompt with "vim: ". You could change it to something else, like just vim $:, if you wanted. Put that at the end of the file so that your normal prompt has been set up by then, so you can either use it or replace it.



          You can't do the same for Ctrl-Z because that really does return you to your original shell - it's not a new session, it's the one you started vim from in the first place, so it has the same environment and settings as you started with.






          share|improve this answer
























          • that is really interesting, thank you for the information, I am going to give that a try!

            – Robert Baker
            Feb 1 at 4:50











          Your Answer








          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "89"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f1114597%2fvim-when-i-shell-to-prompt-using-bash-id-like-the-command-prompt-to-reflect%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          2 Answers
          2






          active

          oldest

          votes








          2 Answers
          2






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          1














          I make use of the $SHLVL environment variable, described in man bash as



          SHLVL  Incremented by one each time an instance of bash is started.


          In my ~/.bashrc:



          # set a variable to reflect SHLVL > 1
          if [[ $SHLVL -gt 1 ]] ; then
          export SUBSHELL="${SUBSHELL:+$SUBSHELL}+"
          else
          export SUBSHELL=""

          fi


          I use this later in setting up my PS1 to add a "+" for each level down.



          if [[ "$color_prompt" = yes ]]; then
          # chroot? Depth green user@host nocolor : green $PWD ref (status) off $ or # space
          PS1='${debian_chroot:+($debian_chroot)}${SUBSHELL}[33[01;32m]u@h[33[00m]:[33[01;34m]w[33[1;31m]($?)[33[00m]$ '
          else
          PS1='${debian_chroot:+($debian_chroot)}${SUBSHELL}u@h:w$ '
          fi
          unset color_prompt force_color_prompt


          In use, it looks like:



          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





          share|improve this answer
























          • Hey thank you very much! That works perfectly when I shell out, differently when I <CTRL Z>. One question though, what value is represented between the ( )'s, in your case (0)? The reason I ask is I did a <CRTL Z> from Vim and it didn't have the +, but it did have a value of (140) in red. there.

            – Robert Baker
            Feb 1 at 4:44
















          1














          I make use of the $SHLVL environment variable, described in man bash as



          SHLVL  Incremented by one each time an instance of bash is started.


          In my ~/.bashrc:



          # set a variable to reflect SHLVL > 1
          if [[ $SHLVL -gt 1 ]] ; then
          export SUBSHELL="${SUBSHELL:+$SUBSHELL}+"
          else
          export SUBSHELL=""

          fi


          I use this later in setting up my PS1 to add a "+" for each level down.



          if [[ "$color_prompt" = yes ]]; then
          # chroot? Depth green user@host nocolor : green $PWD ref (status) off $ or # space
          PS1='${debian_chroot:+($debian_chroot)}${SUBSHELL}[33[01;32m]u@h[33[00m]:[33[01;34m]w[33[1;31m]($?)[33[00m]$ '
          else
          PS1='${debian_chroot:+($debian_chroot)}${SUBSHELL}u@h:w$ '
          fi
          unset color_prompt force_color_prompt


          In use, it looks like:



          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





          share|improve this answer
























          • Hey thank you very much! That works perfectly when I shell out, differently when I <CTRL Z>. One question though, what value is represented between the ( )'s, in your case (0)? The reason I ask is I did a <CRTL Z> from Vim and it didn't have the +, but it did have a value of (140) in red. there.

            – Robert Baker
            Feb 1 at 4:44














          1












          1








          1







          I make use of the $SHLVL environment variable, described in man bash as



          SHLVL  Incremented by one each time an instance of bash is started.


          In my ~/.bashrc:



          # set a variable to reflect SHLVL > 1
          if [[ $SHLVL -gt 1 ]] ; then
          export SUBSHELL="${SUBSHELL:+$SUBSHELL}+"
          else
          export SUBSHELL=""

          fi


          I use this later in setting up my PS1 to add a "+" for each level down.



          if [[ "$color_prompt" = yes ]]; then
          # chroot? Depth green user@host nocolor : green $PWD ref (status) off $ or # space
          PS1='${debian_chroot:+($debian_chroot)}${SUBSHELL}[33[01;32m]u@h[33[00m]:[33[01;34m]w[33[1;31m]($?)[33[00m]$ '
          else
          PS1='${debian_chroot:+($debian_chroot)}${SUBSHELL}u@h:w$ '
          fi
          unset color_prompt force_color_prompt


          In use, it looks like:



          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





          share|improve this answer













          I make use of the $SHLVL environment variable, described in man bash as



          SHLVL  Incremented by one each time an instance of bash is started.


          In my ~/.bashrc:



          # set a variable to reflect SHLVL > 1
          if [[ $SHLVL -gt 1 ]] ; then
          export SUBSHELL="${SUBSHELL:+$SUBSHELL}+"
          else
          export SUBSHELL=""

          fi


          I use this later in setting up my PS1 to add a "+" for each level down.



          if [[ "$color_prompt" = yes ]]; then
          # chroot? Depth green user@host nocolor : green $PWD ref (status) off $ or # space
          PS1='${debian_chroot:+($debian_chroot)}${SUBSHELL}[33[01;32m]u@h[33[00m]:[33[01;34m]w[33[1;31m]($?)[33[00m]$ '
          else
          PS1='${debian_chroot:+($debian_chroot)}${SUBSHELL}u@h:w$ '
          fi
          unset color_prompt force_color_prompt


          In use, it looks like:



          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






          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Feb 1 at 4:21









          waltinatorwaltinator

          22.6k74169




          22.6k74169













          • Hey thank you very much! That works perfectly when I shell out, differently when I <CTRL Z>. One question though, what value is represented between the ( )'s, in your case (0)? The reason I ask is I did a <CRTL Z> from Vim and it didn't have the +, but it did have a value of (140) in red. there.

            – Robert Baker
            Feb 1 at 4:44



















          • Hey thank you very much! That works perfectly when I shell out, differently when I <CTRL Z>. One question though, what value is represented between the ( )'s, in your case (0)? The reason I ask is I did a <CRTL Z> from Vim and it didn't have the +, but it did have a value of (140) in red. there.

            – Robert Baker
            Feb 1 at 4:44

















          Hey thank you very much! That works perfectly when I shell out, differently when I <CTRL Z>. One question though, what value is represented between the ( )'s, in your case (0)? The reason I ask is I did a <CRTL Z> from Vim and it didn't have the +, but it did have a value of (140) in red. there.

          – Robert Baker
          Feb 1 at 4:44





          Hey thank you very much! That works perfectly when I shell out, differently when I <CTRL Z>. One question though, what value is represented between the ( )'s, in your case (0)? The reason I ask is I did a <CRTL Z> from Vim and it didn't have the +, but it did have a value of (140) in red. there.

          – Robert Baker
          Feb 1 at 4:44













          2














          Vim sets the VIMRUNTIME (and VIM) environment variables within the shell from :sh or :!bash, so you can detect it that way in your .bashrc:



          if [ "$VIMRUNTIME" ]
          then
          PS1="vim: $PS1"
          fi


          The above will prefix your existing prompt with "vim: ". You could change it to something else, like just vim $:, if you wanted. Put that at the end of the file so that your normal prompt has been set up by then, so you can either use it or replace it.



          You can't do the same for Ctrl-Z because that really does return you to your original shell - it's not a new session, it's the one you started vim from in the first place, so it has the same environment and settings as you started with.






          share|improve this answer
























          • that is really interesting, thank you for the information, I am going to give that a try!

            – Robert Baker
            Feb 1 at 4:50
















          2














          Vim sets the VIMRUNTIME (and VIM) environment variables within the shell from :sh or :!bash, so you can detect it that way in your .bashrc:



          if [ "$VIMRUNTIME" ]
          then
          PS1="vim: $PS1"
          fi


          The above will prefix your existing prompt with "vim: ". You could change it to something else, like just vim $:, if you wanted. Put that at the end of the file so that your normal prompt has been set up by then, so you can either use it or replace it.



          You can't do the same for Ctrl-Z because that really does return you to your original shell - it's not a new session, it's the one you started vim from in the first place, so it has the same environment and settings as you started with.






          share|improve this answer
























          • that is really interesting, thank you for the information, I am going to give that a try!

            – Robert Baker
            Feb 1 at 4:50














          2












          2








          2







          Vim sets the VIMRUNTIME (and VIM) environment variables within the shell from :sh or :!bash, so you can detect it that way in your .bashrc:



          if [ "$VIMRUNTIME" ]
          then
          PS1="vim: $PS1"
          fi


          The above will prefix your existing prompt with "vim: ". You could change it to something else, like just vim $:, if you wanted. Put that at the end of the file so that your normal prompt has been set up by then, so you can either use it or replace it.



          You can't do the same for Ctrl-Z because that really does return you to your original shell - it's not a new session, it's the one you started vim from in the first place, so it has the same environment and settings as you started with.






          share|improve this answer













          Vim sets the VIMRUNTIME (and VIM) environment variables within the shell from :sh or :!bash, so you can detect it that way in your .bashrc:



          if [ "$VIMRUNTIME" ]
          then
          PS1="vim: $PS1"
          fi


          The above will prefix your existing prompt with "vim: ". You could change it to something else, like just vim $:, if you wanted. Put that at the end of the file so that your normal prompt has been set up by then, so you can either use it or replace it.



          You can't do the same for Ctrl-Z because that really does return you to your original shell - it's not a new session, it's the one you started vim from in the first place, so it has the same environment and settings as you started with.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Feb 1 at 4:48









          Michael HomerMichael Homer

          1575




          1575













          • that is really interesting, thank you for the information, I am going to give that a try!

            – Robert Baker
            Feb 1 at 4:50



















          • that is really interesting, thank you for the information, I am going to give that a try!

            – Robert Baker
            Feb 1 at 4:50

















          that is really interesting, thank you for the information, I am going to give that a try!

          – Robert Baker
          Feb 1 at 4:50





          that is really interesting, thank you for the information, I am going to give that a try!

          – Robert Baker
          Feb 1 at 4:50


















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Ask Ubuntu!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f1114597%2fvim-when-i-shell-to-prompt-using-bash-id-like-the-command-prompt-to-reflect%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Human spaceflight

          Can not write log (Is /dev/pts mounted?) - openpty in Ubuntu-on-Windows?

          張江高科駅