Если я сопоставлю команду в VIM, используя что-то вроде
map <f4> :! pdflatex %<cr>
Vim игнорирует мой псевдоним для pdflatex (что-то вроде псевдонима pdflatex = 'pdflatex --temp-dir = кое-что'). Можно ли заставить vim не игнорировать это?
Возможно ли, что ваша оболочка vim или тип оболочки не соответствуют вашей оболочке входа?
DaveParillo
Ответы:
16
Vim «игнорирует» ваши псевдонимы, потому что ваша оболочка не в «настроении» для анализа ваших .bash_profile/.bashrc(вы не указали, где определены ваши псевдонимы), потому что она не запускается как логин / интерактивная оболочка (читайте здесь, чтобы узнать больше о что читается когда и по какой причине).
Итак, у вас есть несколько вариантов:
Поместите код, который вы используете в pdflatexпсевдониме, в скрипт и назовите его
vimrc: 'set shell=/bin/bash\ -l'поместите ваши псевдонимы в .bash_profile
Вход / не вход в систему не имеет значения ~/.bashrc- имеет значение только интерактивный / неинтерактивный.
user1686
мои псевдонимы находятся в .bash_profile .. хм, я немного изменил вопрос. Я бы предпочел, чтобы он работал в текущей оболочке. Ваше второе решение показалось наиболее «приемлемым», однако оно делает бесполезной переменную%, так как открытие новой оболочки обычно начинается в домашней папке.
фонхоген
Это удивительный и тщательный ответ. Благодарность!
Ответы:
Vim «игнорирует» ваши псевдонимы, потому что ваша оболочка не в «настроении» для анализа ваших
.bash_profile/.bashrc
(вы не указали, где определены ваши псевдонимы), потому что она не запускается как логин / интерактивная оболочка (читайте здесь, чтобы узнать больше о что читается когда и по какой причине).Итак, у вас есть несколько вариантов:
pdflatex
псевдониме, в скрипт и назовите его'set shell=/bin/bash\ -l'
поместите ваши псевдонимы в .bash_profile:! bash -l -i -e 'pdflatex .'
источник
~/.bashrc
- имеет значение только интерактивный / неинтерактивный.