Emacs 25.1.5的Tramp在MS-Windows下有个bug

这也是我不换到master分支的原因,有日本的朋友详细分析了,里面还有解决方案,如果你在Windows下使用Tramp时遇到了类似这样错误输出:

Tramp: Encoding remote file ‘/sshx:root@104.224.170.13#29876:/root/acme-tiny/README.md’ with ‘base64 <%s’…done
Tramp: Decoding local file ‘z:/TEMP/tramp.13308UmH.md’ with ‘base64-decode-region’…done
Tramp: Inserting ‘/sshx:root@104.224.170.13#29876:/root/acme-tiny/README.md’…failed
Removing old name: No such file or directory, /msys64/TEMP/tramp.13308UmH.md

错误提示

你一定要看里面给的解决方案。

Update: 其实,我撒谎了。上面日本朋友的详细分析是日文的,我根本看不懂。根据我浅陋的日语结合谷歌翻译,我能知道问题出在哪,再加上我对代码的阅读,我觉得问题出在c5f466d,对应的是Bug#20821。修改后的代码丢弃了expand-file-name返回路径的卷标,这导致打开本地文件出错。我简单的注释掉丢掉卷标的代码,打开文件的功能正常了,但ido是否会出错我就不知了。有意思的是,用-Q启动的Emacs是没有这个毛病的,看来这个毛病只发生在使用了cygwin-mount扩展时,这毛病实在是太小众了,不知道维护者是否会修复,可以写一封信询问一下。

Update 2: 已经修复了,维护者真厉害。看起来这毛病也不能赖Tramp,因为我们用的临时文件路径不是默认的。反正现在好了。

Tramp rules.