Я взламываю тестовый фреймворк для vimscript (я знаю, что это бесполезное упражнение; приколите меня). Некоторые плагины vim обращаются к оболочке (с помощью функции system()
или !
команда). Я хочу, чтобы тестовый драйвер мог получать эти вызовы и возвращать предварительно запеченные данные.
Насколько я могу судить, система vim system()
выполняет форк и запускает команду в подоболочке. Теоретически, должно быть возможно сделать что-то вроде
alias ls="echo one\ntwo\nthree"
так что мы можем провести тест в соответствии с:
:.!ls
и проверьте, что вывод
one
two
three
На практике vim, похоже, разветвляется подоболочкой, которая не учитывает никаких временных псевдонимов. Другими словами, он создает новую чистую среду оболочки, используя оболочку пользователя (zsh, bash и т.д.), Но не настройки оболочки пользователя (глобальные и локальные).
Знаете ли вы о каком-либо способе запуска vim в среде, в которой определенные системные вызовы контролируются пользователем?