Vim отлично поддерживает
:!path/to/executable < other/path/to/file
Но он не работает с :term path/to/exec < path/to/file
- в отличие от neovim, у которого здесь нет проблем.
Учитывая простое
#include <iostream>
int main()
{
std::string line;
while (std::getline(std::cin, line)) {
std::cout << line << "\n";
}
}
скомпилировано с :make %<
(я использую g ++ - cygwin, а не g ++ - mingw), :!./%< < %
работает отлично.
В случае, если то, что я только что описал, не работает, поскольку я видите тег windows
, возможно, ваши параметры &shell*
установлены неправильно? С Windows мне пришлось изменить значение по умолчанию, поскольку я использую собственный gvim с cygwin. В чистой среде windows я удостоверяюсь, что мои настройки равны (не спрашивайте меня, почему, это результат экспериментов 15-20-летней давности, и я точно не помню все тесты, которые я сделано)
let &shell=$COMSPEC
set shellslash
set shellcmdflag=/c
set shellquote=
set shellxquote=
set shellredir=>
set shellpipe=>