0


当我在 Linux 上工作时,我创建了一组我经常使用的 greps 快捷方式。喜欢

command! GrepFaults :%!grep -a -E '(newAlarm Id)|\bE?[Ff]aultI[dD]|updateAlarmCounter'

但是,当我在 Windows 上执行此操作时,我收到 E4895 错误

E484: Can't open file C:\Users\tanglor\Appdata\Local\Temp[\VIo112B.tmp

当我将 ' 更改为 " - 然后 gVim 挂起等待终端命令完成

C:\Windows\system32\cmd.exe /c (grep -a -E ^"^(newAlarm Id^) ^<C:\Users\tanglor\AppData\Local\Temp\VIi434C.tmp ^|\bE?[Ff]aultI[dD]^|updateAlarmCounter^" ^>C:\Users\tanglor\AppData\Local\Temp\VIo434D.tmp 2^>^&1)

C:\Users\tanglor\AppData\Local\Temp\VIi434C.tmp包含我目前工作的缓冲区。
gVim 内部在将 grep 正则表达式命令作为一个命令时存在问题,他将输入插入到正则表达式替代的第二部分应该是的位置。
我试图用^ char 或 **** char 转义管道 (|) - 没有结果。

我可以使用 Windows findstr,但我想让我的 vim 文件保持一致。我相信我可能需要一些额外的转义字符。

你能帮忙解决这个问题吗?

4

0 回答 0