2

有谁知道为什么这适用于 bash 计算器(bcvim

echo system ("echo 3+5 \| dos2unix \| bc -l") ---> output: 8   
echo system ("echo 3/5 \| dos2unix \| bc -l") ---> output: .600000000000000  
echo system ("echo 3*5 \| dos2unix \| bc -l") ---> output: 15   

但这不是:

echo system ("echo 2^5 \| dos2unix \| bc -l") ---> output: 25  
echo system ("echo 3^5 \| dos2unix \| bc -l") ---> output: 35  

这是在 Windows 的 cygwin 下使用的。

4

1 回答 1

2

期权的价值是&shell多少?一定是/path/to/cygwin/bash,不是以 . 结尾的东西cmd.exe。问题是那^是 windows 中的转义字符cmd.exe,所以echo 2^5在某种程度上相当于echo 2\5解析成echo 25.

如果是cmd.exe添加一行

set shell=/path/to/cygwin/bash

到你的 vimrc。

请注意,虽然echo 2^^^^5解决 toecho 2^5有点奇怪(很明显cmd.exe它是echo 2^^5),但我在一段时间前看到了关于 vim-dev 关于转义问题的很长时间的讨论cmd.exe,所以它可能是其中之一。不应该在最近的 vim 上发生(或者它是一个错误)。

于 2012-11-09T18:08:08.813 回答