0

在linux中我使用了类似的东西

autocmd FileType cpp nmap <buffer> <F5> :w<bar>!g++ -o %:r % && ./%:r<CR>

但由于 Windows 使用反斜杠,我想我应该尝试类似

autocmd FileType cpp nmap <buffer> <F5> :w<bar>!g++ -o %:r % && .\\%:r<CR>

或者

autocmd FileType cpp nmap <buffer> <F5> :w<bar>!g++ -o %:r % && ./\%:r<CR>

但他们似乎都没有给出预期的结果。了解 vim 脚本的人可以更好地帮助我解决这个问题。我也尝试过其他组合,但似乎没有任何效果。而不是赌博我可能会问的更多想法

4

1 回答 1

0

所以我最终采用的解决方案是不放任何前面的反斜杠。看到这个想法是运行一个命令终端命令,比如.\hello对于名为 hello 的程序,我假设它是./hello任何可执行文件的 linux 等价物。结果是hello.exe在编译时创建了一个文件,因此解决方案只是hello.exe通过键入hello终端来调用

因此我的最终命令根本没有斜线

autocmd FileType cpp nmap <buffer> <F5> :w<bar>!g++ -o %:r % && %:r<CR>

至于创建先前所需结果的正则表达式。那对我来说仍然是个谜。干杯

于 2020-08-15T05:46:59.950 回答