Тот же вопрос, что и Команды, выполненные из vim, не распознают псевдонимы команд bash, однако решение там не срабатывало.
Я установил эти переменные в свой файл ~/.vimrc:
set shellcmdflag=-ic
set shell=/bin/bash\ -i
и у меня есть псевдоним в моих ~/.bash_aliases:
rgr() { if [ ! -z "$2" ]; then grep -rI --exclude=\*.svn\* "$1" * --include=$2 ; else grep -rI --exclude=*svn* "$1" * ; fi ; }
который работает, когда выполняется из командной строки, но когда я пытаюсь вызвать его из vim (:!rgr test
), я получаю сообщение об ошибке и vim выходит:
bash: rgr: command not found
[4]+ Stopped vi ~/somefile
Если отключить интерактивный режим, я просто получаю сообщение "команда не найдена", и vim не выйдет.
Как я могу получить vim для распознавания моих псевдонимов? Я воспроизвел это поведение как на OS X, так и на Ubuntu.