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

11

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

map <f4> :! pdflatex %<cr>

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

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

Ответы:

16

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

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

  1. Поместите код, который вы используете в pdflatexпсевдониме, в скрипт и назовите его
  2. vimrc: 'set shell=/bin/bash\ -l'поместите ваши псевдонимы в .bash_profile
  3. Вызовите вашу оболочку как интерактивную оболочку / оболочку входа :! bash -l -i -e 'pdflatex .'
Акира
источник
2
Вход / не вход в систему не имеет значения ~/.bashrc- имеет значение только интерактивный / неинтерактивный.
user1686
мои псевдонимы находятся в .bash_profile .. хм, я немного изменил вопрос. Я бы предпочел, чтобы он работал в текущей оболочке. Ваше второе решение показалось наиболее «приемлемым», однако оно делает бесполезной переменную%, так как открытие новой оболочки обычно начинается в домашней папке.
фонхоген
Это удивительный и тщательный ответ. Благодарность!
Авель