我有一个名为code.cpp的C ++文件,它从一个名为input.txt的文件中获取输入。编译后,我想像这样code.exe < input.txt
从vim运行文件。但是执行!$code_directory < $input_directory
不起作用,因为由于某种原因,vim无法处理!<
,因此将其转换为^<
。解决方法是什么?
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环境中,我确定my settings are(不要问我为什么,这是15到20年的实验结果,我绝对不记得我所做的所有测试)
let &shell=$COMSPEC
set shellslash
set shellcmdflag=/c
set shellquote=
set shellxquote=
set shellredir=>
set shellpipe=>