Почему мой vim не знает мой псевдоним? - PullRequest
8 голосов
/ 08 марта 2011

Я использовал «псевдоним ruby ​​= ruby1.9.1», поэтому я могу выполнить свой ruby ​​следующим образом:

ruby ​​123.rb

или

ruby1.9.1 123.rb

Но в моем vim я использую:! Ruby и get / bin / bash: ruby: команда не найдена.

Я должен использовать:! Ruby1.9.1

Как работает псевдоним?Почему Вим не знает этого?

Ответы [ 3 ]

11 голосов
/ 08 марта 2011

Когда Vim запускает процесс, он делает системный вызов.Он унаследовал переменные среды только от вашей оболочки, если вы запустили ее из оболочки.Но он не будет знать ваши псевдонимы bash.

Псевдонимы bash удобны только при вводе командной строки в оболочке Bash.Они расширяются только Bash.

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

1 голос
/ 08 марта 2011

Вы можете попробовать

:set shellcmdflag+=i

, чтобы назвать бас «интерактивным», хотя это дает досадное сообщение для каждой выполняемой команды оболочки.

0 голосов
/ 08 марта 2011

Псевдонимы (в отличие от переменных среды) не наследуются подоболочками.Поэтому, если вы хотите, чтобы псевдоним был всегда доступен, вам нужно установить его в файле .bashrc, чтобы каждый экземпляр оболочки получал его при запуске

...