Почему мой путь командной строки vim отличается от моей оболочки PATH?
например.
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/bin:~/bin:/usr/local/Cellar/python3/3.2.3/bin
$ vim
:! echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:~/bin:/usr/local/Cellar/python3/3.2.3/bin
Я ожидал, что они будут такими же. Почему они разные?
Если это имеет значение, вот моя оболочка, версия vim и версия ОС:
$ echo $SHELL
SHELL=/usr/local/bin/zsh
$ /usr/local/bin/zsh --version
zsh 5.0.0 (x86_64-apple-darwin12.0.0)
$ vim --version
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Jun 20 2012 13:16:02)
Compiled by [email protected]
$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.8.2
BuildVersion: 12C60
(Mountain Lion)
Ответы
Ответ 1
Я не смог разрешить это с помощью zsh и закончил использование bash для моей оболочки vim.
Вот что я сделал:
- изменил мой .zshrc для работы с bash
-
ln -s .zshrc .bashrc
- добавил
set shell=bash
в мой .vimrc файл
и теперь моя команда PATH командной строки vim равна моей PATH оболочки zsh.
Ответ 2
Это известный проблема, введенная Apple в OS X 10.5 Leopard.
Если вы используете Bash или Zsh и используете неинтерактивные оболочки, вы.
Запуск sudo chmod ugo-x /usr/libexec/path_helper
исправит вас, но вы должны взглянуть на статью, чтобы понять, почему.
От этот ответ SO
Ответ 3
Есть много подобных вопросов по SO и SU.
Ваша оболочка выполняет разные * rc файлы в зависимости от аргументов, указанных во время запуска. Поэтому вам необходимо настроить Vim так, чтобы он запускал вашу оболочку с правильными аргументами.
В bash появляется следующее: я почти уверен, что в zsh есть аналогичный флаг.
set shell=bash\ -i
См. $ man zsh
для правильного флага и правильного порядка выполнения.
Ответ 4
Я не использую mac или zsh (я на Linux), однако я столкнулся с этой проблемой, когда я запускал gvim из меню MATE.
Я решил это, добавив это в мой .vimrc:
if $PATH !~ "\.rbenv"
let $PATH="/home/username/.rbenv/shims:/home/username/.rbenv/bin:" . $PATH
endif
Это позволяет избежать его установки, если вы запускаете vim из терминала, иначе пути rbenv будут включены дважды.
Я попробовал настроить приложение для запуска через терминал, но это не помогло.