您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

基于WSL和VSC在window 10打造完美的终端开发环境

时间:2021-02-01 11:48:58  来源:  作者:

为了支持命令行的使用,微软重新开发了windows Terminal了,经过几次的迭代,目前已经趋于成熟,可以用来实际使用。本文中,虫虫给大家介绍一个利用Windows Terminal、WSL和VSC构建一个完美的终端开发环境,实现:

使WSL成为主开发环境

使用VSCode为主编辑器

拥有一个漂亮的终端

WSL和VSCode

首先安装WSL 2。我们选择了Ubuntu发行版,这是目前最适合做开发的linux发行版。

接着安装VSCode和Remote Development扩展包。使用该扩展包后,就可以可以让VSCode无缝编辑WSL文件系统中的文件。

基于WSL和VSC在window 10打造完美的终端开发环境

 

Windows终端

为了使得我们的终端变得漂亮,安装了Windows Terminal(WT),这是Microsoft新推出的非常棒的一个Windows新终端。

以WSL成为主要开发环境,但仍然希望在Windows中工作也能获得很好的体验。为此,安装最新版的PowerShell 7。

基于WSL和VSC在window 10打造完美的终端开发环境

 

最后是WT配置文件,为了打造一个漂亮的终端,必须要自己好好配置一番。默认情况下,WT可以创建WSL,PowerShell,CMD和Azure Cloud Shell窗口。我们对cmd和Azure Cloud Shell不感兴趣,并且要使用PowerShell 7而不是PowerShell,因此禁用了WSL Shell以外的所有功能,只需添加"hidden": true属性添加到WT设置文件中的配置文件中(单击标题栏中的下拉列表,然后单击“设置”或Ctrl+,)。

PowerShell WT配置

创建PowerShell 7配置文件,将以下对象添加到配置文件数组:

{
"guid": "{346d54ee-6282-41c7-846a-0a2fa38ff66b}",
"name": "PowerShell",
"commandline": "pwsh.exe",
"icon": "%SystemRoot%\Installer\{8B844F39-E6EE-486B-BE85-96A485AE2B96}\PowerShellExe.ico",
"startingDirectory": "D:\code"
}

注意事项:

要生成GUID,可以使用在线GUID生成器网站

对PowerShell 7,要使用pwsh.exe命令而不是powershell.exe,请按照以下步骤在系统上查找图标路径:

打开“开始”菜单,然后搜索PowerShell 7

右键点击该应用,然后点击“打开文件位置”

在打开的文件资源管理器中,右键单击快捷方式,然后单击“属性”

在“快捷方式”选项卡上,单击“更改图标...”按钮,然后复制文件路径。

将起始目录设置为保留所有项目的位置,理想情况下,该目录位于驱动器的根附近,以使文件路径尽可能短。

Ubuntu WT配置

由于要将WSL用作为主要环境,因此将其配置文件对象移至列表的顶部,以便它将首先出现在新选项卡的下拉列表中。用defaultProfile WSL概要文件的guid属性替换了顶层属性,以使其成为在WT启动时自动打开的概要文件。

和PowerShell类似,希望起始目录为~/code。如果尝试直接在WT配置中进行设置,则会发现它不起作用,因为WT不知道如何解决它。可以改用绝对路径到达那里,并且需要使用WT可以理解的Windows文件路径。可以使用Windows从Windows访问WSL发行版的文件系统\wsl$<distro>,因此,将该属性添加到Ubuntu配置文件对象中:(应在"startingDirectory": "\\wsl$\Ubuntu\home\CC\code"其中Ubuntu替换为WSL发行版的名称和WSL用户名)。

WT主题

最后,为WT设计一个新主题。此处使用了与VSCode相同的配色方案,即Night Owl主题。创建了一个VSCode插件来自动生成WT主题。

以下是Night Owl主题下终端的外观效果如下图:

基于WSL和VSC在window 10打造完美的终端开发环境

 

shell profile

接下来,开始进行shell配置。shell配置文件是一个在终端启动时运行的脚本,可用于配置当前环境。对于PowerShell,这将是PowerShell脚本,对于WSL,将是bash脚本。

PowerShell适配

首先是PowerShell。可以运行echo $PROFILE以查看配置文件脚本是否已经存在:C:UsersCCDocumentsPowerShellMicrosoft.PowerShell_profile.ps1。PowerShell似乎在各个地方都有作用,只需在适当的位置创建脚本即可,它应该可以工作。添加到个人资料脚本中的内容:

