Windows, VSCode, WSL 和 C/C++小结

发布于 / 笔记 / 3 条评论

前些时候在实验室一直找不到好用的LinuxC/C++用编辑器。Codeblocks闪退,vim过于硬核,而且编译运行需要手动打指令,geany倒是挺好用的,只不过自动缩进有点难受。但是在机缘巧合之下,我安装了VS Code,然后沉迷其中了。

在短暂的使用之后发现,起码对于C/C++竞赛刷题,VS Code Linux的体验要比VS Code Windows好很多,Linux的VS Code可以直接F5 - g++ build and run active file,然后就可以直接在当前目录生成正确可用的launch.jsontask.json并且正确运行,在终端中正常调试、运行。但是Windows上的使用就很麻烦。就终端来说,cmdPowerShell在VSCode中都不怎么好用,然后我就突然想到,可不可以用WSL来运行VSCode呢?

经过短暂的摸索,发现效果比想象中的好很多。所以就在这里记录一下过程。

安装Visual Studio Code

VS Code的Windows版本会自动把安装目录下~/bin/code(即Linux版本入口)添加到WSL的环境变量里。如果你正常地安装了VS Code For Windows和WSL,那么在WSL中应该可以直接通过$ code来进入VS Code。

依赖项

安装基础扩展

推荐的C/C++扩展列表:

从上往下依次为:

  • 彩虹大括号,美观用,可以直观地看到各种括号的匹配关系。
  • C/C++基础扩展,基础的代码补全,编译调试运行环境等。
  • C++ Intellisense 增强,代码补全增强扩展。
  • 简体中文包,用于VSCode的简体中文显示。
  • Code Runner,Windows下自带的C/C++调试运行过于麻烦的替代工具。
  • Python,就是Python(?这里不是C/C++主场🐴?)。

Visual Studio Code的后续配置

一、 首选项配置。

通过左下角的设置图标-设置进入配置界面,可以通过上方的搜索设置搜索一下名称来快速查找。推荐需要更改的配置分别如下:

  • Editor: Font Size:字体大小,太小伤眼睛()。我选择了16。
  • Editor: Font Family:优先级模式,可以在后方添加等宽中文字体来替换原来的宋体。我使用的是Yahei Consolas Hybrid,微软雅黑 + Consolas的合并字体,可以在Github上搜索到。
  • InterGrated > Shell: Windwos:终端在Windows上使用的Shell路径,即默认Shell。也可以通过F1查找默认Shell修改。填写wsl.exe的所在路径,一般是:C:\Windows\System32\wsl.exe
  • Code-runner: Preserve Focus:当运行时,强制将焦点保留在代码编辑器内,推荐关闭以焦点到终端。
  • Code-runner: Run in Terminal:推荐打开。Code-Runner默认将在输出窗口运行,但是输出窗口是一个只读窗口,无法输入数据。通过打开这个选项,Code-Runner将把程序发送到终端窗口运行。
  • Code-Runner: Save File Before Run:推荐打开,就是运行之前先保存文件,没什么好说的。
  • Code-Runner: Terminal Root:应该填写/mnt/。因为WSL和Windows本地路径的映射关系。如果不填写这一项,WSL将无法正常cd到正确路径,导致无法正常运行。

二、settings.json的编辑。

settings.json可以通过设置中的任何一个在settings.json中编辑按钮进入。

  • 在json最后一项后添加逗号换行,输入"code-runner.executorMap",按Enter使用自动补全,会出现一大堆各种语言的配置选项。这些配置选项都是各自语言的编译时指令。
  • 我们需要更改的项是ccpp
// settings.json
{
    // 省略 
    "code-runner.executorMap": {
        "javascript": "node",
        "java": "cd $dir && javac $fileName && java $fileNameWithoutExt",
        "c": "cd $dir && gcc $fileName -o $fileNameWithoutExt.out && $dir$fileNameWithoutExt.out",
        "cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt.out && $dir$fileNameWithoutExt.out",
        // 省略 
    }
}

其实这一步是为了将wsl下编译的C/C++可执行文件加上.out的文件拓展名。这样便于在.gitignore中配置合适的git忽略。

三、快捷键的设置

CodeRunner默认的运行快捷键是Ctrl + Alt + N,结束运行的快捷键是Ctrl + Alt + M,这个快捷键实在是过于麻烦了。所以我们将他的快捷键设置成默认调试的F5上。

左下角的设置图标 - 键盘快捷方式进入快捷键设置界面,先搜索F5,将原来的F5快捷键删除,然后搜索Code Runner,将code-runner.run绑定到F5

开始快乐

至此,VSCode For Windows在WSL上的使用就已经大致完成了。开始快乐!

转载原创文章请注明,转载自: 冻葱Tewi » Windows, VSCode, WSL 和 C/C++小结
  1. 冻葱Tewi

    更换主题邮件提醒测试

  2. 冻葱TewiQ

    邮件测试

    1. 冻葱Tewi
      @冻葱TewiQ 你说的对