问题描述
在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脚本的人可以更好地帮助我解决这个问题吗?我还尝试了其他组合,但似乎无济于事。除了赌博之外,我还想问更多的想法
解决方法
所以我最终要解决的解决方案是不要放置任何前面的反斜杠。
看到的想法是为名为hello的程序运行诸如.\hello
之类的命令终端命令,我假定它对任何可执行文件的Linux等同于./hello
。事实证明,在编译时会创建一个hello.exe
文件,因此解决方案是仅通过在终端中键入hello.exe
来调用hello
因此,我的最终命令根本没有斜杠
autocmd FileType cpp nmap <buffer> <F5> :w<bar>!g++ -o %:r % && %:r<CR>
对于创建先前所需结果的正则表达式。那对我来说还是个谜。欢呼