【Linux】Linux环境基础开发工具使用(yum和vim)

news2024/12/23 12:55:04

⭐博客主页:️CS semi主页
⭐欢迎关注:点赞收藏+留言
⭐系列专栏:Linux
⭐代码仓库:Linux
家人们更新不易,你们的点赞和关注对我而言十分重要,友友们麻烦多多点赞+关注,你们的支持是我创作最大的动力,欢迎友友们私信提问,家人们不要忘记点赞收藏+关注哦!!!

Linux环境基础开发工具使用(yum和vim)

  • 前言
  • 一、Linux 软件包管理器 yum
    • 1、什么是软件包
    • 2、关于 rzsz
    • 3、查看软件包
    • 4、安装软件
    • 5、卸载软件
    • 6、小问题(我怎么知道我需要安装什么软件)
    • 7、安装扩展源
    • 8、yum源可以配置的
  • 二、Linux开发工具
  • 三、Linux编辑器-vim使用
    • 1、vim的基本概念
    • 2、vim的基本操作
    • 3、vim命令模式命令集
      • (1)gg 与 shift+g(G)
      • (2)yy 与 p
      • (3)u
      • (4)dd
      • (5)锚点:¥(shift+4) 和 ^(shift+6)
      • (6)w 和 b
      • (7)h 和 j 和 k 和 l
      • (8)shift+`(~)
      • (9)(n)r+(改的字符) -- 有替换模式
      • (10)(n)x
      • (11)ctrl+r
      • (12)总结
  • 四、多文件操作(在末行模式)
  • 五、末行模式
    • 1、w q 和 !
    • 2、:set nu 和 :set nonu
    • 3、总结
  • 六、误用ctrl+z
  • 七、简单vim配置
    • 1、配置文件的位置
    • 2、常用配置选项
    • 2、下载插件(懒人做法)
  • 总结


前言

在开篇之前,我们先聊一下关于安装包安装软件的方式和生态问题。
1、安装软件的方式:
我们分为三种安装方式,如下图:
在这里插入图片描述

2、Linux下的软件生态:
我们以我们日常使用的手机来举例,将windows和linux的操作系统进行比较,我们明白,我们的手机上是已经先内置了服务器,因为这个服务器是手机内置的,早就已经安装了,然后通过操作系统以后经过联网以后到服务器中去找上层的APP应用然后进行下载。
在这里插入图片描述

3、Linux生态:
Linux生态就是这个操作系统的书写者给这个操作系统进行开源以后放到社区和大众面上进行交流讨论,修bug和维护这个操作系统的运行,当我们的用户(资深程序员)用这个系统以后会产生依赖性,所以只有这个操作系统生态好稳固,不会倒闭和黑客入侵才能有好的发展。
在这里插入图片描述


一、Linux 软件包管理器 yum

1、什么是软件包

在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序。但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放在一个服务器上, 通过包管理器可以很方便的获取到这个编译好的软件包, 直接进行安装。软件包和软件包管理器, 就好比 “App” 和 “应用商店” 这样的关系yum(Yellow dog Updater, Modified)是Linux下非常常用的一种包管理器. 主要应用在Fedora, RedHat, Centos等发行版上。

2、关于 rzsz

这个工具用于 windows 机器和远端的 Linux 机器通过 XShell 传输文件。安装完毕之后可以通过拖拽的方式将文件上传过去。

注意:要联网保证主机的网络畅通。

通过这个指令检查网络是否畅通:
ping www.baidu.com

3、查看软件包

通过 yum list 命令可以罗列出当前一共有哪些软件包. 由于包的数目可能非常之多, 这里我们需要使用 grep 命令只筛选出我们关注的包. 例如:
yum list | grep lrzsz
在这里插入图片描述

注意事项:
软件包名称: 主版本号.次版本号.源程序发行号-软件包的发行号.主机平台.cpu架构.
“x86_64” 后缀表示64位系统的安装包, “i686” 后缀表示32位系统安装包. 选择包时要和系统匹配.
“el7” 表示操作系统发行版的版本. “el7” 表示的是 centos7/redhat7. “el6” 表示 centos6/redhat6.
最后一列, base 表示的是 “软件源” 的名称, 类似于 “小米应用商店”, “华为应用商店” 这样的概念.

4、安装软件

yum 会自动找到都有哪些软件包需要下载, 这时候敲 “y” 确认安装.
出现 “complete” 字样, 说明安装完成.
在这里插入图片描述

注意事项:
安装软件时由于需要向系统目录中写入内容, 一般需要 sudo 或者切到 root 账户下才能完成.
yum安装软件只能一个装完了再装另一个. 正在yum安装一个软件的过程中, 如果再尝试用yum安装另外一个软件, yum会报错.

5、卸载软件

在这里插入图片描述

6、小问题(我怎么知道我需要安装什么软件)

有需求才会安装。yum里内置了下载链接,在系统的/etc/yum.repos.d/中,是官方yum源。
在这里插入图片描述

结论:系统当中的yum源早已预装了下载的链接的源,我们直接用yum即可,所以yum就和我们的应用商店一样,用早已预装好的链接安装源进行安装。

注意:
同样,在官方应用市场里面有很多破解版软件都没有!也就是对应的yum源中的很多我们想玩的软件都没有,因为官方的yum源需要经过严格的审核的,是合法的!但如果我们想下载那些不在官方yum源中的应用软件呢?我们的Linux系统中给了一个扩展yum源提供下载。
在这里插入图片描述

7、安装扩展源

用root账户输入指令:
yum install -y epel-release
在这里插入图片描述

我们利用拓展源下载一个好玩的拓展包:
在这里插入图片描述
在这里插入图片描述
卸载同样是:yum -y remove XXX

8、yum源可以配置的

一般的Linux操作系统,默认配置的yum源是国外的,有可能yum源访问会比较慢,可能需要更新yum源,即替换yum源文件。


二、Linux开发工具

IDE集成开发:

在这里插入图片描述


三、Linux编辑器-vim使用

vim编辑器 – 文本编写 – 写代码

vi/vim的区别简单点来说,它们都是多模式编辑器,我们常用的三种模式:命令模式、插入模式、底行模式。不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x window、 mac os、windows。

1、vim的基本概念

vim的三种模式(其实有好多模式,目前掌握这3种即可),分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:

正常/普通/命令模式(Normal mode)
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode
插入模式(Insert mode)
只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。
末行模式(last line mode)
文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift+: 即可进入该模式。要查看你的所有模式:打开vim,底行模式直接输入:help vim-modes

2、vim的基本操作

我们先来个简单的指令让大家先了解一下:

在这里插入图片描述

进入vim,在系统提示符号输入vim及文件名称后,就进入vim全屏幕编辑画面:
$ vim test.c
不过有一点要特别注意,就是你进入vim之后,是处于[正常模式],你要切换到[插入模式]才能够输入文字。
[正常模式]切换至[插入模式]
输入a
输入i
输入o
[插入模式]切换至[正常模式]
目前处于[插入模式],就只能一直输入文字,如果发现输错了字,想用光标键往回移动,将该字删除,可以先按一下「ESC」键转到[正常模式]再删除文字。当然,也可以直接删除。
[正常模式]切换至[末行模式]
「shift + ;」, 其实就是输入「:」
退出vim及保存文件,在[正常模式]下,按一下「:」冒号键进入「Last line mode」,例如:
: w (保存当前文件)
: wq (输入「wq」,存盘并退出vim)
: q! (输入q!,不存盘强制退出vim)

3、vim命令模式命令集

(1)gg 与 shift+g(G)

1、gg:定位光标到开头
2、shift+g(G):定位光标到结尾
在这里插入图片描述
3、n+shift+g(nG):光标定位到任意一行

(2)yy 与 p

4、yy复制光标所在行,p粘贴到光标所在行下一行
yy+p就粘贴一行
yy+n(数)+p粘贴n行
n+yy复制光标往下所在的n行
例子:yy10p
在这里插入图片描述
例子:5yyshift+g(G)p(先从int那一行往后复制n行然后光标定位到最后一行再复制)
在这里插入图片描述

(3)u

5、u:撤销返回上一步

在这里插入图片描述

(4)dd

6、dd:剪切/按照行进行删除
n+dd:剪切从光标往下的n行
在这里插入图片描述

(5)锚点:¥(shift+4) 和 ^(shift+6)

7、shift+4(¥)定位到当前行的结尾。
8、shift+6(^)定位到当前行的开始。

在这里插入图片描述
在这里插入图片描述

(6)w 和 b

9、前后方向盘移动:左右一步一步移动
10、w是往后一个单词移动,b是往前一个单词移动
11、n+b/w:往前/后n个字符

(7)h 和 j 和 k 和 l

12、h:光标往左移动,j:光标往下移动,k:光标往上移动,l:光标往右移动。

注意:我们尽量要用hjkl键,因为上下左右键在键盘发明的伊始还没有上下左右键。

快速记忆方式:
h在最左,为左
l在最右,为右
j为jump往下跳,为下
k为king,高高在上,为上

(8)shift+`(~)

