微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有没有办法在谷歌云 shell 中使用 VS 代码插件?

如何解决有没有办法在谷歌云 shell 中使用 VS 代码插件?

我有一些快速导航插件,例如我一直使用的“block travel”。有没有办法在云壳中使用这些?

我想有一些限制,但即使是一些简单的编辑器插件也可以节省大量时间。

虽然我在做 - alt-D 复制一行或转置行 - 其中一些似乎丢失并且难以使用键重新映射来开始工作,至少在 shell 中是这样。一般来说,键盘快捷键似乎被浏览器或 PWA 包装器困住了。我在 chromebook FWIW 上使用 cloudshell 作为网络应用程序,用于各种安全项目。

解决方法

我想出了一个解决方案,涵盖了您问题的两个方面

获得无限永久磁盘:

您可以使用 Google Cloud Storage FUSE

Google Cloud Storage FUSE 允许您将 GCS 存储桶作为文件夹挂载到您的 linux 实例。通过这样做,您将获得一个“无限”永久磁盘,并且由于 gcsfuse 已安装在 Cloud Shell 中,因此设置起来非常简单。

1.  Create a GCS bucket (you only need to run this once) -- replace BUCKET_NAME with any name:
gsutil mb "gs://BUCKET_NAME/"

2.  Create a local directory for mounting -- replace FOLDER_NAME with the chosen directory name:
mkdir /home/[USER]/[FOLDER_NAME]
chmod 777 /home/[USER]/[FOLDER_NAME]

3.  Mount the bucket onto the local filesystem (note: you need to re-run this every time Cloud Shell starts)
gcsfuse -o nonempty -file-mode=777 -dir-mode=777 --uid=1000 --debug_gcs  [BUCKET_NAME]  /home/[USER]/[FOLDER_NAME]

在 Cloud Shell 中使用第三方插件:

您可以使用 public documentation 中提到的环境自定义脚本 (.customization_environment)。它允许您在 Cloud Shell 环境启动时安装其他软件包。

以下是安装 VS Code 插件的步骤供参考。

第 1 步:

要安装 VSCode 服务器,请在 Cloud Shell Editor 的根目录工作区中运行名为 visual_studio_code.sh 的脚本,如下所示。

visual_studio_code.sh 文件:

export VERSION=`curl -s https://api.github.com/repos/cdr/code-server/releases/latest | grep -oP '"tag_name": "\K(.*)(?=")'`
wget https://github.com/cdr/code-server/releases/download/$VERSION/code-server-3.10.2-linux-amd64.tar.gz
tar -xvzf code-server-3.10.2-linux-amd64.tar.gz
cd code-server-3.10.2-linux-amd64

在 shell 中使用以下命令运行脚本,

./visual_studio_code.sh


if getting permission denied error then run this following command in shell,chmod +x visual_studio_code.sh
./visual_studio_code.sh

第 2 步:

在 Cloud Shell Editor 的根目录工作区中制作自定义脚本,以使用以下命令在启动时启动 VS Code Server:

.customization_environment 文件:

#!/bin/sh
#.customize_environmnet run in background as root,wait for your user to initialize
sleep 20
sudo -u [USER]  /home/[USER]/code-server-3.10.2-linux-amd64/code-server --auth none --port 9090

第 3 步:

在端口 9090 上查看 Visual Studio Code 服务器:

Click on Web Preview > Change Port > 9090

如果收到 404 错误,请从 url 中删除“?authuser=0”。 Visual Studio Code Server 现在将在浏览器上运行!!!

阻止旅行导航插件:

要在云shell中安装块旅行导航插件,请按照以下命令在根目录下的shell中运行它们:

wget https://github.com/efatsi/block-travel/archive/refs/tags/v1.0.0.tar.gz
tar xzvf  v1.0.0.tar.gz
ls
#You will see block-travel-1.0.0  

block-travel-1.0.0/keymaps/block-travel.cson --auth none --port 9090
#You might get Permission denied if yes,then follow the next two commands else go to webport view in 9090

chmod +x block-travel-1.0.0/keymaps/block-travel.cson
block-travel-1.0.0/keymaps/block-travel.cson --auth none --port 9090

在 9090 中打开 webport 视图,您将能够使用以下命令浏览 vs 代码文件:

Alt+up for block-travel.jumpUp
Alt+shift+up for block-travel.selectUp
Alt+down for block-travel.jumpDown
Alt+shift+down for block-travel.selectDown
,

Cloud Shell 通过 Theia 提供 VS Code 编辑器体验。有没有试过云壳中的云代码编辑器?通过右上角的“打开编辑器”按钮公开,这将打开云代码编辑器,为您提供 VSCode 体验。您拥有编辑器中可用的所有 navigation 键。

enter image description here

,

警告:这不应被视为长期解决方案,只是一个止损,直到以更简单的方式支持它。

这可能不是最好的主意,但它似乎适用于我在我的环境中尝试过的 vim 扩展。可能最好通过产品内反馈提出请求以将其正式添加,但在那之前您可以按照以下步骤操作。

  1. 将 .vsix 包上传到您的 $HOME 目录。
  2. 将软件包解压到 /google/devshell/editor/theia/plugins 目录中。此操作不会持续存在,因此您需要将该命令添加到 .customize_environment 脚本操作中。

例如

sudo unzip vscodevim.vsix -d /google/devshell/editor/theia/plugins/vscode-vim

现在是有问题的部分。您需要安装 pslist 包以使生活更轻松,以便您可以访问 rkill 命令。您可能还想将其添加到 .customize_environment 文件中,因为它也不会持久存在。

sudo apt install pslist

现在我们需要获取编辑器的进程 ID。目前这似乎是由一个 supervisord 命令产生的,它也产生了 tmux 部分,所以我们将从它产生的 runuser 命令中获取进程 ID(并过滤 theia 以防万一)。

ps ax | grep runuser | grep "theia start"

然后我们可以使用rkill来杀死进程及其所有子进程,这将导致supervisord为我们重新启动它并且插件应该可用。

sudo rkill PID_OF_GREP_OUTPUT

我还不确定编写 rkill 命令的最佳方法,因为我不知道它何时启动与 .customize_environment 执行的时间,所以现在我每次启动新 VM 时都运行它.

如果出现严重错误,您应该能够从菜单选项中请求重新启动 VM 并重新启动。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。