有人知道为什么这适用于bc
中的bash计算器(vim
):
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下使用。
答案 0 :(得分: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
解析为echo 2^5
有点奇怪(简单cmd.exe
中它是echo 2^^5
),但我看到很长时间讨论vim-dev有关转义很久以前cmd.exe
的问题,所以它可能就是其中之一。不应该发生在最近的vim上(或者它是一个bug)。