小发现: vscode 使用 wsl 环境开发(鸡肋) - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wly19960911
V2EX    分享发现

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

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

    因为 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
    GlobalNPC
        1
    GlobalNPC  
       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++。

    GlobalNPC
        5
    GlobalNPC  
       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 的换行符转换功能也可以啊
    6ufq0VLZn0DDkL80
        12
    6ufq0VLZn0DDkL80  
       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
    6ufq0VLZn0DDkL80
        17
    6ufq0VLZn0DDkL80  
       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     Solana     2994 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 13:47 PVG 21:47 LAX 06:47 JFK 09:47
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86