有谁知道为什么这可以与 vim
中的 bash 计算器 (bc
) 配合使用:
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 下使用。
最佳答案
&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 上不应该发生(或者它是一个错误)。
关于bash - 在 vim 脚本中使用 bash 计算器 - 奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13306707/