Atom 复制路径的问题

如上图,我反覆测试,不管装什么插件,只要是有关「插入文件路径」的插件,出现的路径(斜线)一律为「 \ 」系统路径的方式,而不是「 / 」WEB路径,这是何解?

目前确定是Atom本身的问题。

请问你是使用什么插件来「插入文件路径」的?是否是插件的问题。

如果是路径自动补全的话,参考下 为何我的autocomplete-paths默认的是\反斜杠,怎么改成斜杠/ 里我的回答。

大神的回答很给力

路径自动补全這個我已經找到解答了
現在問題則是「tree-view-copy-relative-path」

我用的是「tree-view-copy-relative-path」
可以在樹型菜單的文件上點擊右鍵選擇copy relative path
然而複製出來的路徑分隔符卻是"“而不是我要的”/"

我试了下,在 Windows 下确实有这个问题。

在插件项目里 2016 年 4 月 7 日也有人提了相同的问题 Pasting with backslashes instead of forward slashes,插件作者表示他会看看但是目前没有后续。

这个插件的源码生成相对路径是使用的一个第三方的 node 组件 relative,应该是它生成的相对路径在 Windows 下有这个问题导致的。

我对 js 和 CoffeeScript 都不熟,目前简单看了一眼,粗暴的解决办法是在用 relative 生成相对路径后将 \ 全替换成 /,想了两秒钟觉得应该也不会有什么问题,反正在 Web 里空格也不使用 \ 转义,正常文件(夹)名里也不会有 \

修改方法:

Windows 下打开 %userprofile%/.atom/packages/tree-view-copy-relative-path/lib/tree-view-copy-relative-path.coffee 文件,最后一行是

    atom.clipboard.write relative(currentPath, treeViewPath)

在后面添加 replace,修改为

    atom.clipboard.write relative(currentPath, treeViewPath).replace(/\\/g, '/')

少年你先试着用一阵,如果没什么问题喊我去给作者提 PR :joy:

据我所知,ATOM的开发者之一表示过,目前并不打算改变ATOM输出路径的表现,即使他想做,因为这将是一个很浩大的修改工程,同时也对ATOM造成影响,虽然ATOM是WEB开发的软件,但它有仰赖于系统的框架以及第三方组件,要改变这个问题,恐怕不容易。

非常感谢您解决了我的困扰,因为我差一点为了这个问题放弃ATOM用回Sublime Text。

PS:修改后复制出来的路径已经正常了

Glad to hear that.

我感觉如果插件能提供一个选项供切换的话,会更好点,毕竟不同的应用场景可能有不同的需求。等我有空学习一丢丢插件开发的知识给这个插件改进一下。:grin:

我将非常的期待,也许我可以提供一个思路:
写一个packages,然后监听鼠标点击或右键复制,如果得到的值是路径,那么就将所有的反协杠替换成正协杠,,可能的话,扩展这个监听,写个快捷键设置,当按下快捷键贴上的就是正斜杠的路径,不使用快捷键直接贴上则为反斜杠,这个功能定义在插件的设置选项里为可选状态。

这个好处就是可以一次性改善所有插件输出路径的问题了,英文能力好的,帮个忙提交给ATOM官方给那些高手们折腾吧。

如果你在使用 Windows 的话,我觉得这并不算 Bug,因为的确在 Windows 下路径分割符是 \ 而不是 /,当然,更好的方案是添加一个选项来切换这个行为。

同样的问题,我最终花了一个晚上的时间,看了下如何写插件才解决。