Vim игнорирует псевдонимы

2673
vonhogen

Если я сопоставлю команду в VIM, используя что-то вроде

map <f4> :! pdflatex %<cr> 

Vim будет игнорировать мой псевдоним для pdflatex (что-то вроде псевдонима pdflatex = 'pdflatex --temp-dir = кое-что'). Можно ли заставить vim не игнорировать это?

11
Возможно ли, что ваша оболочка vim или тип оболочки не соответствуют вашей оболочке входа? DaveParillo 14 лет назад 0

1 ответ на вопрос

16
akira

Vim «игнорирует» ваши псевдонимы, потому что ваша оболочка не в «настроении» для анализа ваших .bash_profile/.bashrc(вы не указали, где определены ваши псевдонимы), потому что она не запускается как логин / интерактивная оболочка (читайте здесь, чтобы узнать больше о что читается когда и по какой причине).

Итак, у вас есть несколько вариантов:

  1. Поместите код, который вы используете в pdflatexпсевдониме, в скрипт и назовите его
  2. vimrc: 'set shell=/bin/bash\ -l'поместите ваши псевдонимы в .bash_profile
  3. Вызовите вашу оболочку как интерактивную оболочку / оболочку для входа: :! bash -l -i -e 'pdflatex .'
Вход / не вход в систему не имеет значения для `~ / .bashrc` - только интерактивный / неинтерактивный. grawity 14 лет назад 2
мои псевдонимы находятся в .bash_profile .. хм, я немного изменил вопрос. Я бы предпочел, чтобы он работал в текущей оболочке. Ваше второе решение показалось наиболее «приемлемым», однако оно делает бесполезной переменную%, так как открытие новой оболочки обычно начинается в домашней папке. vonhogen 14 лет назад 0
This is an amazing and thorough answer. Thanks! Abel 13 лет назад 0