Visual Studio Live Share 可以做到这一点吗?
已发表: 2022-03-10几个月前,微软发布了免费的 Visual Studio (VS) Live Share 服务。 VS Live Share 是代码的 Google Docs 级协作。 多个开发人员可以同时在同一个文件上进行协作,而无需离开他们自己的编辑器。
在 Live Share 发布后,我意识到我们中的许多人已经放弃了在我们的代码中被孤立,我们甚至不知道有更好的方法来使用像 VS Live Share 这样的服务。 这部分是因为我们陷入了旧习惯,部分是因为我们只是不知道所有 VS Live Share 可以做什么。 最后一部分我可以帮忙!
在本文中,我们将介绍 VS Live Share 的功能和最佳实践,这些功能和最佳实践使开发人员协作变得像“匿名河马”一样简单。
分享您的代码
Live Share 作为 Visual Studio 和 Visual Studio Code (VS Code) 的扩展提供。 在本文中,我们将重点关注 VS Code。
您也可以通过 VS Live Share 扩展包安装它,其中包括以下扩展,我们将在本文中介绍所有这些......
- 与实时共享
- VS 实时共享音频
- 松弛聊天扩展
安装扩展后,您需要登录 VS Live Share 服务。 您可以通过打开命令面板Ctrl/Cmd + Shift + P并选择“使用浏览器登录”来做到这一点。 如果您未登录并尝试开始新的共享会话,系统将在那时提示您登录。
有几种方法可以启动 VS Live Share 会话。 您可以从命令面板执行此操作,可以单击底部工具栏中的“共享”按钮,也可以使用侧边栏中的 VS Live Share 资源管理器视图。
一个链接被复制到您的剪贴板。 然后,您可以将该链接发送给其他人,他们可以加入您的 Live Share 会话——前提是他们也使用 VS Code。 哪个,我们不是吗?
现在您可以像处理普通的旧 Word 文档一样进行协作:
其他人不仅可以看到您的代码,还可以对其进行编辑、保存、执行甚至调试。 对您而言,它们显示为带有名称的光标。 你以同样的方式出现在他们的编辑器中。
VS Live Share Explorer
VS Live Share 资源管理器在操作栏中显示为一个新图标 - 这是我屏幕最右侧的图标栏(默认操作栏放置在您的最左侧)。 对于 VS Live Share 而言,这是一种“零基础”。 从这里,您可以开始、结束会话、共享终端、服务器以及查看连接的用户。
最好将键盘快捷键绑定到此 VS Live Share Explorer 视图,以便您可以在该视图和文件之间快速切换。 您可以通过按Ctrl/Cmd + K (或Ctrl/Cmd + S )然后搜索“显示实时共享”来执行此操作。 我将我的绑定到Ctrl/Cmd + L ,这似乎没有绑定到其他任何东西。 我发现这个快捷方式很直观( L表示 Live Share)并且很容易在键盘上敲击。
共享代码只读
当您开始新的共享会话时,您将收到通知并询问您是否要以只读方式共享您的工作区。 如果您选择只读,人们将能够看到您的代码并跟随您的动作,但他们将无法进行交互。
当您与不一定信任的人(可能是供应商、合作伙伴或疏远的前任)共享时,此模式很有用。
它对教师也特别有用。 请注意,在撰写本文时,VS Live Share 被锁定为 5 个并发用户。 由于在只读模式下您可能想要的更多,特别是如果您正在教一个小组,您可以通过在您的用户设置文件中添加以下行来将限制增加到 30: Ctrl/Cmd + , .
"liveshare.features": "experimental"
更改默认联接行为
知道该链接的任何人都可以加入您的 Live Share 会话。 当他们加入时,您会看到一个弹出窗口,让您知道。 同样,当他们断开连接时,您会收到通知。 这是 VS Live Share 的默认行为。
更改此设置是个好主意,这样您必须手动批准某人才能加入您的会话。 这是为了在您去吃午饭并忘记断开会话的情况下保护您。 您的同事无法重新登录,更改数据库连接字符串中的一个字母,然后在您花费接下来的四个小时试图弄清楚您的生活如何变得如此可怕的错误时大笑。
要启用此功能,请将以下行添加到您的用户设置文件Ctrl/Cmd + , 。
"liveshare.guestApprovalRequired": true
现在,当有人想加入时,系统会提示您。 如果您阻止某人,他们将在会话期间被阻止。 如果他们再次尝试加入,您将不会收到通知,并且他们将被 VS Live Share 毫不客气地拒绝。
去享受你的午餐吧。 您的计算机是安全的。
焦点追随者
默认情况下,任何加入您的 Live Share 会话的人都会“关注”您。 这意味着他们的编辑器将加载您所在的任何文件并在您滚动时滚动。 即使您切换文件,参与者也会看到您所看到的内容。
某人对文件进行更改的那一刻,他们就不再关注您了。 因此,如果你俩一起处理一个文件,然后你转到另一个文件,他们不会自动与你一起工作。 当您谈论您所在的文件中的代码而其他人正在查看完全不同的内容时,这可能会导致很多混乱。
除了告诉对方你在哪里(顺便说一句,这很有效),命令面板中还有一个名为“Focus Participants”的方便命令Ctrl/Cmd + Shift + P 。
您还可以在 VS Live Share Explorer 视图中以图标的形式访问它。
这将使您的参与者专注于您单击或滚动到的下一件事。 默认情况下,隐式接受 VS Live Share 焦点请求。 如果您不希望人们能够专注于您,您可以将以下行添加到您的用户设置文件中。
"liveshare.focusBehavior": "prompt"
另请注意,您可以关注参与者。 如果您在 VS Live Share Explorer 视图中单击他们的名字,您将开始关注他们。
因为一旦其他人开始编辑代码,关注就会关闭,因此很难准确地知道人们何时关注你,何时不关注你。 您可以查看的一个地方是 VS Live Share Explorer 视图。 它会告诉您某人所在的文件,但不会告诉您他们是否在关注您。
一个好的做法是记住焦点总是在变化,因此人们可能会或可能不会看到您在任何特定时间看到的内容。
团队调试
参与者可以共享您运行的任何调试会话。 如果您启动调试会话,他们将获得与您完全相同的体验。 如果它在您这边中断,它在他们这边中断,并且他们可以在您的所有代码中获得完整的调试视图。
他们可以在调试控制台中进入、退出、结束、添加监视、评估; 你能做的任何调试,他们也能做,而且他们能控制它。
调试也可以由参与者启动。 但是,默认情况下,VS Code 不允许远程启动您的调试器。 要启用此功能,请将以下行添加到您的用户设置文件Ctrl/Cmd + , :
"liveshare.allowGuestDebugControl": true
共享您的终端
我们作为开发人员所做的很多工作都不在我们的代码中。 它在终端中。 有时候,我在终端上花费的时间似乎与在编辑器上花费的时间差不多。 这意味着,如果您的终端出现错误或需要输入一些命令,那么如果您的 VS Live Share 参与者除了您的代码之外还可以看到您的终端,那就太好了。
VS Code 有一个集成的终端,你可以用 VS Live Share 来分享它。
执行此操作时,您有机会以只读或读写方式共享您的终端。
默认情况下,您应该以只读方式共享您的终端。 当您共享您的终端读写时,用户可以直接在您的终端上执行任意命令。 让它沉入一会儿。 那很重。
不言而喻,对某人的终端进行远程写访问会带来很多信任和责任。 您应该只与您隐含信任的人共享您的终端读写。 疏远的前任可能不在讨论范围内。
安全地以只读方式共享您的终端允许线路另一端的人实时查看您正在输入的内容和终端输出,但会限制他们在该终端中输入任何内容。
如果您发现自己处于这样一种情况,即其他人可以更快地到达您的终端,而不是试图引导您完成一些带有大量标志的古怪命令,您可以共享您的终端读写。 在这种模式下,其他人可以完全远程访问您的终端。 明智地选择你的朋友。
分享您的本地主机
在上面的视频中,终端命令以在 https://localhost:8080 上运行的站点的链接结束。 使用 VS Live Share,您可以共享该本地主机,以便其他人可以访问它,就像访问他们自己的本地主机一样。
如果您正在运行共享调试会话,则当参与者在其端点击该本地主机 URL 时,如果遇到断点,它将为你们双方中断。 更好的是,您可以共享任何 TCP 进程。 这意味着您可以共享数据库或 Redis 缓存之类的东西。 例如,您可以共享本地 Mongo DB 服务器。 严重地! 这意味着不再需要更改配置文件或尝试建立共享数据库。 只需共享本地 Mongo 数据库实例的端口即可。
以正确的方式分享正确的文件
有时您不希望协作者看到某些文件。 您的项目中可能存在未检入源代码控制且不适合公开查看的私钥和密码。 在这种情况下,您可能希望对参与 Live Share 会话的任何人隐藏这些文件。
默认情况下,VS Live Share 将隐藏.gitignore
中指定的任何文件。 如果有要隐藏的文件,只需将其添加到.gitignore
即可。 但请注意,这只会在项目视图中隐藏文件。 如果您在共享调试会话中并进入.gitignore
中的文件,它仍会加载到编辑器中,并且您的协作者将能够看到它。
您可以通过创建.vsls.json
文件来更精细地控制共享文件的方式。
例如,如果您想确保.gitignore
中的任何文件永远不可见,即使在调试期间,您也可以将gitignore
属性设置为exclude
。
{ "$schema": "https://json.schemastore.org/vsls", "gitignore":"exclude" }
同样,您可以显示.gitignore
中的所有内容,并直接从.vsls.json
文件控制文件可见性。 为此,请将gitignore
设置为none
,然后使用excludeFiles
和hideFiles
属性。 请记住——排除意味着永远不可见,隐藏意味着“在文件资源管理器中不可见”。
{ "$schema": "https://json.schemastore.org/vsls", "gitignore":"none", "excludeFiles":[ "*.env" ], "hideFiles": [ "dist" ] }
共享和扩展
VS Code 对许多开发人员的部分吸引力在于其庞大的扩展市场。 大多数人都会安装多个。 了解扩展在 VS Live Share 的上下文中如何工作或不工作非常重要。
VS Live Share 将同步特定于您正在共享的项目上下文的任何内容。 例如,如果您安装了 Vetur 扩展,因为您正在使用 Vue 项目,它将共享给任何参与者——无论他们是否也安装了它。 对于其他特定于上下文的事物也是如此,例如 linter、格式化程序、调试器和语言服务。
VS Live Share 不同步用户特定的扩展。 这些可能是主题、图标、键盘绑定等。 作为一般经验法则,VS Live Share 共享您的上下文,而不是您的屏幕。 您可以查阅有关此主题的官方文档文章,以更深入地解释您可以期望共享哪些扩展。
协作时进行沟通
人们在首次 VS Live Share 体验中做的第一件事就是尝试通过输入代码注释进行交流。 这看起来像是写(明白了吗?)的事情,但实际上并不是 VS Live Share 的设计用途。
VS Live Share 并不是要取代您选择的聊天客户端。 您可能已经有一个首选的聊天机制,并且 VS Live Share 假定您将继续使用它。
如果您已经在使用 Slack,则有一个名为 Slack Chat 的 VS Code 扩展。 这个扩展仍然处于开发的早期阶段,但看起来很有希望。 它将 VS Code 置于拆分模式并在右侧嵌入 Slack。 更好的是,您可以直接从 Slack 聊天中启动 Live Share 会话。
另一个看起来很有趣的工具叫做 CodeStream。
码流
虽然 VS Live Share 旨在从编辑器中改进协作,但 CodeStream 旨在从聊天的角度解决同样的问题。
CodeStream 扩展允许您直接在 VS Code 中聊天,这些聊天将成为您的代码历史记录的一部分。 您可以突出显示要讨论的一段代码,它会直接进入聊天室,以便您的评论有上下文。 然后,这些评论将保存为您的 Git 存储库的一部分。 它们还在您的代码中显示为小注释图标,无论您在哪个分支上,这些注释都会显示出来。
对于 VS Live Share,CodeStream 提供了一组免费的功能。 您可以直接从聊天窗格开始新会话,也可以单击头像。 新会话会自动创建一个相应的聊天频道,您可以将其保留在代码中,或者在您完成后处理掉。
如果聊天不足以完成工作,并且您需要像 1999 年那样进行协作,那么只需一个电话即可获得帮助。
VS 实时共享音频
虽然 VS Live Share 并没有试图重新发明聊天,但它确实重新发明了您的电话。 的种类。
使用 VS Live Share Audio 扩展,您可以直接呼叫某人并在 VS Code 中进行语音聊天。
然后,对方将收到加入您通话的提示。
当您连接到呼叫时,您将在底部状态栏中看到一个扬声器图标。 您可以单击该扬声器来更改您的音频设备、将自己静音或断开通话。
我给你的最后一个提示可能是最重要的,它不是你不知道存在的花哨功能或晦涩的设置。
改变你的肌肉记忆
在获取帮助或共享代码方面,我们已经积累了多年的习得行为。 长期以来,开发人员协作工具的状态一直很糟糕,以至于我们习惯于将代码粘贴到 Slack 中,开始尴尬的 Skype 通话,其中主要包括“告诉我什么时候可以看到我的屏幕”,或者挤在监视器周围并指向过度,即股票照片风格。
要充分利用 VS Live Share,您可以做的最重要的事情是实际使用 VS Live Share。 这必须是一种“有意识的”努力。
你的大脑擅长模式。 你不断地根据你已经确定的模式来识别和分类你周围的世界,而且你非常擅长它,你甚至没有意识到你正在这样做。 然后,您开发对这些模式的默认响应。 你形成本能。 这就是为什么你会默认使用旧的协作方式,甚至不考虑你在做什么。 在不知不觉中,您将与共享您的屏幕的人进行 Skype 通话——即使您安装了 Live Share。
我写了很多关于 VS Code 的文章,人们会时不时地问我如何才能通过编辑器提高工作效率。 我总是说同样的话:下次你伸手去拿鼠标做某事时,停下来。 你可以用键盘来做这件事吗? 你可能可以。 查找快捷方式,然后让自己使用它。 起初它会变慢,但如果你愿意故意采取不同的行为,你会惊讶于你的大脑会以多快的速度默认以更有效率的方式做事。
Live Share 也是如此。 当您想到您可能正在使用 Live Share 时,您将在通话中共享您的屏幕。 那一刻,停下; 单击 VS Code 底部的“共享”按钮。
是的,另一端的人可能没有安装扩展程序。 是的,设置它可能需要一点时间。 但是如果你现在就努力建立这种行为,下次你这样做时,它会“正常工作”,用不了多久你甚至不需要考虑它,到那时,你最终将实现“匿名河马”级别的协作。
更多资源
- VS Live Share 扩展包
- VS Code 实时共享文档
- 扩展和生态系统支持
- VS Live Share 入门