开始使用 Code With Me
借助 PhpStorm,您可以使用 与我编程 插件与任何人共享本地运行的项目。
您可以使用 与我编程 进行实时协作、编辑代码、共享服务器以及运行调试会话。 请查看以下视频,快速了解该会话:
一次 与我编程 共享会话涉及 host 与一个或多个 访客 之间的互动。
您可以通过以下基本场景之一开始会话:
您可以进行结对编程,在这种情况下,您与一个参与者共享您的 IDE,并使用 全同步模式或 跟随模式一起编写代码的不同部分进行协作。 与传统的结对编程不同的是,开发人员共享一个屏幕和一个键盘,而您可以独立工作,更快地实现目标。
您可以有一个师生场景,您有许多参与者跟随您。 假设您需要解释一个问题并向团队成员展示项目的不同部分。 您可以通过 强制他人跟随您模式实现这一点。
您可以与其他参与者同时进行多重编辑代码。 在这种情况下,参与者可以快速更改代码,甚至同时处理项目的其他文件。 然而,对于可以同时积极键入的参与者数量是有限制的。 限制为 5,如果达到此限制,PhpStorm 将显示一个弹出窗口,建议等待。 此外,它可能会降低性能。
我们准备了一个简短的视频教程,介绍如何开始使用 Code With Me:
Code With Me 许可证
Code With Me 提供不同类型的订阅,您可以在 JetBrains 网站上选择。
如果您拥有有效的 PhpStorm 订阅或其他 IDE 订阅(不包括 DataGrip 和 Rider),则不需要单独的 Code With Me 许可证,因为它已经包含在该 IDE 的许可证中。
在某些情况下,您可能需要手动激活 与我编程 许可证:
您有一个激活的 IDE 或离线激活码,您的许可证应自动应用于 Code With Me 插件。 但是,如果您继续遇到激活问题,请 明确激活许可证。
您拥有商业的 Code With Me 许可证,并且您的公司使用 JetBrains Floating License Server (FLS)。 在这种情况下,您可以 激活许可证 ,方式与激活PhpStorm许可证相同。
您公司的商业 Code With Me 许可证已放置在内部大厅服务器上。 这种情况下,您需要激活许可证 手动并另外指定大厅服务器地址。
激活个人许可证
从 JetBrains 网站获取许可证。
在主菜单中,进入 .
在 许可证 对话框中,选择 与我编程。
从右侧的选项中选择 激活新许可证(A)。
根据您拥有的 IDE 选择 JetBrains Account(A)。
输入您的凭据并点击 登录 JetBrains 账户。

使用 Floating License Server 激活商业许可
从贵公司的负责人那里获取许可证服务器 URL。
在主菜单中,进入 .
在 许可证 对话框中,选择 与我编程。
从右侧的选项中选择 激活新许可证(A)。

从右侧的选项中选择 许可证服务器。

添加服务器地址并点击 激活。
Code with Me 插件的状态更改为 活动。
使用前端服务器管理商业许可证
从贵公司的负责人处获取大厅服务器 URL。
按 Ctrl+Alt+S 打开设置,然后选择 。
在 大厅服务器URL 字段中指定您从系统管理员处获得的大厅服务器地址,并点击 确定 以保存更改。

立即开始作为主持人
您可以创建一个链接,邀请其他参与者使用您的计算机作为主机来协作开发您的代码。 您还可以启动调试会话,共享其状态和操作。
创建会话
请确保 与我编程 插件 已启用。
在主工具栏上,点击
。
或者,从主菜单中选择 。
PhpStorm 打开 与我编程 对话框。

在 与我编程 对话框中,点击 启动会话。
PhpStorm 为会话创建链接。
请确保您拥有客人的预期访问权限。 只读 权限是默认权限,但您可以通过从 下拉列表 中选择其他选项来更改它。
点击 复制链接。
将链接发送给访客。 当访客点击链接时,其浏览器将打开邀请页面,允许他们加入会话。

当访客点击 加入会话 时,PhpStorm 会显示一个弹窗,建议接受或拒绝访客。 请确认您和您的访客的代码是否匹配。

点击 接受。 访客加入您的会话,您可以开始协作。 您的编辑器中会出现一个额外的文本光标,并在主工具栏上显示一个图标,指示活跃的来宾。
终止一个活跃会话
在主工具栏上,点击 Code With Me 图标(
)。
从打开的列表中选择 结束会话。

PhpStorm 将终止会话并禁用所有访客。 链接也会被禁用,您需要创建一个新链接来开始另一个会话。
访问主机设置
在主工具栏上,点击 Code With Me 图标(
)。
点击
并从打开的列表中选择 设置。
权限
作为主机,您可以配置新访客在您的机器上可能访问或无法访问的内容。 例如,您可以指定访客是否可以编辑文件、使用终端和执行代码。 权限可以为整个会话或会话中的特定来宾配置。
会话期间的任何时间,来宾都可以向主持人 请求额外权限。
添加权限
在主工具栏上,点击
并点击权限下拉列表。
当您 创建会话时,默认选项 只读 被选中。
在 权限 列表中,您可以选择以下选项:
只读 :此权限是默认权限,允许来宾仅查看文件、终端和运行操作。 但是,访客仍然可以从编辑器中复制和粘贴代码。
编辑文件 :选择此权限,如果您希望来宾只能编辑文件,而不能访问终端或执行代码。

您可以排除某些文件进行访问。
单击 管理隐藏的文件… 位于 文件访问权限 字段下,并在 隐藏文件 对话框中,添加您想要排除访问的文件,然后单击 确定。
完全访问 :选择此权限以授予您的访客对您机器上所有文件、终端和运行操作的完全访问权限。

自定义… :选择此权限以自定义访客对文件、终端和运行操作的访问权限。
当您打开 自定义权限 对话框时,与权限相关的选项将重复先前选择的权限中的选项。 您可以相应地进行更改并单击 保存。

在您配置权限后,如果您正在创建会话,请单击 启动会话。
音频和视频通话
当您与同事合作时,您可以在会话中聊天、使用音频、视频通话、启用屏幕共享以及转发端口。
当会话开始时, 将在主工具栏上可用,您可以使用它来发起语音通话。
在会话期间,您可以管理语音通话、摄像头和屏幕共享。
从主工具栏管理通话
点击
以打开可用选项列表,并选择您需要的选项。

您可以静音或取消静音麦克风,启用或禁用屏幕共享、摄像头,并打开 通话 工具窗口。
您还可以在 通话 工具窗口中控制通话和相机。

从 Code With Me 工具窗口管理语音通话
在右侧工具栏中,点击
以打开 与我编程 工具窗口。
如果工具窗口被隐藏,请点击主工具栏上的
并选择 在窗口中显示通话。
使用窗口底部的控制面板执行必要的操作。

通过自定义工具栏管理通话操作
您可以访问可以添加到主工具栏的调用操作。 您还可以更改工具栏操作的图标,并从工具栏中移除操作。
右键点击主工具栏,然后选择 自定义工具栏。
从可用选项中选择 。
打开 Code With Me 通话操作 节点,选择您要修改的操作。 请点击 确定 以保存更改。 如需有关自定义工具栏的更多信息,请参阅 配置主工具栏操作。
与访客共享您的屏幕
请确保您与其他参与者在 通话中。
在主工具栏上,单击
并选择 在浏览器中启用屏幕共享
并指定共享源——特定窗口或整个屏幕。

您的屏幕将与会话中的其他参与者共享。 如果您想停止屏幕共享,请再次点击相同的图标。
如果您从事 Web 或数据库项目,您可以在会话期间向访客开放本地计算机上的端口。
端口转发是使用 RD protocol实现的。 主机与访客间的连接是 使用 TLS 1.3 进行端到端加密的。
客户端与主机之间有三种通信模式。 模式会按照以下优先顺序自动设置: 直接 > 点对点 > 中继。 如果一个失败,则选择下一个。
转发端口
从主菜单中选择 打开 与我编程 工具窗口。
在 与我编程 工具窗口中,选择 端口转发 选项卡。
点击
以添加端口。
指定您的端口和要使用的协议。
在客户机端,该端口被添加到 端口转发 选项卡中的 与我编程 工具窗口,客户机可以访问它。
以访客身份开始
作为访客,您可以在创建的会话期间跟随主持人,并编辑主持人正在处理的代码。 您还可以关注其他 session 参与者并访问项目的其他部分。 此外,如果您有 权限 ,还可以在主机上运行和调试代码,并使用 终端工具窗口进行工作。
接受邀请
退出会话
在主工具栏上,点击
。
在打开的对话框中,点击 离开会话。

会话已终止,集成开发环境关闭。 您可以使用相同的链接快速返回到相同的会话,而无需主机的任何接受过程。
Code With Me 嘉宾设置位置
作为访客使用 Code With Me 设置您的工作后,您可以检查以下位置,查看 Code With Me 的分发、日志、设置和缓存位于您的文件系统中的哪里:
Code With Me 日志:
~/Library/Logs/JetBrains/<product><version>/frontend%LOCALAPPDATA%\JetBrains\<product><version>\log\frontend~/.cache/JetBrains/<product><version>/log/frontendCode With Me 缓存:
~/Library/Caches/JetBrains/<product><version>/frontend%LOCALAPPDATA%\JetBrains\<product><version>\frontend~/.cache/JetBrains/<product><version>/frontendCode With Me 设置:
~/Library/Application\Support/JetBrains/<product><version>%APPDATA%\Roaming\JetBrains\<product><version>\~/.config/JetBrains/<product><version>Code With Me 分发和 JetBrains 运行时:
~/Library/Caches/JetBrains/JetBrainsClientDist~/Library/Caches/JetBrains/CodeWithMeClientDist%LOCALAPPDATA%\JetBrains\JetBrainsClientDist%LOCALAPPDATA%\JetBrains\CodeWithMeClientDist~/.cache/JetBrains/JetBrainsClientDist~/.cache/JetBrains/CodeWithMeClientDist
在共享会话中工作
一旦创建共享会话并接受所有邀请的参与者,编辑器将包含额外的文本光标,主工具栏将显示来宾的图标,并且带有语音呼叫和聊天支持的 Code With Me 工具窗口将变为可用。

在共享会话中,您可以尝试不同的操作,例如独立浏览主机的项目、跟随其他参与者、使用终端工具窗口、进行代码编辑、向主机请求额外权限等。
关注参与者
在主工具栏上,点击
。
从打开的列表中,选择您想要关注的参与者的名字,然后选择 关注。
或者,点击主工具栏上的参与者图标。
PhpStorm 将您的文本光标放在参与者的文本光标上方,并在编辑器周围放置一个带有显示您所跟随的参与者名称的小标签的框架。

点击 停止 旁边的名称以取消关注此参与者。 您可以随时点击 恢复 再次关注同一参与者。
您可以有多个参与者跟随其他参与者。 当其中一个追随者决定切换焦点时,不会影响主要主机。 这在教师与学生的使用情境中非常有用。
强迫他人跟随您
在主工具栏上,点击
。
从打开的列表中选择您的个人资料, 让所有用户关注自己。

在这种情况下,所有 guest 文本光标都放置在 host 的顶部,如果主文本光标放置在项目的其他文件中,焦点将会切换。
个人资料图标表示关注者和被关注者。 在任何时候,参与者都可以停止跟随主光标。
跳转到其他参与者
在主工具栏上,点击
。
从打开的列表中,点击参与者的名字并选择 跳转到。
或者,在主工具栏上右键点击参与者的图标并选择相同的选项。
文本光标放在所选访客的文本光标所在的行上。 如果您想快速定位某个参与者的文本光标,这可能会有所帮助。
使用配对编程模式
在主工具栏上,点击
。
从打开的列表中选择一个参与者的名字,然后选择 结对编程模式。
或者,在主工具栏上右键点击参与者的图标并选择相同的选项。

文本光标位于主机文本光标的顶部。 PhpStorm 会在主机的编辑器和来宾的编辑器周围放置一个框架,表示配对编程模式已开启。
即使将文本光标置于项目的其他部分,焦点仍停留在宿主文本光标内。 这种模式通常用于结对编程场景。
终止特定用户的共享会话
在主工具栏上,点击
。
从打开的列表中,点击您想要终止会话的参与者的名字并选择 移除访客。
或者,右键点击主工具栏上的参与者图标并选择相同的选项。

PhpStorm 终止所选参与者的会话,并在客方显示通知。 PhpStorm 关闭访客项目和具有会话的 IDE。
如果客人想要返回共享会话,需等待主持人的许可加入。
收集当前访客的日志
从主菜单中选择 帮助 | 收集主机和客户端日志。
PhpStorm 在您的本地机器上创建一个日志文件。 日志文件包含当前项目的文件名、代码部分以及有关来宾活动的详细信息,例如文本光标移动、键入的符号、调用的操作、打开的文件、文件路径等。
收集会话中的所有日志
在主工具栏上,点击
。
在打开的列表中,点击
并选择 提交问题(I)…。
在打开的对话框中,点击 确定 以批准数据收集。
一旦收集到日志详细信息,它们会自动附加到 YouTrack system 中新创建的问题上。
请求权限
默认情况下,作为访客,您被授予 只读 权限。 这意味着您无法在会话期间编辑文件、添加代码或在终端中工作。 PhpStorm 每次您尝试执行没有权限的操作时都会显示适当的通知。 您可以点击通知中的链接来向主持人请求额外的权限。
请求编辑文件权限
开始编辑文件。 当通知出现时,点击 请求编辑文件 链接。

因此,主机会收到通知并可以授予权限或拒绝权限。

如果权限被授予,访客可以编辑文件,并且访客权限会在主机端更新。 主持人在会话期间可以随时更改权限。 在主机主菜单中,选择客户的名称和 权限 从选项列表中,然后在 编辑许可权对话框中,相应地更新许可权。
要使用终端、运行应用程序或调试代码,您需要完全访问权限。
请求完整访问权限
当您尝试访问需要完全访问权限的操作时,将会出现相应的通知。 例如,终端访问权限。

点击 请求完全访问权限 链接。
因此,主机会收到通知并可以授予权限或拒绝权限。
如果权限被授予,整个终端将被打开并共享。 访客可以访问所有打开的标签页并创建新的标签页。
主持人在会话期间可以随时更改权限。 右键点击访客的名称,并从选项列表中选择 权限。 在 <guest_name> 的权限窗口中,相应地更新权限。
更改会话名称或会话服务器的 URL
您可以使用 Code With Me 设置更改创建会话的默认名称。
您还可以更改会话中使用的大厅服务器的 URL。 出于安全目的,切换到您自己的公司服务器可能是有用的。
访问 Code With Me 设置
从主菜单中选择 设置 | 工具 | Code With Me
在 用户名 字段中,输入您的新会话名称。 在重新启动时,会话名称将被更改。 点击 使用系统名称 将会重置会话名称为默认名称。
您可以在 大厅服务器URL 字段中更改默认服务器 URL。
请点击 确定 以保存更改。