# C:UsersCCDocumentsPowerShellMicrosoft.PowerShell_profile.ps1
Set-Alias -Name editor -Value nano
Set-Alias -Name edit -Value editor
function profile_alias { editor $PROFILE }
Set-Alias -Name profile -Value profile_alias
function reload_alias { & $PROFILE }
Set-Alias -Name reload -Value reload_alias

解释:首先,为终端编辑器创建了几个别名(editor和edit)。喜欢使用终端编辑器而不是GUI编辑器,因为它减少了在终端中工作时的上下文切换,并且加载文件以进行快速编辑要快得多。就是说,如果想使用VSCode,则可以替换nano为code。

为编辑器命令创建别名的原因是可以随时更改编辑器,而不必更改肌肉记忆即可使用新命令。这也意味着可以创建更多打开编辑器的别名,而不必在更改编辑器时更改所有别名。

接下来,添加profile别名以在编辑器中打开配置文件脚本。这样就无需记住个人资料的位置,可以运行profile并可以立即开始对其进行编辑。还添加了一个reload 别名,该别名仅使用配置文件脚本重新加载外壳程序。这时可以使用对配置文件脚本所做的更改,而不必创建新的终端实例。

Bash适配

同理对bash也进行配置。在bash中,配置文件是位于的bash脚本~/.bashrc。默认情况下,它已经包含很多东西,因此将更改添加到脚本的底部,其内容为:

# ~/.bashrc
export EDITOR="nano"
alias editor="$EDITOR"
alias edit="editor"
export PROFILE="~/.bashrc"
alias profile="editor $PROFILE"
alias reload="source $PROFILE"
alias explorer="explorer.exe"

和PowerShell脚本非常相似。首先,创建一个EDITOR环境变量。一些Linux程序会通过EDITOR变量启用默认浏览器,为了让程序默认特定编辑器,需要给设置它的值。然后利用EDITOR新建两个别名editor和edit。

然后,添加相同的名称profile和reload别名以编辑并重新加载概要文件脚本。

最后,添加了另一个别名,该别名映射explorer到explorer.exe与在PowerShell中打开WSL中的Windows File Explorer相同的命令。

终端编辑器

终端编辑器,前面适配时候,选择了nano,它是一个非常直观且易于使用的终端编辑器。对没有太多的终端编辑经验的人来说,Vim不是和合适,nano可能也会有一定的上手难度,为此,此处我们选择一个更加现代和直观容易好用的用golang开发的编辑器micro。

基于WSL和VSC在window 10打造完美的终端开发环境

 

PowerShell配置

在PowerShell中,可以很容易通过scoop或 Chocolatey安装模块。如果尚未安装,则强烈建议这样做,因为这样可以使在Windows中安装程序更加轻松。在本指南中,将使用scoop。安装了scop之后,只需运行即可scoop install micro。就可以,运行micro以编辑文件。

让我们更新配置文件脚本以使用它:

# C:UsersCCDocumentsPowerShellMicrosoft.PowerShell_profile.ps1
Set-Alias -Name editor -Value micro

Ubuntu配置

要在Ubuntu上安装,可以从micro网站运行安装脚本:

curl getmic.ro | bash

更新bash配置文件以使用它:

# ~/.bashrc

export EDITOR="micro"

micro主题

使用micro进行编辑,可能会发现它的主题与WT主题冲突。一种选择是将的WT主题移植到micro,但这会费工夫。而使用内置simple主题会使用终端主题的背景颜色,所以可以直接用它。

必须分别为PowerShell和WSL配置micro。要进行配置,请打开Micro,按Ctrl+E打开命令提示符,然后输入命令set colorscheme simple。

终端提示

要使终端真正漂亮,还需要自定义终端命令行提示。有很多工具,可以供选择,目前最受欢迎的是Bash的ohmyzsh和PowerShell的oh-my-posh。此处我们选择Starship。

基于WSL和VSC在window 10打造完美的终端开发环境

 

Starship,是一种“快速,快速”的跨平台替代方案,具有令人愉快的简单提示和一些出色的自定义功能(有望在将来的版本中提供更多功能)。由于WSL和PowerShell都可以访问Windows文件系统,设置一个Starship配置文件,两者共享。

PowerShell Starship

要为PowerShell的安装Starship,可以再次使scoop一键安装:

scoop install starship

为了要加载它,需要在编辑配置文件添加配置:

