2

Кто-нибудь может объяснить это?

$ vim --version
VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Jul 12 2010 12:47:31)
$ `which vim` --version
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Oct 13 2011 22:52:17)

Я только что скомпилировал последнюю версию vim и установил ее в $HOME/bin , который является первым путем в $PATH . which vim возвращает правильный путь: /home/user/bin/vim , однако, когда я запускаю vim он запускает /usr/bin/vim .

Я запустил еще один xterm, и проблема исчезла, однако мне все еще любопытно, как предыдущий термин попал в такое странное состояние. Есть идеи?

1 ответ1

5

В UNIX, когда вы запускаете команду, оболочка сохраняет путь, по которому она нашла двоичный файл. Если вы затем измените путь или установите другую версию в каталоге ранее в пути, то оболочка не найдет его, потому что фактически не ищет команды, которые она уже нашла.

Если бы вы сравнили hash -r перед тем, как сравнивать vim и vim, вы бы не увидели этого несоответствия.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .