halloleo halloleo - 1 month ago 12
Bash Question

Best place to hook path conversion in to Emacs under Windows

I use GNU Emacs on Windows with git-bash for unix tools like

locate
,
grep
and
find
. The git-bash tools spit out paths in the following form:

/c/path/to/file/file.txt


Emacs needs for functions like
find-file
,
find-file-at-point
or (with the
helm
-package) the function
helm-find-file
its paths in the form

c:/path/to/file/file.txt


I wrote a converter-function which converts the former into the latter and I hooked it via
defadvice
in
expand-file-name
. This works reasonable well (e.g. in my initial use case to make
helm-locate
cooperate with the git-bash
locate
).

However in some cases it does not work, like in interactive use of
find-file-at-point
. So my question is what is a more universal place to hook this converter in to make even interactive calls work properly?

Answer

jenesaisquoi's comment brought me to cygwin-mount.el. I tried it with gitbash - and it magically works!

The reason is that gitbash provides a similar mount command as cygwin does and gitbash's paths are cygwin paths as well.

Just make sure the gitbash binaries are in emacs' PATH environment variable.

Comments