Loading ...
Sorry, an error occurred while loading the content.

Re: MacVim and $PATH

Expand Messages
  • Björn Winckler
    ... I m stumped. Can you try changing your shell back to bash and see if you still have the same problems? Björn P.S. I d like to remind everybody that the
    Message 1 of 16 , Feb 17, 2011
    • 0 Attachment
      On Feb 17, 2011, at 1:54 PM, Wes Baker wrote:

      > I'm now only setting the $PATH in .profile and .zprofile and I've also
      > set MMLoginShellCommand for MacVim and I'm still having the same exact
      > problem.
      >
      > I changed my shell in the Accounts Preference Pane, which I'm assuming
      > used chsh, but I'm not too sure.
      >
      > Any other ideas?

      I'm stumped. Can you try changing your shell back to bash and see if you still have the same problems?

      Björn


      P.S. I'd like to remind everybody that the custom is to bottom post on this list, see:

      http://groups.google.com/group/vim_use/web/vim-information

      --
      You received this message from the "vim_mac" maillist.
      Do not top-post! Type your reply below the text you are replying to.
      For more information, visit http://www.vim.org/maillist.php
    • Israel Chauca F.
      ... Coincidentally, today I had some problems involving wrong paths on vim (seems like I hadn t fixed anything after all), so I did some tests with vim, gvim
      Message 2 of 16 , Feb 18, 2011
      • 0 Attachment
        On Feb 17, 2011, at 12:26 PM, Björn Winckler wrote:

        > On Feb 17, 2011, at 1:54 PM, Wes Baker wrote:
        >
        >> I'm now only setting the $PATH in .profile and .zprofile and I've also
        >> set MMLoginShellCommand for MacVim and I'm still having the same exact
        >> problem.
        >>
        >> I changed my shell in the Accounts Preference Pane, which I'm assuming
        >> used chsh, but I'm not too sure.
        >>
        >> Any other ideas?
        >
        > I'm stumped. Can you try changing your shell back to bash and see if you still have the same problems?

        Coincidentally, today I had some problems involving wrong paths on vim (seems like I hadn't fixed anything after all), so I did some tests with vim, gvim and gvim launched from the terminal, and the paths appear to be created in the following way:

        1.- vim:
        :echo $PATH => ($PATH from .zshrc)
        :!echo $PATH => ($PATH from /etc/paths)+($PATHs from /etc/paths.d/*)+($PATH from .zshrc)

        2.- gvim:
        :echo $PATH => ($PATH from .zprofile)
        :!echo $PATH => ($PATH from /etc/paths)+($PATHs from /etc/paths.d/*)+($PATH from .zprofile)

        3.- gvim from terminal:
        :echo $PATH => ($PATH from .zshrc)
        :!echo $PATH => ($PATH from /etc/paths)+($PATHs from /etc/paths.d/*)+($PATH from .zshrc)

        Why the difference between the $PATHs? The second form is what path_helper returns.

        The only way to make $HOME/bin to take precedence would be to add the full path to /etc/paths, which doesn't look right.

        Is there any way to change this behaviour?

        Thanks!
        Israel

        --
        You received this message from the "vim_mac" maillist.
        Do not top-post! Type your reply below the text you are replying to.
        For more information, visit http://www.vim.org/maillist.php
      • Björn Winckler
        ... Out of curiosity I tried this experiment myself but I get the same path in all six cases. I m using the default bash shell... ... I don t understand these
        Message 3 of 16 , Feb 19, 2011
        • 0 Attachment
          On Feb 19, 2011, at 2:12 AM, Israel Chauca F. wrote:
          > Coincidentally, today I had some problems involving wrong paths on vim (seems like I hadn't fixed anything after all), so I did some tests with vim, gvim and gvim launched from the terminal, and the paths appear to be created in the following way:
          >
          > 1.- vim:
          > :echo $PATH => ($PATH from .zshrc)
          > :!echo $PATH => ($PATH from /etc/paths)+($PATHs from /etc/paths.d/*)+($PATH from .zshrc)
          >
          > 2.- gvim:
          > :echo $PATH => ($PATH from .zprofile)
          > :!echo $PATH => ($PATH from /etc/paths)+($PATHs from /etc/paths.d/*)+($PATH from .zprofile)
          >
          > 3.- gvim from terminal:
          > :echo $PATH => ($PATH from .zshrc)
          > :!echo $PATH => ($PATH from /etc/paths)+($PATHs from /etc/paths.d/*)+($PATH from .zshrc)
          >
          > Why the difference between the $PATHs? The second form is what path_helper returns.

          Out of curiosity I tried this experiment myself but I get the same path in all six cases. I'm using the default bash shell...

          > The only way to make $HOME/bin to take precedence would be to add the full path to /etc/paths, which doesn't look right.
          >
          > Is there any way to change this behaviour?

          I don't understand these issues but it seems to be related to zsh somehow.

          Björn

          --
          You received this message from the "vim_mac" maillist.
          Do not top-post! Type your reply below the text you are replying to.
          For more information, visit http://www.vim.org/maillist.php
        • Ben Schmidt
          ... Hmm. OK. So when zsh is used by Vim to run external commands we have the problem. Looks like it s caused by /etc/zshenv, which calls path_helper for all
          Message 4 of 16 , Feb 19, 2011
          • 0 Attachment
            > Coincidentally, today I had some problems involving wrong paths on vim
            > (seems like I hadn't fixed anything after all), so I did some tests
            > with vim, gvim and gvim launched from the terminal, and the paths
            > appear to be created in the following way:
            >
            > 1.- vim:
            > :echo $PATH => ($PATH from .zshrc)
            > :!echo $PATH => ($PATH from /etc/paths)+($PATHs from /etc/paths.d/*)+($PATH from .zshrc)
            >
            > 2.- gvim:
            > :echo $PATH => ($PATH from .zprofile)
            > :!echo $PATH => ($PATH from /etc/paths)+($PATHs from /etc/paths.d/*)+($PATH from .zprofile)
            >
            > 3.- gvim from terminal:
            > :echo $PATH => ($PATH from .zshrc)
            > :!echo $PATH => ($PATH from /etc/paths)+($PATHs from /etc/paths.d/*)+($PATH from .zshrc)
            >
            > Why the difference between the $PATHs? The second form is what
            > path_helper returns.

            Hmm. OK. So when zsh is used by Vim to run external commands we have the
            problem. Looks like it's caused by /etc/zshenv, which calls path_helper
            for all zsh invocations, not just login shell invocations. That's not
            right, really, so it's a bug in how Mac OS X is set up. /etc/zshenv
            should be used by a sysadmin to set environment variables that restrict
            the shell so that users can't do stuff they shouldn't be allowed to; it
            shouldn't be used to set the PATH which is a user-controllable thing
            that should be inherited by non-login shells.

            Since when Vim runs external commands, it's not an interactive shell,
            zshrc stuff is not read, and it's not a login shell so zprofile is not
            read, so the path cannot really be fixed by these files.

            So the path_helper stuff in /etc/zshenv should really needs to be moved
            to /etc/zprofile where it belongs. Then it will only affect login
            shells, and login is the correct time to set the path. And this still
            happens before the ~/.zprofile stuff, so users can change it at login,
            and before zshrc stuff, so sysadmin or users can adjust it for
            interactive use. This is all how it should work and how vim kinda
            assumes it will work.

            So

            sudo mv /etc/zshenv /etc/zprofile

            and I think everything will be good! (Be careful that /etc/zprofile
            doesn't already exist. If it does, obviously you need to merge the
            contents of zshenv into it, rather than just replacing it.)

            Hope this helps. Do let us know the verdict....

            Ben.



            --
            You received this message from the "vim_mac" maillist.
            Do not top-post! Type your reply below the text you are replying to.
            For more information, visit http://www.vim.org/maillist.php
          • Israel Chauca F.
            ... Quite nice! I modified those files as needed and now Vim picks all my executables from the expected places. I know this is a Zsh issue, but we have users
            Message 5 of 16 , Feb 19, 2011
            • 0 Attachment
              On Feb 19, 2011, at 8:40 AM, Ben Schmidt wrote:

              >> Coincidentally, today I had some problems involving wrong paths on vim
              >> (seems like I hadn't fixed anything after all), so I did some tests
              >> with vim, gvim and gvim launched from the terminal, and the paths
              >> appear to be created in the following way:
              >>
              >> 1.- vim:
              >> :echo $PATH => ($PATH from .zshrc)
              >> :!echo $PATH => ($PATH from /etc/paths)+($PATHs from /etc/paths.d/*)+($PATH from .zshrc)
              >>
              >> 2.- gvim:
              >> :echo $PATH => ($PATH from .zprofile)
              >> :!echo $PATH => ($PATH from /etc/paths)+($PATHs from /etc/paths.d/*)+($PATH from .zprofile)
              >>
              >> 3.- gvim from terminal:
              >> :echo $PATH => ($PATH from .zshrc)
              >> :!echo $PATH => ($PATH from /etc/paths)+($PATHs from /etc/paths.d/*)+($PATH from .zshrc)
              >>
              >> Why the difference between the $PATHs? The second form is what
              >> path_helper returns.
              >
              > Hmm. OK. So when zsh is used by Vim to run external commands we have the
              > problem. Looks like it's caused by /etc/zshenv, which calls path_helper
              > for all zsh invocations, not just login shell invocations. That's not
              > right, really, so it's a bug in how Mac OS X is set up. /etc/zshenv
              > should be used by a sysadmin to set environment variables that restrict
              > the shell so that users can't do stuff they shouldn't be allowed to; it
              > shouldn't be used to set the PATH which is a user-controllable thing
              > that should be inherited by non-login shells.
              >
              > Since when Vim runs external commands, it's not an interactive shell,
              > zshrc stuff is not read, and it's not a login shell so zprofile is not
              > read, so the path cannot really be fixed by these files.
              >
              > So the path_helper stuff in /etc/zshenv should really needs to be moved
              > to /etc/zprofile where it belongs. Then it will only affect login
              > shells, and login is the correct time to set the path. And this still
              > happens before the ~/.zprofile stuff, so users can change it at login,
              > and before zshrc stuff, so sysadmin or users can adjust it for
              > interactive use. This is all how it should work and how vim kinda
              > assumes it will work.
              >
              > So
              >
              > sudo mv /etc/zshenv /etc/zprofile
              >
              > and I think everything will be good! (Be careful that /etc/zprofile
              > doesn't already exist. If it does, obviously you need to merge the
              > contents of zshenv into it, rather than just replacing it.)
              >
              > Hope this helps. Do let us know the verdict....

              Quite nice! I modified those files as needed and now Vim picks all my executables from the expected places.

              I know this is a Zsh issue, but we have users coming to IRC asking why their commands aren't found. So, maybe a note about this could go on the Troubleshooting section of the FAQ. I know the "other rc-files" section covers this, but it seems that many people (like me) have no idea about /etc/zshenv being there at all, so the problem remains unsolved.

              Cheers,
              Israel

              --
              You received this message from the "vim_mac" maillist.
              Do not top-post! Type your reply below the text you are replying to.
              For more information, visit http://www.vim.org/maillist.php
            • Israel Chauca F.
              ... Many thanks, Ben. Israel -- You received this message from the vim_mac maillist. Do not top-post! Type your reply below the text you are replying to. For
              Message 6 of 16 , Feb 19, 2011
              • 0 Attachment
                On Feb 19, 2011, at 8:40 AM, Ben Schmidt wrote:

                >> Coincidentally, today I had some problems involving wrong paths on vim
                >> (seems like I hadn't fixed anything after all), so I did some tests
                >> with vim, gvim and gvim launched from the terminal, and the paths
                >> appear to be created in the following way:
                >>
                >> 1.- vim:
                >> :echo $PATH => ($PATH from .zshrc)
                >> :!echo $PATH => ($PATH from /etc/paths)+($PATHs from /etc/paths.d/*)+($PATH from .zshrc)
                >>
                >> 2.- gvim:
                >> :echo $PATH => ($PATH from .zprofile)
                >> :!echo $PATH => ($PATH from /etc/paths)+($PATHs from /etc/paths.d/*)+($PATH from .zprofile)
                >>
                >> 3.- gvim from terminal:
                >> :echo $PATH => ($PATH from .zshrc)
                >> :!echo $PATH => ($PATH from /etc/paths)+($PATHs from /etc/paths.d/*)+($PATH from .zshrc)
                >>
                >> Why the difference between the $PATHs? The second form is what
                >> path_helper returns.
                >
                > Hmm. OK. So when zsh is used by Vim to run external commands we have the
                > problem. Looks like it's caused by /etc/zshenv, which calls path_helper
                > for all zsh invocations, not just login shell invocations. That's not
                > right, really, so it's a bug in how Mac OS X is set up. /etc/zshenv
                > should be used by a sysadmin to set environment variables that restrict
                > the shell so that users can't do stuff they shouldn't be allowed to; it
                > shouldn't be used to set the PATH which is a user-controllable thing
                > that should be inherited by non-login shells.
                >
                > Since when Vim runs external commands, it's not an interactive shell,
                > zshrc stuff is not read, and it's not a login shell so zprofile is not
                > read, so the path cannot really be fixed by these files.
                >
                > So the path_helper stuff in /etc/zshenv should really needs to be moved
                > to /etc/zprofile where it belongs. Then it will only affect login
                > shells, and login is the correct time to set the path. And this still
                > happens before the ~/.zprofile stuff, so users can change it at login,
                > and before zshrc stuff, so sysadmin or users can adjust it for
                > interactive use. This is all how it should work and how vim kinda
                > assumes it will work.
                >
                > So
                >
                > sudo mv /etc/zshenv /etc/zprofile
                >
                > and I think everything will be good! (Be careful that /etc/zprofile
                > doesn't already exist. If it does, obviously you need to merge the
                > contents of zshenv into it, rather than just replacing it.)
                >
                > Hope this helps. Do let us know the verdict....

                Many thanks, Ben.

                Israel

                --
                You received this message from the "vim_mac" maillist.
                Do not top-post! Type your reply below the text you are replying to.
                For more information, visit http://www.vim.org/maillist.php
              • Björn Winckler
                ... Please do add a section to the FAQ [1] -- it is a wiki so anybody can edit it. I d do it myself, but as should be quite obvious I don t really get what s
                Message 7 of 16 , Feb 19, 2011
                • 0 Attachment
                  On Feb 19, 2011, at 8:53 PM, Israel Chauca F. wrote:
                  >
                  > I know this is a Zsh issue, but we have users coming to IRC asking why their commands aren't found. So, maybe a note about this could go on the Troubleshooting section of the FAQ. I know the "other rc-files" section covers this, but it seems that many people (like me) have no idea about /etc/zshenv being there at all, so the problem remains unsolved.

                  Please do add a section to the FAQ [1] -- it is a wiki so anybody can edit it. I'd do it myself, but as should be quite obvious I don't really get what's going on here so better somebody who does know adds an item.

                  Björn

                  [1] https://github.com/b4winckler/macvim/wiki/FAQ

                  --
                  You received this message from the "vim_mac" maillist.
                  Do not top-post! Type your reply below the text you are replying to.
                  For more information, visit http://www.vim.org/maillist.php
                • barry.allard@...
                  ... Just encountered this problem also 4 years later. The issue is with OS X /etc/zshenv and /etc/profile overwriting PATH blindly in subshells. The fix is to
                  Message 8 of 16 , Jan 14
                  • 0 Attachment
                    On Saturday, February 19, 2011 at 1:39:07 PM UTC-8, björn wrote:
                    > On Feb 19, 2011, at 8:53 PM, Israel Chauca F. wrote:
                    > >
                    > > I know this is a Zsh issue, but we have users coming to IRC asking why their commands aren't found. So, maybe a note about this could go on the Troubleshooting section of the FAQ. I know the "other rc-files" section covers this, but it seems that many people (like me) have no idea about /etc/zshenv being there at all, so the problem remains unsolved.
                    >
                    > Please do add a section to the FAQ [1] -- it is a wiki so anybody can edit it. I'd do it myself, but as should be quite obvious I don't really get what's going on here so better somebody who does know adds an item.
                    >
                    > Björn
                    >
                    > [1] https://github.com/b4winckler/macvim/wiki/FAQ


                    Just encountered this problem also 4 years later. The issue is with OS X /etc/zshenv and /etc/profile overwriting PATH blindly in subshells.

                    The fix is to replace each path_helper block with the following: sudo vi /etc/{profile,zshenv}

                    if [ -x /usr/libexec/path_helper ]; then
                    if [ -z "$PATH" ] || [ "$PATH" = /usr/bin:/bin:/usr/sbin:/sbin ]; then
                    eval `/usr/libexec/path_helper -s`
                    fi
                    fi

                    It's probably worth submitting an Apple radar ticket so that it's fixed forever.

                    Barry Allard

                    --
                    --
                    You received this message from the "vim_mac" maillist.
                    Do not top-post! Type your reply below the text you are replying to.
                    For more information, visit http://www.vim.org/maillist.php

                    ---
                    You received this message because you are subscribed to the Google Groups "vim_mac" group.
                    To unsubscribe from this group and stop receiving emails from it, send an email to vim_mac+unsubscribe@....
                    For more options, visit https://groups.google.com/d/optout.
                  Your message has been successfully submitted and would be delivered to recipients shortly.