我已经通过下载运行安装程序在Windows10上本地安装了Atom编辑器。现在,我启动了WSL Ubuntu发行版,并想从那里用命令atom .
启动Atom(ATOM-EDITOR),或者用命令code .
启动VSCode(VSCode)
Atom启动,但不是在执行该命令的目录中,而是显示来自C:\\Windows
的文件。此外,Ubuntu WSL终端显示以下错误信息:
atom .
grep: /etc/wsl.conf: No such file or directory
"\\wsl$\Ubuntu-18.04\home\wlad\projects\udemy\flask-bootcamp\Flask-Bootcamp-master"
CMD.EXE wurde mit dem oben angegebenen Pfad als aktuellem Verzeichnis gestartet.
UNC-Pfade werden nicht unterstützt.
Stattdessen wird das Windows-Verzeichnis als aktuelles Verzeichnis gesetzt.
对不起,它是德语本地化的,但上面写着类似UNC-paths are not supported
的内容
(尚未测试VSCode)
如何在WSL中使用安装在Windows 10上的Atom或VSCode编辑器?
- 更新*从今天(2020年4月)起,有一种更好的方式在Windows WSL、VirtualMachines(VM)甚至Containers上使用VSCode。查看VSCode的remote-development plugin。
6条答案
按热度按时间nuypyhwy1#
我创建了一个简短的脚本来处理我最常用的三个ATOM命令(我使用Ubuntu和WSL):
1.
atom
1.
atom .
1.
atom RELATIVE_PATH_FILE
这个脚本没有经过优化,我相信很多人都会发现边缘情况,但它已经为我完成了工作。要使用它,只需将其放在
~/.local/bin/atom
中,并通过运行chmod +x ~/.local/bin/atom
使其可执行。您可能需要重新启动外壳,才能将~/.local/bin
添加到您的路径中。为了稍微简化一些,我将我的ubuntu安装的WSL网络驱动器Map到了U:
,所以您可能希望执行相同的操作,或者在第9行相应地修改脚本。该脚本执行几个简单的步骤。首先,如果没有命令行参数,它只需使用不带参数的
cmd.exe
调用ATOM。如果命令行参数是.
,则获取当前目录的路径,否则,使用realpath
获取给定文件的绝对路径。在像以前一样使用cmd.exe
调用ATOM之前,使用sed
将路径从POSIX转换为Windows格式,但使用路径参数。pushd
和popd
命令只是为了消除有关不支持UNC路径的恼人警告消息:jc3wubiy2#
在提到的blog post@Wlad的“已知问题”部分中,有这样的声明
访问Linux文件与访问网络资源相同,任何访问网络资源的规则仍将适用,例如:使用CMD时,CD\WSL$\Ubuntu\home将不起作用(因为CMD不支持UNC路径作为当前目录),但Copy\wsl$\Ubuntu\home\Somefile.txt C:\Dev\将起作用
因此,由于Atom可能使用
cmd.exe
从命令行(可能是某个批处理文件)启动自身,并且考虑到cmd.exe
不能将网络资源作为当前目录(WSL目录被视为当前目录)打开,所以在尝试从WSL外壳启动Atom时出现了失败。实际上,在VS代码中有一个更好的解决方案,可以直接从WSL外壳启动VS代码:
VS Code Remote
。您可以采取以下步骤,使VS代码能够直接从WSL外壳启动:
1.在Windows端安装VS Code的扩展
Remote - WSL
;1.然后,当您在您的WSL外壳中键入
code .
时,将自动安装VS Code Remote Server,并且VS Code将很快启动。通过使用
VS Code Remote
,您不仅可以在VS Code中打开目录,还可以在许多其他方面受益:例如,您可以在VS Code中使用WSL外壳作为集成外壳,并直接从VS Code中运行WSL中的程序。Here是
VS Code Remote - WSL
的官方文档。8fq7wneg3#
Eduardo答案中的脚本是一个很好的方法,但不允许同时打开多个目录/repos(例如,
atom terraform-modules terraform-repo
),这是我经常做的。以下是我对它的一些看法:
这完全基于Eduardo的脚本,应该允许更一般的用例
yhuiod9q4#
我想从WSL运行Atom,但不幸的是,公认的答案没有提到Atom,其他与Atom相关的变通方法不再起作用。
以防有人在谷歌上搜索这个问题,结果出现在这里。这里有一个实际的解决方法(它将在新的Atom更新中中断)。
C:\Users\{username}\AppData\Local\atom\app-{version}\
(本文发布时版本为1.60.0
soapp-1.60.0
。.bashrc
或.zshrc
中添加以下内容:.bashrc
或.zshrc
中添加,因为在/usr/bin
中创建单独的脚本将始终使ATOM在C:/Windows
文件夹中打开。epfja78i5#
我编写了一个bash脚本来打开带有和不带有来自WSL2的文件的ATOM。它可以在任何驱动器上处理任意数量(包括0)的文件参数。支持相对路径和绝对路径,但不能处理包含..的路径名。或者~。将ATOM指向一位董事也会起到预期的作用。以下是我的剧本:
(我相信这方面还有一些需要改进的地方,比如边缘情况和更好地使用语言功能。我欢迎大家的建议。)
czq61nw16#
这可能有点过时了,但您可以简单地运行PowerShell并使用:
这应该会打开一个ubuntu会话或您自己设置的任何WSL。
在这件事上有点小题大做,但我想帮上忙。=)