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


11

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

map <f4> :! pdflatex %<cr>

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


Возможно ли, что ваша оболочка 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 .. хм, я немного изменил вопрос. Я бы предпочел, чтобы он работал в текущей оболочке. Ваше второе решение показалось наиболее «приемлемым», однако оно делает бесполезной переменную%, так как открытие новой оболочки обычно начинается в домашней папке.
фонхоген

Это удивительный и тщательный ответ. Благодарность!
Авель
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.