13、shift+`(~):快速转换大小写。

在这里插入图片描述

(9)(n)r+(改的字符) – 有替换模式

14、r+(改的字符):对当前光标所在地方的字符进行修改。
15、n+r+(改的字符):对当前光标所在的字符+之后所有的字符进行批量化替换。
在这里插入图片描述
在这里插入图片描述

16、shift+r(R):进入到替换模式,对内容进行整体的替换。退出替换模式直接Esc即可。
在这里插入图片描述

(10)(n)x

17、x:对光标当前位置进行删除
18、n+x:对光标及光标之后的n个字符进行删除

在这里插入图片描述

(11)ctrl+r

19、对撤销后悔,即反撤销。

(12)总结

插入模式
按「i」切换进入插入模式「insert mode」,按“i”进入插入模式后是从光标当前位置开始输入文件;
按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;
按「o」进入插入模式后,是插入新的一行,从行首开始输入文字。

从插入模式切换为命令模式
按「ESC」键。

移动光标
vim可以直接用键盘上的光标来上下左右移动,但正规的vim是用小写英文字母「h」、「j」、「k」、
「l」,分别控制光标左、下、上、右移一格
按「G」:移动到文章的最后
按「 $ 」:移动到光标所在行的“行尾”
按「^」:移动到光标所在行的“行首”
按「w」:光标跳到下个字的开头
按「e」:光标跳到下个字的字尾
按「b」:光标回到上个字的开头
按「#l」:光标移到该行的第#个位置,如:5l,56l
按[gg]:进入到文本开始
按[shift+g]:进入文本末端
按「ctrl」+「b」:屏幕往“后”移动一页
按「ctrl」+「f」:屏幕往“前”移动一页
按「ctrl」+「u」:屏幕往“后”移动半页
按「ctrl」+「d」:屏幕往“前”移动半页

删除文字
「x」:每按一次,删除光标所在位置的一个字符
「#x」:例如,「6x」表示删除光标所在位置的“后面(包含自己在内)”6个字符
「X」:大写的X,每按一次,删除光标所在位置的“前面”一个字符
「#X」:例如,「20X」表示删除光标所在位置的“前面”20个字符
「dd」:删除光标所在行
「#dd」:从光标所在行开始删除#行

复制
「yw」:将光标所在之处到字尾的字符复制到缓冲区中。
「#yw」:复制#个字到缓冲区
「yy」:复制光标所在行到缓冲区。
「#yy」:例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字。
「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。

替换
「r」:替换光标所在处的字符。
「R」:替换光标所到之处的字符,直到按下「ESC」键为止。
撤销上一次操作
「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行多次回复。
「ctrl + r」: 撤销的恢复

更改
「cw」:更改光标所在处的字到字尾处
「c#w」:例如,「c3w」表示更改3个字

跳至指定的行
「ctrl」+「g」列出光标所在行的行号。
「#G」:例如,「15G」,表示移动光标至文章的第15行行首。


四、多文件操作(在末行模式)

注意:vim不会创建文件,只有在:wq以后才是创建文件。

末行中,:vs 新命名文件 – vs打开多个文件编辑窗口。
ctrl+ww:窗口光标切换。
在这里插入图片描述
在这里插入图片描述

复制粘贴操作:
在这里插入图片描述

注意:光标在哪个窗口就编辑那个文件,光标在哪一个窗口退出的时候就退出的是哪个文件。


五、末行模式

1、w q 和 !

1、w:保存 w!:强制保存
2、q:退出 q!:强制退出
3、wq:保存并退出 wq!:强制保存并退出

注意:末行中可以直接用!加上其他指令执行外部指令。

在这里插入图片描述

2、:set nu 和 :set nonu

4、set nu:调出行号。
在这里插入图片描述

5、set nonu:去掉行号。
在这里插入图片描述

3、总结

在使用末行模式之前,请记住先按「ESC」键确定您已经处于正常模式,再按「:」冒号即可进入末行模式。

列出行号
「set nu」: 输入「set nu」后,会在文件中的每一行前面列出行号。

跳到文件中的某一行
「#」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行。

查找字符
「/关键字」: 先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按
「n」会往后寻找到您要的关键字为止。
「?关键字」:先按「?」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往前寻找到您要的关键字为止。

保存文件
「w」: 在冒号输入字母「w」就可以将文件保存起来

离开vim
「q」:按「q」就是退出,如果无法离开vim,可以在「q」后跟一个「!」强制离开vim。
「wq」:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件。


六、误用ctrl+z

两种解决方案:
1、ctrl+z 退出后,在显示[1]+ Stopped vi db.json时,终端直接输入fg 1(中括号中显示的数字,即作业号,若只有一个,作业号可忽略)这样就会重回vim编辑界面了,然后正常退出即可。

2、ls -a 一下,会看到隐藏的.swp文件 删除了此文件即可,再次使用vim打开文件就不会出现上述界面了。


七、简单vim配置

1、配置文件的位置

1、在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。
2、而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。例如,/root目录下,通常已经存在一个.vimrc文件,如果不存在,则创建之。
3、切换用户成为自己执行 su ,进入自己的主工作目录,执行 cd ~
打开自己目录下的.vimrc文件,执行 vim .vimrc

我们先看一下我们的隐藏文件有没有.vimrc
在这里插入图片描述
没有的话我们创建一个.vimrc文件(vim的配置文件):
在这里插入图片描述

我们先来一个玩一下:
vim .vimrc:
在这里插入图片描述
vim test.c:(发现有行号了)
在这里插入图片描述

注意:一个用户一个vim配置文件,不会互相影响。一般不建议对root的vim做配置,一般将普通用户的vim做配置。

2、常用配置选项

设置语法高亮: syntax on
显示行号: set nu
设置缩进的空格数为4: set shiftwidth=4

在这里插入图片描述

2、下载插件(懒人做法)

这里推荐一个大佬的插件的做法,我们只需要复制链接在xshell中粘贴并回车即可自动下载,我们要注意的是要在普通用户下载,不推荐在root用户中下载。
大佬gitte链接
在这里插入图片描述
在这里插入图片描述
安装方法:

安装链接:
我们用这个链接直接复制到命令行中按回车即可。
curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh
在这里插入图片描述
出来这个下面的界面,到这里我们只需要root用户的密码即可。
在这里插入图片描述

输入root密码并等待即可。
完成下载如下图:
在这里插入图片描述
这里两种方法都可以,我用的是用source ~/.bashrc 也就是在命令行中输入以后回车。

我们看有一个install.sh脚本即是安装成功。
在这里插入图片描述

这是配置好以后的vim里面,是不是很酷炫!我们就可以写代码了。
在这里插入图片描述


总结

我们今天重点内容讲了yum的生态环境,这是恒关键的,一个好的环境对于我们程序员和用户来讲是很关键也是很重要的;最重要的是我们今天讲了vim,讲了一些简单的又常用的命令行提示和环境的配置,大家尽量用大佬提供的插件更加好一点,因为插件里面的vim配置更加好。


家人们不要忘记点赞收藏+关注哦!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/550134.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

NSFW 图片分类

NSFW指的是 不适宜工作场所(“Not Safe (or Suitable) For Work;”)。在本文中,将介绍如何创建一个检测NSFW图像的图像分类模型。 数据集 由于数据集的性质,我们无法从一些数据集的网站(如Kaggle等)获得所有图像。 但是我们找到…

少儿编程 中国电子学会图形化编程等级考试Scratch编程四级真题解析(选择题)2023年3月

2023年3月scratch编程等级考试四级真题 选择题(共25题,每题2分,共50分) 1、编写一段程序,从26个英文字母中,随机选出10个加入列表a。空白处应填入的代码是 A、 B、 C、 D、 答案:C

[CTF/网络安全] 攻防世界 simple_php 解题详析

[CTF/网络安全] 攻防世界 simple_php 解题详析 代码解读PHP弱语言特性姿势参数a限制绕过参数b限制绕过 总结 题目描述:小宁听说php是最好的语言,于是她简单学习之后写了几行php代码。 代码解读 $a$_GET[a]; 从HTTP GET请求参数中获取一个名为a的变量&#xff0c…

协同过滤算法的召回率、准确率、覆盖率、新颖度

python版计算协同过滤推荐算法的召回率、准确率、覆盖率、新颖度 推荐算法网站示例Demo 点我跳转图书管理推荐系统 点我跳转课程推荐系统 点我跳转电影推荐系统 1、召回率、准确率 2、覆盖率、新颖度 覆盖率反映了推荐算法发掘长尾的能力,覆盖率越高,说明推荐算法越能够将…

ChatGPT开始颠覆学习方式,应试教育面临哪些挑战?

ChatGPT爆火几个月,整个教育系统都在被颠覆。全球范围内,不少大学教授、系主任和管理人员,都在对课堂进行大规模的调整,以应对ChatGPT对教学活动造成的巨大冲击。 国内传统应试教育选出的分霸、考霸,是更能吃苦&#…

c++中的方法

c中的方法 static方法 与数据成员类似,方法有时会应用于全部对象而不是单个对象。可以编写static方法和数据成员。在方法声明前加上static即可。对于方法的定义前则不需要重复使用static关键字。 class Foo { public:static int sumFunc(int a, int b); };int Fo…

康耐视Visionpro工具-CogPMAlignTool为什么是最牛工具?

1.算法:有六种选项,分别是:PatMax,PatQuick, PatMax 与 PatQuick, PatFlex,PatMax-高灵敏度,透视 Patmax。 PatQuick 特点:速度最快,对于三维或者低质量原件最佳,承受更多图像差异; PatMax 特点:精确度最高,在二维元件上表现佳,最适合于细微细节; PatFlex 特点…

4. 通讯录实现的需求分析和架构设计

本文实现的是通讯录产品的需求分析和架构设计,重点在于结构层次的设计,方便代码阅读和维护。 一、通讯录实现的需求分析 1、通讯录的功能清单 添加一个人员打印显示所有人员删除一个人员查找一个人员保存文件加载文件 2,数据存储信息 人员…

[CTF/网络安全] 攻防世界 disabled_button 解题详析

[CTF/网络安全] 攻防世界 disabled_button 解题详析 input标签姿势disable属性总结 题目描述:X老师今天上课讲了前端知识,然后给了大家一个不能按的按钮,小宁惊奇地发现这个按钮按不下去,到底怎么才能按下去呢? input标…

Tiny+ 语言词法之C语言

访问【WRITE-BUG数字空间】_[内附完整源码和文档] 语义分析本质上就是在语法分析的基础上进一步完善分析的功能。举个例子来说,在语法分析部分的 if_stmt 函数中,在语义上判断条件必须返回布尔类型的值,因此我们加入一个判断,判断…

Unity之OpenXR+XR Interaction Toolkit示例Demo详解

一.前言 自从升级Unity版本到2021,然后使用OpenXR开发VR之后,我们整个团队的开发效率都提升了不少,这证明了不管什么领域,统一接口,统一规范都是必须的。 关于XR Interaction Toolkit插件,我已经写了几篇文章了,今天才想起来,最基础的Demo讲解还没有写,其实官方的这个…

chatgpt赋能Python-pythonfor循环5次

Python中for循环的使用方法及技巧 Python作为一种高级编程语言,其独特的语法结构和方便的操作方法受到了越来越多人的欢迎和喜爱。其中,for循环是Python程序员必备的基本技巧之一。在这篇文章中,我们将介绍Python中for循环的使用方法及技巧。…

HTTP协议【面试高频考点】

目录 一、HTTP 响应 1.首行 2.状态码(经典面试题,必考) 2.1 200 OK 2.2 404 Not Found 2.3 403 Forbidden 2.4 500 Internal Server Error 2.5 504 Gateway Timeout 2.6 302 Move temporarily 2.7 301 Moved Permanently 2.8 状态…

clearmymac4.13.5专业的Mac系统清理优化工具

CleanMyMac X是一款功能强大的Mac清理工具,它可以扫描您的Mac电脑,清除垃圾文件,卸载无用的应用程序,并优化系统性能。此外,CleanMyMac X还可以找到和修复Mac电脑上的许多其他问题,即使您不是技术专家也可以…

chatgpt赋能Python-pythona__a

Python中的aa 介绍 Python是一种流行的编程语言,具有简单易学和可读性强的特点。在Python中,常常使用aa这样的表达式,它表示将变量a的原始值加上它自己的值,然后将结果赋值给变量a。这种语法看起来很简单,但实际上有…

C语言函数大全-- _w 开头的函数(5)

C语言函数大全 本篇介绍C语言函数大全-- _w 开头的函数 1. _wspawnl 1.1 函数说明 函数声明函数功能int _wspawnl(int mode, const wchar_t* cmdname, const wchar_t* arglist, ...);启动一个新的进程并运行指定的可执行文件 参数: mode : 启动命令的…

【008】C++数据类型之重要关键字详解

C数据类型之重要关键字详解 引言一、const修饰普通变量重点说明 二、register修饰寄存器变量三、volatile强制访问内存四、sizeof测试类型的大小五、typedef关键字总结 引言 💡 作者简介:专注于C/C高性能程序设计和开发,理论与代码实践结合&a…

搭建go web 框架

思想base部分day1:封装gee封装context上下文封装前缀tree路由树分组封装group与中间件封装文件解析封装封装错误处理测试 思想 web框架服务主要围绕着请求与响应来展开的 搭建一个web框架的核心思想 1 便捷添加响应路径与响应函数(base) 2 能够接收多种数据类型传入(上下文cont…

第二章 表操作

一、数据表的设计理念 数据表是包括数据库所有数据的数据库对象,数据在表中的组织方式与在电子表格中相似,都是按行和列的格式组织的,其中每一行代表一条唯一的记录,每一列代表记录中的字段,表中的数据库对象包含列、…

Godot4节点树右键菜单添加自定义选项

前言 查看godot的源码推荐使用在线版vscode直接从github上看。(直接把网址的com改成dev即可) 重点查看以下源码 scene_tree_dock.h scene_tree_dock.cpp 开始 tool extends EditorPluginvar window var scene_menustatic func find_child_by_class(no…