# C:UsersCCDocumentsPowerShellMicrosoft.PowerShell_profile.ps1
Invoke-Expression (&starship init powershell)

现在,可以运行reload别名并立即看到漂亮的提示。

Bash

在bash中安装Starship也同样简单。首先从他们的网站运行bash安装脚本:

curl -fsSL starship.rs/install.sh | bash

然后将其初始化脚本添加到配置文件中:

# ~/.bashrc
eval "$(starship init bash)"

输入reload,我们现在也可以在bash中看到它。

Starship配置

要在PowerShell和WSL上对Starship进行相同的配置,首先在Windows文件系统中为PowerShell创建配置文件,然后在WSL文件系统中创建符号链接。

Starship~/.config/starship.toml默认情况下会在其中查找其配置文件。在PowerShell中,~解析为C:Users<username>,因此可以运行以下命令来创建配置文件:

mkdir ~/.config
touch ~/.config/starship.toml

现在,可以在此处添加所需的任何配置。此处我们禁用了Starship默认的情换行符和包管理以及Nodejs模块:

# ~/.config/starship.toml
add_newline = false
[line_break]
disabled = true
[package]
disabled = true
[nodejs]
disabled = true

可以自己尝试使用默认设置,然后在根据个人喜好进行调整。

最后,需要将这些更改同步到WSL。在bash中,可以运行以下命令来创建符号链接:

mkdir ~/.config
ln -s /mnt/c/Users/<username>/.config/starship.toml ~/.config/starship.toml

最终的效果如下:

基于WSL和VSC在window 10打造完美的终端开发环境

 

总结

本文我们介绍了,基于Windows Terminal、WSL和VSC在Windows 10中创建一个漂亮且实用的终端开发环境,抛砖引玉,希望大家能基于此创建应自己喜欢高效的Windows开发环境,可以把自己漂亮的终端界面截图分享给大家看。



