Windows下Emacs调用Git Bash版Grep的配置问题
Windows下Emacs配置Git Bash的Grep(无需添加系统PATH)
直接使用以下Elisp配置即可解决路径空格和引号问题:
(setq grep-command "\"c:/Program Files/Git/usr/bin/grep.exe\" -n ")
或者用自定义变量的写法:
'(grep-command "\"c:/Program Files/Git/usr/bin/grep.exe\" -n ")
错误原因说明
- 之前用单引号
'包裹路径的写法不被Windows命令行识别,Windows仅认可双引号"作为路径空格的分隔符,所以会把'c:误判为命令,导致c: is not a command报错。 - 反斜杠写法中,Elisp里的反斜杠需要转义(写成
\\),否则会被当作转义字符处理,导致路径解析错误,出现“文件名、目录名或卷标语法不正确”的问题。
额外优化(可选)
如果希望完全通过Git Bash环境执行grep(比如用到bash的语法特性),可以配置为:
(setq grep-command "bash -c \"grep -n \"\"$@\"\"\" -- ")
若bash不在系统PATH中,需补全完整路径:
(setq grep-command "\"c:/Program Files/Git/bin/bash.exe\" -c \"grep -n \"\"$@\"\"\" -- ")
内容的提问来源于stack exchange,提问作者user3696153
相关产品推荐
相关产品推荐

