cmd中如何查看当前绝对路径_在VS Code中集成MSYS2(2020年更新)

19049326cf7799a29d470dcc6f6c8f79.png

MSYS2是Windows下的一个工具,可以通过模拟Linux接口运行一部分Linux软件,是MinGW的增强版、Cygwin的轻量版。这篇文章介绍在VS Code中集成MSYS2的方法。

配置Shell集成

如果想把默认Shell直接换成MSYS2,只需进行如下设置:

{
    "terminal.integrated.shell.windows": "`pathtomsys64`usrbinbash.exe",
    "terminal.integrated.env.windows": {
        "MSYSTEM": "MINGW64",
        "CHERE_INVOKING": "1",
        "MSYS2_PATH_TYPE": "inherit"
    },
    "terminal.integrated.shellArgs.windows": [
        "--login",
        "-i"
    ]
}

解释一下参数含义:

pathtomsys64自行换成msys64的文件夹绝对路径,分隔符用""。虽然可以通过msys.exe、mingw64.exe等工具启动msys2,但它们是不能集成到VS Code中的。包括msys2_shell.cmd,这些工具的本质只是提供一个快捷方式,因此这里应该填真正的shell提供程序也就是bash。

环境变量第一行指定用MinGW64,这样可以直接调用通过pacman -S mingw-w64-x86_64-xxx安装的包,直接输xxx就可以了。多说一句,推荐安装应用时都安装mingw-w64-x86_64-xxx的版本,这个版本通常比不带前缀的要新一些,而mingw-w64-i386-xxx是32位的,不用装(都2020了,没几台机器是32位的了吧)。第二行是为了防止bash自动执行cd ~。第三行是说把路径定向到当前工作区。这两行结合使用可以提供类似原生powershell的启动即定位到工作区的功能。最后一个"--login"参数是启动登录式shell,不加这个参数bash不会自动读取~/.bash_profile等文件。"-i"参数是启动交互式shell。

然而这种方式不推荐设置成全局(可以放在工作区设置里),其一是bash启动比powershell慢,其二是别的使用场景,比如写python(conda环境),用bash会和自带的python混淆。

多Shell集成

还有一种方法就是装插件支持启动不同的Shell,比如这个

bee7761e45e44ddd791fa8f9e2aedcab.png

Shell launcher需要一些设置,在Settings.json中输入

    "shellLauncher.shells.windows": [
        {
            "shell": "C:WindowsSystem32cmd.exe",
            "label": "cmd"
        },
        {
            "shell": "C:WindowsSystem32WindowsPowerShellv1.0powershell.exe",
            "label": "PowerShell"
        },
        {
            "shell": "pathtomsys64usrbinbash.exe",
            "label": "MSYS2 MinGW64",
            "args": [
                "--login",
                "-i"
            ],
            "env": {
                "MSYSTEM": "MINGW64",
                "CHERE_INVOKING": "1",
                "MSYS2_PATH_TYPE": "inherit"
            }
        },
        {
            "shell": "C:WindowsSystem32bash.exe",
            "label": "WSL Bash"
        }
    ],

自行替换其中pathtomsys64。这样就可以通过快捷键启动不同的Shell了。(我把快捷键设成了Ctrl+K Ctrl+`以与默认终端保持相似性。通过Ctrl+K Ctrl+S设置)

ae8d40b725b32bd3e1a655f424c41e75.png

C/C++设置

用MSYS2的一个重要用途是写C/C++。Windows下写C++要么装庞大的VS+vcpkg管理包,要么就是仿linux,最好用的就是MSYS2。VS Code弄msys2当然也是支持的,在C/C++ Configuration中输入

c_cpp_properties.json

{
    "configurations": [
        {
            "name": "Win32",
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "compilerPath": "pathtomsys64mingw64bing++.exe",
            "includePath": [
                "${default}",
                "pathtomsys64mingw64include",
                "pathtomsys64mingw64x86_64-w64-mingw32include"
            ],
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "gcc-x64"
        }
    ],
    "version": 4
}

pathtomsys2自行替换。注意这里"compilerPath"一定要设置好,否则VS Code的智能提示有可能会误报。而"includePath"是告诉VS Code头文件应该到哪去找。

如果想调试C++文件,打好断点直接按F5,一路选择Windows(GDB/LLDB)、g++就自动把launch.json、task.json全配好了,非常智能。依稀记得很久很久以前VSCode还要手动调task.json和launch.json,如今VS Code实在是在易用性上大大提高了。当然,如果想骚操作(比如task.json直接把当前目录下cpp全编译了,或者链接项目、第三方库)那还是需要修改一下的~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值