Tags:开发环境   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
Java开发环境搭建与配置,工具集合包括:Tomcat\JDK\JRE\Redis\Maven。JDK 下载JDK安装包:jdk-8u161-windows-x64.exe。可以加关注私信我,提供百度网盘地址。 按照提示一步一步安...【详细内容】
2021-07-13  Tags: 开发环境  点击:(113)  评论:(0)  加入收藏
Ubuntu是一个流行的Linux操作系统,和其他Linux发行版相比,Ubuntu非常易用,和Windows相似性很好,非常适合Windows用户的迁移。 预装了大量常用软件,中文版的功能也较全,支持拼音输...【详细内容】
2021-06-16  Tags: 开发环境  点击:(102)  评论:(0)  加入收藏
HTTP的弊端及HTTPS的由来众所周知HTTP协议是以TCP协议为基石诞生的一个用于传输Web内容的一个网络协议,在"网络分层模型"中属于"应用层协议"的一种.那么在这里我们并不研究...【详细内容】
2021-04-01  Tags: 开发环境  点击:(250)  评论:(0)  加入收藏
为了支持命令行的使用,微软重新开发了Windows Terminal了,经过几次的迭代,目前已经趋于成熟,可以用来实际使用。本文中,虫虫给大家介绍一个利用Windows Terminal、WSL和VSC构建一...【详细内容】
2021-02-01  Tags: 开发环境  点击:(174)  评论:(0)  加入收藏
C++是一种通用编程语言,它具有命令式,面向对象和通用编程功能。C++可在Windows,Linux,Unix,Mac等许多平台上运行。在我们开始使用C ++进行编程之前。我们将需要在本地计算机上设...【详细内容】
2020-12-24  Tags: 开发环境  点击:(155)  评论:(0)  加入收藏
一.JDK1.8安装从apache官网上下载JDK1.8.x安装包: 安装过程中指定具体的安装路径,尽量不使用默认路径! 配置系统参数: 编辑Path,添加JAVA配置: 二.安装Scala编程语言 配置Scal...【详细内容】
2020-11-19  Tags: 开发环境  点击:(105)  评论:(0)  加入收藏
Hi3861开 发 板开发环境 硬件环境 其中,Linux 主机用于源码下载和编译,Windows 主机用于烧写程序以及源码编辑。 软件环境 备注: 开发人员可以在Windows工作台中进行程序开发,...【详细内容】
2020-10-22  Tags: 开发环境  点击:(117)  评论:(0)  加入收藏
一、系统安装1. 到官网下载HUAWEI DevEco Studio 2. 安装 二、创建项目创建项目目前还没有手机选项,所以我先选择一个电视: IDE的环境看起来和idea差不多,应该比较容易上...【详细内容】
2020-09-21  Tags: 开发环境  点击:(99)  评论:(0)  加入收藏
作者:小生方勤转发链接:https://mp.weixin.qq.com/s/bl5nHiRz7rGc5TbVbk-4rQ前言由于是工具,很可能你看到的时候有些工具包已经升级了,会有一些报错;这个你就需要自己探索了。工...【详细内容】
2020-08-26  Tags: 开发环境  点击:(65)  评论:(0)  加入收藏
开发环境搭建Xshell 和 Xftp 工具下载地址:https://www.netsarang.com/zh/设置网络连接模式为 NAT 模式使用 root 用户打开 /etc/sysconfig/network-scripts/ifcfg-eno1677773...【详细内容】
2020-08-24  Tags: 开发环境  点击:(80)  评论:(0)  加入收藏
▌简易百科推荐
摘 要 (OF作品展示)OF之前介绍了用python实现数据可视化、数据分析及一些小项目,但基本都是后端的知识。想要做一个好看的可视化大屏,我们还要学一些前端的知识(vue),网上有很多比...【详细内容】
2021-12-27  项目与数据管理    Tags:Vue   点击:(1)  评论:(0)  加入收藏
程序是如何被执行的&emsp;&emsp;程序是如何被执行的?许多开发者可能也没法回答这个问题,大多数人更注重的是如何编写程序,却不会太注意编写好的程序是如何被运行,这并不是一个好...【详细内容】
2021-12-23  IT学习日记    Tags:程序   点击:(9)  评论:(0)  加入收藏
阅读收获✔️1. 了解单点登录实现原理✔️2. 掌握快速使用xxl-sso接入单点登录功能一、早期的多系统登录解决方案 单系统登录解决方案的核心是cookie,cookie携带会话id在浏览器...【详细内容】
2021-12-23  程序yuan    Tags:单点登录(   点击:(8)  评论:(0)  加入收藏
下载Eclipse RCP IDE如果你电脑上还没有安装Eclipse,那么请到这里下载对应版本的软件进行安装。具体的安装步骤就不在这赘述了。创建第一个标准Eclipse RCP应用(总共分为六步)1...【详细内容】
2021-12-22  阿福ChrisYuan    Tags:RCP应用   点击:(7)  评论:(0)  加入收藏
今天想简单聊一聊 Token 的 Value Capture,就是币的价值问题。首先说明啊,这个话题包含的内容非常之光,Token 的经济学设计也可以包含诸多问题,所以几乎不可能把这个问题说的清...【详细内容】
2021-12-21  唐少华TSH    Tags:Token   点击:(9)  评论:(0)  加入收藏
实现效果:假如有10条数据,分组展示,默认在当前页面展示4个,点击换一批,从第5个开始继续展示,到最后一组,再重新返回到第一组 data() { return { qList: [], //处理后...【详细内容】
2021-12-17  Mason程    Tags:VUE   点击:(14)  评论:(0)  加入收藏
什么是性能调优?(what) 为什么需要性能调优?(why) 什么时候需要性能调优?(when) 什么地方需要性能调优?(where) 什么时候来进行性能调优?(who) 怎么样进行性能调优?(How) 硬件配...【详细内容】
2021-12-16  软件测试小p    Tags:性能调优   点击:(19)  评论:(0)  加入收藏
Tasker 是一款适用于 Android 设备的高级自动化应用,它可以通过脚本让重复性的操作自动运行,提高效率。 不知道从哪里听说的抖音 app 会导致 OLED 屏幕烧屏。于是就现学现卖,自...【详细内容】
2021-12-15  ITBang    Tags:抖音防烧屏   点击:(23)  评论:(0)  加入收藏
11 月 23 日,Rust Moderation Team(审核团队)在 GitHub 上发布了辞职公告,即刻生效。根据公告,审核团队集体辞职是为了抗议 Rust 核心团队(Core team)在执行社区行为准则和标准上...【详细内容】
2021-12-15  InfoQ    Tags:Rust   点击:(24)  评论:(0)  加入收藏
一个项目的大部分API,测试用例在参数和参数值等信息会有很多相似的地方。我们可以复制API,复制用例来快速生成,然后做细微调整既可以满足我们的测试需求1.复制API:在菜单发布单...【详细内容】
2021-12-14  AutoMeter    Tags:AutoMeter   点击:(20)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条