Ввод с ++ из файла в vim - PullRequest
0 голосов
/ 27 мая 2020

У меня есть файл C ++ code.cpp и входной файл input.txt. После компиляции я хочу запустить файл из vim, например code.exe < input.txt. Выполнение !$code_dir < $input_dir не работает. Что делать?

1 Ответ

1 голос
/ 28 мая 2020

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=>
...