我有 Windows 版 Emacs。我有 Windows 版的 GITBASH。
我的目标:当我使用 M-x grep 时,如何让 Emacs 使用 GITBASH 版本的 GREP?
注意:由于各种原因,我无法将“C:\Program Files\Git\usr in”放在我的正常 Windows 路径中..(这是 Git Bash 放置 grep.exe 的位置)
我尝试过“自定义变量”,但这不起作用 GRRR...我有:
'(grep-command "'c:/Program Files/Git/usr/bin/grep.exe' -n "))
通过上面的内容,我得到 c: 不是命令 将斜杠切换为 \ 我收到不同的错误消息:
'c:\Program Files\Git\usr\bin\grep.exe' -n target_sources . NUL
The filename, directory name, or volume label syntax is incorrect.
我尝试过 OTHER 变体,但似乎无法弄清楚如何正确引用 GREP 命令。
我相信整个问题是因为“Program Files”路径中的 F-Ing Microsoft 空格并在 elisp 内部引用此内容,以便它在 M-x 命令行生成中幸存下来。
经过更多挖掘...找到了答案。
您需要使用短文件名,而不是指定“长文件名”
即:
'(grep-command "c:\\PROGRA~1\\Git\\usr\\bin\\grep.exe -n "))
GRR...如果有一种 elisp 方法可以在看到文件名中存在空格时半自动地执行此操作,那就太好了