(G) VIM использует другой $PATH, чем моя система

Нормальная программа Unix, которая хочет вызвать редактора, запустит программу, имя которой находится в EDITOR или VISUAL переменная среды, и если переменная сброшена, системно-зависимое значение по умолчанию. Многие, но не все, программы проверяют обоих EDITOR и VISUAL; различие является долго устаревшим (после того как Вы работали бы EDITOR на телетайпе и VISUAL на “стеклянном” терминале …), таким образом, необходимо установить обоих на то же значение. Существует некоторое разногласие относительно того, должно ли содержание переменной быть полным путем к исполняемому файлу, исполняемое имя, в котором это искало $PATH, или отрывок оболочки, таким образом, необходимо придерживаться пути к исполняемому файлу, не содержащему любой метасимвол оболочки. Системное значение по умолчанию, когда никакая переменная не установлена, традиционно vi, хотя некоторые дистрибутивы изменили это на более благоприятного для новичка редактора такой как nano.

visudo проверки оба VISUAL и EDITOR (это может быть скомпилировано, по-видимому, для отговаривания корня от использования редактора, безопасности которого производитель распределения не доверяет, но даже OpenBSD не делает этого).

8
31.10.2011, 23:03
2 ответа

Похоже, что Вы изменились $PATH переменная в одном из Ваших конфигурационных файлов оболочки, но Вы запускаете VIM со значка или настольной записи меню. Вещи Вы устанавливаете в конфигурационных файлах оболочки (как ~/.bashrc или /etc/profile) влияйте только на приложения, запущенные от оболочки.

Обычно существуют два три возможных подхода к этой проблеме:

  • локальный: Измените способ, которым запускается VIM.

[править]

  • в расчете на пользователя: Измените среду своего пользователя в ~/.profile.

[/редактирование]

  • глобальный: Измените глобальную среду.

Локальное решение является самым безопасным (поскольку оно влияет только на одну программу), но так как Вы уже испортили систему путем установки двух параллельных версий пакета программного обеспечения, я не уверен, испугает ли это Вас. Так или иначе можно сделать это путем изменения .desktop запись для VIM в Вашей Настольной среде и изменении связанная команда от чего-то как gnome-terminal -c vim кому: PATH=(yourPathGoesHere) gnome-terminal -c vim.

Глобальный метод состоит в том, чтобы изменить PATH переменная в файле под /etc/env.d/. Должно быть достаточно создать файл /etc/env.d/99-my_path_mod, содержа PATH=(yourPathGoesHere):$PATH. Необходимо будет перезагрузить, чтобы это вступило в силу (Ну, перезагрузки можно было избежать путем переключения init уровня назад и вперед, но это намного легче тот путь.)

[править]

Решение в расчете на пользователя могло бы быть лучшим и, поскольку я вижу его теперь, может быть назван "надлежащим путем". Как указано Gilles (ниже), ~/.profile файл - то, где переменные среды для всех Ваших сессий входа в систему должны быть установлены.

5
27.01.2020, 20:12
  • 1
    Спасибо, после Вашего решения самое легкое, вероятно, должно просто назвать gvim от терминала. Это хорошо работает! –  Ingo 30.10.2011, 23:32
  • 2
    Этот ответ вводит в заблуждение и частично неправильный. Нет никакой потребности изменить что-либо на системном уровне; вместо этого, @Ingo, простое решение состоит в том, чтобы установить переменные среды в ~/.profile и никогда в ~/.bashrc. Выполнение вещи правильно не является трудным и предотвратит будущие проблемы. –  Gilles 'SO- stop being evil' 31.10.2011, 23:02
  • 3
    @Gilles я признаю, что не осознавал основной роли ~/.profile, таким образом, мой ответ может вводить в заблуждение. Но в том, какая часть это неправильно? –  rozcietrzewiacz 31.10.2011, 23:37
  • 4
    Хорошо, технически я думаю, что единственной неправильной вещью являются “обычно два возможных подхода”: существует третий подход, это распространено и предпочтительно. Представление /etc/profile поскольку конфигурационный файл оболочки является технически верным, но вводящим в заблуждение (это - файл конфигурации, записанный в оболочке, не файле конфигурации оболочки). Не упоминание ~/.profile основной пропуск, который один делает Ваш ответ “не полезным”. –  Gilles 'SO- stop being evil' 31.10.2011, 23:58
  • 5
    Поскольку я открываю мой /etc/profile, это - то, что я вижу в самом верху его. Так, по крайней мере, в моей системе (хинду), файл можно назвать "файлом конфигурации оболочки". –  rozcietrzewiacz 01.11.2011, 00:05

Где Вы изменяли своего пользователя PATH? Обычно, я установил бы это в ~/.profile, где это должно быть взято Вашими X менеджерами сеансов (т.е. на следующем X входов в систему) и также относиться ко всем приложениям на Ваших X сессиях (таким как Ваша панель/рабочий стол, где Вы запускаете gvim с).

2
27.01.2020, 20:12

Теги

Похожие вопросы