V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wly19960911
V2EX  ›  分享发现

小发现: vscode 使用 wsl 环境开发(鸡肋)

  •  
  •   wly19960911 · 2018-06-10 13:59:15 +08:00 · 20112 次点击
    这是一个创建于 2340 天前的主题,其中的信息可能已经有所发展或是发生改变。

    因为 wsl 可以把 C 盘映射挂载到 mnt 目录下,解决了我一个问题,虽然那个问题是因为 windows 权限问题造成我在 C 盘编译的 angular 组件无法 publish 上去,然后我通过 wsl 的 node 成功发布了。

    但是我今天想说的不是这个,我突然想到我能不能像这种脚本运行的程序通过 vscode 和自带的 terminal 能不能改成 wsl 去用 linux 开发环境。

    基于这个想法,我尝试了下。的确发现是可以的,vscode 配置如下。

    {
        ...
        "terminal.integrated.shell.windows":"C:\\Windows\\System32\\wsl.exe",
        ...
    }
    

    不仅如此,我们打开 terminal 的时候路径也是已经映射好的,不是我当前 c/myWorkplace/vue 的文件夹。

    我感觉如果这样的话我可以把一些开发环境走 wsl 转移,毕竟我现在用还没有碰到什么问题(尽管不能代表你们),这一年下来,用 wsl 发现还是很好用的。

    25 条回复    2018-06-12 18:03:45 +08:00
    infun
        1
    infun  
       2018-06-10 14:02:53 +08:00 via iPhone
    wsl 下的 git 行吗?
    hljjhb
        2
    hljjhb  
       2018-06-10 14:03:48 +08:00 via Android
    😝我现在就是这样用的
    wly19960911
        3
    wly19960911  
    OP
       2018-06-10 14:08:48 +08:00
    @infun #1 git 的话,我一直用 vscode 和原生的 git bash 管理的,刚刚看了下,git 好像不是在正常工作的情况,但是某些情况又是正常的,难道是 linux 下的 git 和 windows 的有些差异?

    具体情况是 git status 下面疯狂刷 modified,把所有的文件都显示为 modified 了。但是 git log 都是正常的 log
    hsyu53
        4
    hsyu53  
       2018-06-10 14:17:57 +08:00   ❤️ 1
    刚好看到这个,vscode 下用 WSL 里面的环境来开发 C++。

    infun
        5
    infun  
       2018-06-10 14:18:32 +08:00
    @wly19960911 路径符号的差别。只能用 Win 下面的
    Torpedo
        6
    Torpedo  
       2018-06-10 14:21:12 +08:00 via Android
    一直这么用,就是路径跳转不太好
    mxalbert1996
        7
    mxalbert1996  
       2018-06-10 14:28:31 +08:00 via Android
    @wly19960911 怕不是换行符的区别,Windows 版 git 有个功能是 checkout 的时候自动把所有换行符改成 CR+LF,然后 commit 的时候用 LF
    wly19960911
        8
    wly19960911  
    OP
       2018-06-10 14:29:23 +08:00
    @hsyu53 #4 基于前端的调试,只用 developer tools,vscode 的调试还真的没有研究过。我这里只是简单的修改了一个 shell。
    ifanze
        9
    ifanze  
       2018-06-10 14:30:46 +08:00 via iPhone
    生成不了 coredump 文件是最伤的
    wly19960911
        10
    wly19960911  
    OP
       2018-06-10 15:00:19 +08:00
    @mxalbert1996 #7 的确是换行符的问题,刚刚我看了下 git diff 显示了很多 ^M


    @infun #5 换行符问题,看来不能用 wsl 管理了。
    Osk
        11
    Osk  
       2018-06-10 15:31:18 +08:00 via Android
    @wly19960911 关闭 Windows 版 git 的换行符转换功能也可以啊
    cholerae
        12
    cholerae  
       2018-06-10 16:24:44 +08:00
    这么费劲干啥,直接用 wsl 里面运行的 linux 版本的 vscode 不是更方便
    wly19960911
        13
    wly19960911  
    OP
       2018-06-10 16:27:38 +08:00
    @cholerae #12 那需要部署 wsl 的桌面客户端,实际上我只需要编译运行环境能在 wsl 里面就可以了。你说的那更麻烦,我以前试过,折腾不起这个。
    wly19960911
        14
    wly19960911  
    OP
       2018-06-10 16:36:40 +08:00
    @wly19960911 #13 说错了,是桌面环境,
    liuxey
        15
    liuxey  
       2018-06-10 17:15:58 +08:00
    用带有 xserver 的 ssh 工具跑 wsl 下的 GUI 程序就行了,基本没什么依赖,直接启动 wsl 的 GUI 程序,和 windows 自己的窗口兼容完美,不过中文输入法无解,我就是在 wsl 里跑 pycharm 的除了输入法,没遇到啥大问题。
    js2854
        16
    js2854  
       2018-06-10 19:02:33 +08:00 via Android
    @wly19960911 换行符问题跟 wsl 没关系,是 git 本身的配置决定的,可以试试

    #提交检出均不转换
    git config --global core.autocrlf false
    cholerae
        17
    cholerae  
       2018-06-10 23:36:29 +08:00 via iPad
    @wly19960911 只需要在 win 上装个 xserver 的客户端就行了,vscode 不用任何额外的配置,之后的开发体验就跟在 linux 里一模一样了
    laogui
        18
    laogui  
       2018-06-11 05:58:43 +08:00 via Android
    terminal 一直可以用 wsl 里的,但自带的 git 不知道怎么走 wsl
    greatbody
        19
    greatbody  
       2018-06-11 23:11:31 +08:00
    @laogui 同样的疑问,求解答
    lingo
        20
    lingo  
       2018-06-12 14:05:29 +08:00
    @hsyu53 我昨晚想用 vscode 调用 wsl 里的 gcc 和 gdb 写 c 代码。。翻遍各种文档也没成功 debug 起来。。。
    wly19960911
        21
    wly19960911  
    OP
       2018-06-12 14:36:33 +08:00   ❤️ 1
    @lingo #20 我刚刚成功 debugger 了,我不懂 C++,需要编译成 a.out 才能断点,

    参考配置。

    https://gist.github.com/xiao-po/1a7df865206a1ad426ca04e4f86dc072

    因为 v2 的回复不能 markdown 只能这样了。
    lingo
        22
    lingo  
       2018-06-12 15:17:49 +08:00
    @wly19960911 这套我试了,提示 a.out 不存在
    wly19960911
        23
    wly19960911  
    OP
       2018-06-12 15:23:25 +08:00   ❤️ 1
    @lingo #22 没有编译,执行 g++ target.cpp ,编译成 a.out ,我不懂 C++开发流程。我只能知道到这里了
    wly19960911
        24
    wly19960911  
    OP
       2018-06-12 15:38:42 +08:00   ❤️ 1
    @lingo #22 忘记了,不是 g++ target.cpp 是,g++ -g target.cpp 要参数,否则没用。
    lingo
        25
    lingo  
       2018-06-12 18:03:45 +08:00
    @wly19960911 感谢,多试了下,已经放弃了(捂脸
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3344 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 10:51 · PVG 18:51 · LAX 02:51 · JFK 05:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.