如何解决从 Windows 使用 emacsclient 打开文件
我尝试在 wsl2/Debian 上运行的 emacsclient 中从 Windows10 中打开文件。
启动时,我启动 wsl/debian、X410 作为 X 服务器和 emacs 守护进程。
我可以使用 emacsclient 和以下 startclient.bat 启动一个新的 emacs 框架:
@echo off
debian.exe run "if [ -z \"$(pidof emacsclient)\" ]; then export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2; exit;}'):0.0; emacsclient -c; pkill '(gpg|ssh)-agent'; fi;"
然后我创建了一个快捷方式,以便我可以从任务栏打开一个新的 emacs 框架。令我惊讶的是,它运行得非常顺利……到目前为止。但是,我不知道如何从 Windows 资源管理器中使用 emacsclient 打开文件。
我想我需要将参数传递给 bat 文件中的 emacsclient -c,但我该怎么做?
编辑: 通过执行以下操作:
debian.exe run "if [ -z \"$(pidof emacsclient)\" ]; then export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2; exit;}'):0.0; emacsclient -c "%1"; pkill '(gpg|ssh)-agent'; fi;"
我可以用 emacsclient 打开一个文件:
startclient.bat file.txt
但是当使用 open 时文件的路径被搞乱了 而不是
/mnt/c/Users/path/to/file
我明白
/mnt/c/Windows/system32/C:\Users\path\to\file
我将如何将正确的路径作为变量传递?
解决方法
不太确定 /mnt/c/Windows/system32/
来自哪里,但是您可以通过用 wslpath 包围 C:\Users\path\to\file
参数将 /mnt/c/Users/path/to/file
转换为 %1
,如类似于:
emacsclient -c "$(wslpath '%1')"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。