如何创建单个 vim 正则表达式映射以在 windows 中编译和 运行 c++ 程序

How can I Create single vim regular expression map to compile and run c++ program in windows

在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>

但其中 none 似乎给出了预期的结果。了解 vim 脚本的人能否更好地帮助我解决这个问题。我也尝试过其他组合,但似乎没有任何效果。我可能会问

而不是赌博更多的想法

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

中键入 hello 来调用 hello.exe

因此我的最终命令完全没有斜线

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

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