嵌入式 Linux 入门(四、Linux 下的编辑器 — 让人爱恨交加的 vi )

2023-11-08

大家好,是矜辰所致,嵌入式 Linux入 门第四课,了解 Linux 下的编辑器,掌握 vi 编辑器的使用。

前言

前面几篇文章学习了 Linux 的文件系统,以及常用Shell 命令,我们学习Linux的使用,离不开文本编辑,本文就要来学习了解 Linux 下的编辑器及其使用方法。

本文主要在于说明 Linux 中一个重要的编辑器 - Vi 编辑器的操作使用。

vi 编辑器,有人爱他,因为在所有的 linux 系统中,都有他的存在,使得维护人员可以抛开图形化界面,进行代码编辑;

vi 编辑器,有人恨他,因为脱离了大部分人习惯的图形化界面编辑习惯,纯指令形式的编辑方式,让新人望而却步。

本文带你认识这个让人又爱又恨的 它,希望它不再是你 Linux 学习道路上的绊脚石,而变成你以后的指明灯!… by 矜辰所致

❤️
嵌入式 Linux 入门系列博文:
嵌入式 Linux 入门(一、Linux 基本介绍及文件结构)
嵌入式 Linux 入门(二、Linux 文件系统、文件类型及权限管理)
嵌入式 Linux 入门(三、Linux Shell 及常用命令说明)

一、Linux 下的编辑器

在我们安装的 Ubuntu 中,自带的编辑器有 gedit 编辑器 和 vi 编辑器。

1.1 gedit 编辑器

gedit 是一个窗口式的编辑器,和 windows 下面的记事本类似。

我们直接使用 shell 命令 打开 gedit 编辑器:

gedit < 文件名>

如图:

在这里插入图片描述

使用方法也和记事本类似,使用起来也简单,gedit 编辑器也不是本文所介绍的重点,所以只是简单提一下。

要注意的是,gedit 是一个窗口式的编辑器,只能在Ubuntu桌面环境下使用 。

1.2 Vi 编辑器

除了 gedit 编辑器 ,Linux 还自带了一个 vi 编辑器。

所有的 Unix Like 系统都会内建 vi 编辑器,其他的文书编辑器则不一定会存在。

vi是一个命令,也是一个命令行下的编辑器。

我们使用如下命令打开 vi 编辑器:

vi < 文件名>

在这里插入图片描述

对于接触过 Linux 的人来说, vi 编辑器是一个绕不开的话题。很多初学者学习 Linux 最头大的一件事情就是学习 Vi 编辑器,因为 vi 操作完全脱离鼠标,选择一整大段代码中间都一部分,也是通过键盘定位。对于大部分人来说,都习惯了图形界面编辑器,在终端模式下面编辑实在是难以下手。

vi 编辑器这么难上手,而且现在跨平台的编辑器很多,比如我们现在常用的 Vscode,那么为什么所有的 Linux 学习教学都会讲解 vi 编辑器的使用?

1.3 学习 Linux 为什么一定要学 Vi ?

总的来说,有2点最重要的原因:

1、如上文所言,vi是最基本的文本编辑器,每个Linux发行版都会自带vi,其他的编辑器不一定存在。

2、 就像我们必须学习 Shell 指令一样,在很多运行 Linux 的嵌入式设备或者服务器调试的时候,并没有GUI形式的编辑工具,但是一定会有vi 。

而且当我们真正熟练掌握 vi 的使用后,在以后对文件做些简单修改时,使用 vi 命令的效率非常高,学会它后能使得我们在 Linux 的世界里畅行无阻。

1.4 vi 与 vim

说 vi ,基本上都是与 vim 一同说明,那么 vi 与 vim 有什么关系?

它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面,vim是从vi发展出来的一个文本编辑器。

简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具,vi和vim都是Linux中的编辑器,不同的是vim比较高级,可以视为vi的升级版本。vi适用于文本编辑,但是vim更适用于coding 。

vi 与 vim 的区别:

  • vim 是 vi 的升级版本,兼容vi
  • vi里,按u只能撤消上次命令,而在vim里可以无限制的撤消
  • vi只能运行于unix中,而vim不仅可以运行于unix,windows ,mac等多操作平台
  • vim可以用不同的颜色来加亮你的代码

那么有些小伙伴问过我,所有的 Linux 系统都自带 vi,但是不一定带 vim ,那么为什么还能放在一起讲解 ?

  1. 在 Linux 中,vim 完全兼容 vi,他们的操作指令完全一样;
  2. 在系统中,你使用的 vi 指令调用的程序,可能是 vi 也可能是 vim,就是对于 Linux 系统而言,他们是兼容的而且是一样的东西,有升级版本的 vim 就用vim,没有就使用自带的 vi;
  3. 现在开发都会安装 vim,即便没有图形化界面,安装 vim 也并不是问题,使用sudo apt install vim
  4. 一般情况,我们都可以把 vim 当成 vi 来使用。你别管他是vi还是vim,你就当做 vi 学,反正到时候不管是 vi 还是 vim 都一样用。

比如,在我安装的 ubuntu 虚拟机中,使用 vi 版本查看指令 vi -v 查看 vi 版本,显示的信息可能就是vim 编辑器版本(如果系统中装过 vim 的话):

在这里插入图片描述

因为很早前我应该已经安装了 vim,那么除了上面看版本,还有什么方式判断我使用的 vi 是那个程序呢?

我们可以通过查看 vi 文件的源头来判断使用的是那个程序(文件):

vi命令指向标准vim程序

说了这么多,也就是为了说明为什么所以市面上大部分教学说明都是把 vi 和 vim 放一起,我们在以后没有特殊说明,也不会刻意去区分它们,也会把他们放在一起说明。

二、vi/vim 编辑器使用说明

本文的重点,就是要学会使用 vi/vim 编辑器,刚开始觉得很难受是正常的,记不住也没有关系。切记 vi/vim 编辑器使用的学习不是靠背,而是靠练,靠用!

我们通过 vi 文件名 指令打开 vi 编辑器,执行该指令,如果有对应文件则直接打开,如果没有就会创建新文件然后打开,比如:

在这里插入图片描述

对于初学者,可能到了上图的界面之后,都不知道怎么操作,按键也没有反应,可能都无法退出界面。

所以首先,我们要先说明一下 vi/vim 编辑器的模式。

2.1 vi 编辑器模式

vi 编辑器有3个模式:

  • 命令行模式 (command mode/一般模式)
  • 文本输入模式 (input mode/编辑模式)
  • 底线命令模式 (lastline mode/指令列命令模式/末行模式)

2.1.1 命令行模式 (command mode/一般模式)

我们启动 vi/vim,便进入了命令模式。此状态下敲击键盘动作会被 vi 识别为命令,而非输入字符。

任何时候,不管用户处于何种模式,只要按一下 “ESC” 键,即可使 vi 进入一般模式/命令函模式。

在该模式下,用户可以输入各种合法的Vi命令,用于管理自己的文档。此时从键盘上输入的任何字符都被当做编辑命令来解释,若输入的字符是合法的 vi 命令,则 vi 在接受用户命令之后完成相应的动作。但需注意的是,所输入的命令并不在屏幕上显示出来。若输入的字符不是 vi 的合法命令,Vi会响铃报警。

以下是常用的几个命令:

i 切换到输入模式,以输入字符。
x 删除当前光标所在处的字符。
: 切换到底线命令模式,以在最底一行输入命令。

2.1.2 文本输入模式 (input mode/编辑模式)

在命令模式下输入插入命令i(insert)、附加命令a (append)、打开命令o(open)、修改命令c(change)、取代命令r或替换命令s都可以进入文本输入模式。

在该模式下,用户输入的任何字符都被 vi 当做文件内容保存起来,并将其显示在屏幕上。在文本输入过程中,若想回到命令模式下,按 ”ESC” 键即可。

在输入模式中,可以使用以下按键:

字符按键以及Shift组合,输入字符
ENTER,回车键,换行
BACK SPACE,退格键,删除光标前一个字符
DEL,删除键,删除光标后一个字符
方向键,在文本中移动光标
HOME/END,移动光标到行首/行尾
Page Up/Page Down,上/下翻页
Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
ESC,退出输入模式,切换到命令模式

2.1.3 底线命令模式 (last line mode/指令列命令模式/末行模式)

在一般模式/命令模式下按下:(英文冒号)就进入了底线命令模式。

此时 vi 会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个“:”作为末行模式的提示符,等待用户输入命令。

按 ”ESC” 键可随时退出底线命令模式。

多数文件管理命令都是在此模式下执行的,末行命令执行完后,vi 自动回到命令模式。

底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。

在底线命令模式中,基本的命令有(已经省略了冒号):

q 退出程序
w 保存文件

2.1.4 模式切换示意图

在网上找了几个比较典型的工作模式说明图,因为网图已经说得很直观,这里就没必要自己再画图了:

在这里插入图片描述

下图是百问网的 Linux 教学资料中的 vi 操作示意图:

注意:图中应该是为了帮助新手更明显的区分不同模式,所以使用了一般模式 代表 命令行模式。
命令行模式 代表底线命令模式/ 末行模式/ 指令列命令模式。

在这里插入图片描述


对于模式的名字,新手需要多注意一下,因为不同的教程可能使用的名字不太一样,需要有自己的一套记忆方式,最好是通过上面各个模式的介绍自己去理解一下各个模式的不同。

❤️ 当不知道处于何种模式时,按 ESC 键返回到一般模式,多按几次也没有问题。

2.2 vi 编辑器使用步骤示例

虽然我们还没有详细的介绍操作指令,但实际上最常用的操作也就那么几步,我们通过上文的介绍,来进行一次完整的 vi 编辑器使用。

1、首先进入想进行测试的文件夹,然后使用 vi 文件名命令创建一个新的文件:

在这里插入图片描述

2、通过上面的学习我们知道上图是在一般模式下面,我们可以是用 “i” 进入到文本输入模式:

在这里插入图片描述

在编辑模式当中,你可以发现在左下角状态栏中会出现 –INSERT- 的字样,那就是可以输入任意字符的提示。
这个时候,键盘上除了 Esc 这个按键之外,其他的按键都可以视作为一般的输入按钮了,所以你可以进行任何的编辑,比如:

在这里插入图片描述

在编辑模式下,使用删除键(Backspace)删除字符。使用箭头键移动光标。

3、那我们的本文编辑完成了以后,我们要保存退出,首先得退出编辑模式。

按下 ESC 按钮回到一般模式:

在这里插入图片描述

4、先别着急保存退出,假如这个时候我们发现编辑有点问题,多敲了几个字母,我们可以回到文本输入模式使用删除键(Backspace)删除字符;

还有一种方式,在一般模式下时,使用“x”删除光标所在的字符,如下图:

在这里插入图片描述

5、修改完毕,最后在一般模式中按下 :wq 储存后离开 vi 。

“:” 表示进入命令行模式,“wq”表示“write and quit”,即写入并退出。如果不想保存则可以输入“:q!”,它表示“退出、不保存”。

在这里插入图片描述

至此,我们就使用 vi 编辑器成功的创建了一个文件。

6、最后我们可以查看验证一下,如下图:

在这里插入图片描述

❤️ 本节展示了一个完整的 vi 编辑器创建了新文件的示例,对于初学者,有必要自己实际操作一次,然后同时结合上面不同模式的说明,能更加的快速的学会简单的基本使用。

2.3 vi 按键操作说明

除了上面简易范例的 i, Esc, :wq 之外,其实 vim 还有非常多的按键可以使用。当然我们这里也只是把最常用的操作说明,更多的操作下一小节有图示,有推荐资料;同时,因为是编辑器,我们本节也只介绍操作按键,实际的效果还得靠自己多测试。

2.3.1 从一般模式 进入 编辑模式

当我们在一般模式,想进入文本编辑模式,操作键如下表说明:

快捷键 功能描述
i (小写) 在当前光标所在位置 插入文本
I(大写) 在当前光标所在行的行首 插入本文
a(小写) 在当前光标所在位置的下一个字符 插入文本
A(大写) 在光标所在行的行尾 插入文本
o(小写) 在光标所在位置后插入新行,就是在当前光标所在行的下方新建一行
O(大写) 在当前光标所在行的上方,新建一行
r(小写) 替换当前光标所在位置的字符 ,r 只会取代光标所在的那一个字符一次
R(大写) 替换当前光标所在位置之后的字符,R会一直取代光标所在的文字,直到按下 ESC 为止
ESC 退出插入模式

上面这些按键中,在 vi 画面的左下角处会出现『--INSERT--』或『--REPLACE--』的字样。

--INSERT-- 我们前面讲过就是插入模式,--REPLACE-- 就是替换模式。

在我们想要编辑本文的时候,一定要在左下角处看到 INSERT(插入) 或 REPLACE (替换)才能输入!

对于上面的 rR,测试结果如下:

使用大写的R:

在这里插入图片描述

使用小写的r:

在这里插入图片描述

进入编辑模式式之后,就可以正常地编辑文本了,使用方向键来移动光标,回车键进行换行,操作方式与 Windows 记事本一样。

2.3.2 从一般模式 进入 底线命令模式

当我们在一般模式,按下键盘的冒号键 “:” 就进入了底线命令模式

操作键如下表说明(下面的指令都是基于在一般模式中已经输入了:的基础上,w 表示 在一般模式下输入了:w):

快捷键 功能描述
w 保存文档
w! 若文件属性为『只读』时,强制写入该文件。能不能写入还是取决于你账户的权限。
w [filename] 另存为以 [filename] 为文件名的文档
r [filename] 读取文件名为 filename 的文档
q 直接退出软件,前提是文档未做任何修改
q! 不保存修改,直接退出软件
wq 保存文档,并退出软件。
! command 回到终端窗口,执行 command 命令,按回车键可切回 vi
set nu 显示行号,设定之后,会在每一行的前缀显示该行的行号
set nonu 与 set nu 相反,取消行号

惊叹号 (!) 在 vi 当中,常常具有 “强制” 的意思。

2.3.3 一般模式 按键操作

前面说明的文本输入模式,和底线命令模式看起来都不难,相对来说最多最复杂的操作都是在一般模式下面 = =!

在任意模式下按按键“Esc”可进入到一般模式。下在一般模式下,可以进行复制,粘贴,删除,查找替换某个关键字等。

操作键如下表说明:

快捷键 功能描述
光标移动 k (或上方向键) 光标上移一行
j (或下方向键) 光标下移一行
h (或左方向键) 光标左移一个字符
l (或右方向键) 光标右移一个字符
[Ctrl] + [b](或 PageUp) 向上翻页
[Ctrl] + [f] (或 PageDown) 向下翻页
nG 或 ngg 光标移动到第 n行首
G 移动到最后一行
0 或功能键[Home] 光标移至当前行行首
$ 或功能键[End] 光标移至当前行行末
…by 矜辰所致…CSDN、公众号同名
文本查找 /word 向光标之下寻找一个名称为 word 的字符串
n 在同一个方向重复上一次搜索命令,即查找下一个关键字
N 在反方向重复上一次搜索命令,即查找上一个关键字
文本替换 :1,$s/word1/word2/g 或 :%s/word1/word2/g 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !
:1,$s/word1/word2/gc 或 :%s/word1/word2/gc 和上面一样替换,取代前显示需要用户确认
…by 矜辰所致…CSDN、公众号同名
删除、剪切、复制、粘贴 d 删除光标所选的内容
dd 删除当前行
ndd 删除光标后 n 行
x(小写) 删除光标所在的字符
X(大写) 删除光标前面的一个字符
y 复制光标所选的内容
yy 复制当前行
nyy 复制当前行及其下面 n行
p(小写) 将复制的数据粘贴在当前行的下一行
P(大写) 将复制的数据粘贴在当前行的上一行
…by 矜辰所致…CSDN、公众号同名
撤销重做 u 撤销上一步的操作,等价于 Windows 的 Ctrl+Z
Ctrl+r 重做上一步的操作
.(小数点) 重复前一个动作

一些操作的补充说明:

1、如果想要进行多次移动的话,例如向下移动 30 行,可以使用 “30j” 或 “30↓” 的组合按键, 亦即加上想要进行的次数(数字)后,按下动作即可!

跳转到文件头和文件尾:1gg 就跳到第一行的行首,就是文件头。G 就是跳转转至文件结尾。

2、使用 /word 配合 n 及 N 是非常有帮助,可以让你重复的找到一些你搜寻的关键词,在 /word 之前先跳到第一行则进行全文件搜索。

❤️ 上面表格列举了最常用的 vi 编辑器操作,如果熟练掌握表格中的操作,就已经可以很好的使用 vi 编辑器了,当然,vi 的操作 和 上一篇文章的 shell 指令一样,不是背出来的而是用出来的!

2.4 更多操作学习

我们上面的介绍说明,介绍了一般常用的操作,基本可以满足正常使用需求,如果需要学习更多,可以自行参考更多资料:

❤️史上最全Vim快捷键键位图(入门到进阶)❤️

Linux vi/vim — 菜鸟教程

在这里插入图片描述

上图就是网上到处流传的经典的 vi 键盘图,出自上面推荐的网址,大家可以自行查看。

结语

本文主要是介绍 Linux 下 Vi 编辑器 以及其使用方式。

要插一句,最近发现自己一些文章直接被搬运,有些地方想投诉也投诉不了,没办法,以后得张个心眼,我是矜辰所致,CSDN、公众号同名!暂时加句话把,以后得好好想想如何防止直接搬运。

对于初学者,我的建议是,掌握几条基本的指令,能够对文档进行一定的修改即可,不用精通,但是一定要会 !
针对自己未来的发展方向选择性的深入学习,如果以后工作经常需要使用 vi ,那么可以针对性的深入学习和练习,如果只是在需要的时候进行简单的修改,掌握几条必备基本指令,后期遇到的时候再查看手册。
永远要记住,学习工具使用的最好方式是自己动手!

好了,Linux 下编辑器的使用我们就讲到这里,谢谢大家!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

嵌入式 Linux 入门(四、Linux 下的编辑器 — 让人爱恨交加的 vi ) 的相关文章

  • 在本地主机上使用相同的 IP 和端口创建套接字

    我在 Linux 上看到奇怪的行为 我看到远程端和本地端都显示相同的 IP 和端口组合 以下是 netstat 输出 netstat anp 网络统计grep 6102 tcp 0 0 139 185 44 123 61020 0 0 0
  • 在ubuntu中打开spyder

    我想在ubuntu中打开spyder Python IDE 通常我会在 shell 中编写 spyder 它会打开spyder IDE 现在 当我在shell中编写spyder时 它只是换行 什么也没有发生 类似于按 enter 我如何找回
  • bash 将输出重定向到文件,但结果不完整

    重定向命令输出的问题已经被问过很多次了 但是我有一个奇怪的行为 我使用的是 bash shell debian 版本 4 3 30 1 release 并尝试将输出重定向到文件 但并非所有内容都记录在文件中 我尝试运行的 bin 文件是 l
  • 更新Linux中的包含路径

    我的 my path to file 文件夹中有几个头文件 我知道如何将这些文件包含在新的 C 程序中 但每次我都需要在包含它之前输入头文件的完整路径 我可以在linux中设置一些路径变量 以便它自动查找头文件吗 您可以创建一个 makef
  • 为什么 OS X 和 Linux 之间的 UTF-8 文本排序顺序不同?

    我有一个包含 UTF 8 编码文本行的文本文件 mac os x cat unsorted txt foo foo 津 如果它有助于重现问题 这里是文件中确切字节的校验和和转储 以及如何自己生成文件 在 Linux 上 使用base64 d
  • Bash:将字符串添加到文件末尾而不换行

    如何将字符串添加到文件末尾而不换行 例如 如果我使用 gt gt 它将添加到文件末尾并换行 cat list txt yourText1 root host 37 echo yourText2 gt gt list txt root hos
  • vim 中的 python 2 支持

    我正在尝试设置 YouCompleteMe 一个 vim 代码完成插件 当我运行 vim 时 它给我这个错误消息 YouCompleteMe unavailable 需要 python 2 x 我的 ubuntu 机器上安装了正确版本的 p
  • /sys/device/ 和 dmidecode 报告的不同 CPU 缓存大小

    我正在尝试获取系统中不同缓存级别的大小 我尝试了两种技术 a 使用 sys device 中的信息 这是输出 cat sys devices system cpu cpu0 cache index1 size 32K cat sys dev
  • GVIM可以有背景图片吗?

    我想知道是否可以将背景图像放入 gVim 中 这可以通过编程来完成吗 如果你必须的话 我建议你做以下几件事 使用合成窗口管理器 例如 Linux Windows Vista 和 Mac OS 上的 Compiz 可能有类似的工具 设置桌面背
  • LINUX:如何锁定内存中进程的页面

    我有一个 LINUX 服务器 运行一个具有大量内存占用的进程 某种数据库引擎 该进程分配的内存太大 需要将其中一部分换出 换出 我想做的是将所有其他进程 或正在运行的进程的子集 的内存页面锁定在内存中 以便只有数据库进程的页面被换出 例如
  • 如何从 C++ 程序中重新启动 Linux?

    我有一个 Qt 4 GUI 我需要在下拉菜单中提供一个选项 允许用户选择重新启动计算机 我意识到这对于以其他方式重新启动计算机的能力来说似乎是多余的 但选择需要保留在那里 我尝试使用 system 来调用以下内容 suid root she
  • Linux无法删除文件

    当我找到文件时 我在删除它们时遇到问题 任务 必须找到带有空格的文件并将其删除 我的尝试 rm find L root grep i 但我有错误 rm cannot remove root test No such file or dire
  • grep 排除文件的数组参数

    我想从我的文件中排除一些文件grep命令 为此我使用参数 exclude excluded file ext 为了更容易阅读 我想使用包含排除文件的 bash 数组 EXCLUDED FILES excluded file ext 然后将
  • 在 docker 中重定向命令输出

    我想为我的服务器做一些简单的日志记录 它是一个在 Docker 容器中运行的小型 Flask 应用程序 这是 Dockerfile Dockerfile FROM dreen flask MAINTAINER dreen WORKDIR s
  • vmsplice() 和 TCP

    在原来的vmsplice 执行 有人建议 http lwn net Articles 181169 如果您的用户态缓冲区是管道中可容纳的最大页面数的 2 倍 则缓冲区后半部分成功的 vmsplice 将保证内核使用缓冲区的前半部分完成 但事
  • ioctl 命令的用户权限检查

    我正在实现 char 驱动程序 Linux 并且我的驱动程序中有某些 IOCTL 命令仅需要由 ADMIN 执行 我的问题是如何在 ioctl 命令实现下检查用户权限并限制非特权用户访问 IOCTL 您可以使用bool capable in
  • Vim 在 Mingw 上表现异常

    我在 MinGW 4 6 2 上的 Vim 表现得很奇怪 例如 在插入模式下按 Backspace 会删除字符 但我必须用箭头键移动光标才能删除的字符消失 而且它也会使我退出插入模式 另一个例子 按 Del 删除字符有时会生成奇怪的字符 例
  • 如何使用 JSch 将多行命令输出存储到变量中

    所以 我有一段很好的代码 我很难理解 它允许我向我的服务器发送命令 并获得一行响应 该代码有效 但我想从服务器返回多行 主要类是 JSch jSch new JSch MyUserInfo ui new MyUserInfo String
  • 为什么 Linux 没有 DirectX API?

    在考虑现代显卡的 Windows 系统上 DirectX API 的驱动程序端实现时 我想知道为什么此实现在非 Windows 系统 尤其是 Linux 上不可用 由于明显缺乏此功能 我只能假设有一个我无视的充分理由 但在我的原始理解中 我
  • 通过 Visual Studio 2017 使用远程调试时 Linux 控制台输出在哪里?

    我的Visual Studio 2017 VS2017 成功连接Linux系统 代码如下 include

随机推荐

  • IntelliJ IDEA 插件下载安装教程 在线安装和本地安装教程

    随着idea用户越来越多 许多插件可以方便我们日常的开发 idea本身就可以下载安装这些插件 话不多说 上教程 在线安装 点击左侧 file gt settings 点击Plugins gt 输入想下载的插件名称 支持模糊查询 gt 选中想
  • GPT-4是一个好的数据分析师吗?

    文章目录 摘要 1 简介 2 相关工作 2 1 相关任务和数据集 2 2 GPT 3 ChatGPT GPT 4能力 3 任务说明 3 1 背景 数据分析师工作范围 3 2 我们的任务设置 4 我们的框架 4 1 步骤1 代码生成 4 2
  • Python爬虫系列(一)——手把手教你写Python爬虫

    1 什么是爬虫 根据百度百科的定义 网络爬虫 又称为网页蜘蛛 是一种按照一定的规则 自动地抓取万维网信息的程序或者脚本 人们如今的生活 大都离不开网络 发一条微信 电子支付买一杯奶茶 刷一条微博 等等 都依赖于网络的便携性 但是 互联网茁壮
  • Vue 代码如何进行调试

    Vue 代码调试 console debugger 浏览器调试 推荐文章 初入职场 还是个前端小白 代码写不出来 师傅不在 小梦 vs 后端大兄弟 我运行了一个东西 一直出不来 后端大兄弟 我可以试一试断点 看哪里出错 后端大兄弟 我好像不
  • 数据结构---希尔排序

    希尔排序 逐步折半增量 JAVA实现 Hibbard增量 Sedgewick增量 总结 对原始数组预处理 然后使用插入排序 满足 数组元素较少和 数组大部分元素有序俩个条件 逐步折半增量 逐步分组进行粗调 再进行直接插入排序的思想 就是希尔
  • sql-labs 闯关 11~20

    sql labs 闯关 11 20 友善爱国公正敬业爱国爱国诚信自由友善爱国公正诚信民主和谐敬业平等 复习笔记1 内容 POST请求介绍 sql labs第11关 POST请求 基于错误 单引号 字符型 sql labs第12关 POST请
  • C++ 工厂模式

    简单工厂 简单工厂 定义一个类负责创建其他对象类的实例 而被创建的对象类一般都有共同的基类 一般来说简单工厂如果想创建一个对象类 只需要根据名字进行实例化 工厂就会创建相应的对象类 特点 简单的对不同类对象的创建进行了一层很薄的封装 inc
  • vi 常用命令行

    vi 常用命令行 1 vi 模式 a 一般模式 vi 处理文件时 一进入该文件 就是一般模式了 b 编辑模式 在一般模式下可以进行删除 复制 粘贴等操作 却无法进行编辑操作 等按下 i I o O a A r R 等 字母之后才能进入编辑模
  • 关于我用iVX沉浸式体验了一把0代码项目创建(2)

    关于iVX 前面已经写过两篇文章了 感兴趣的同学可以去看我前面两篇文章 传送门 云原生IDE iVX 1 iVX的系统架构 1 1 举一个例子 1 2 iVX前端技术框架 1 3 后台技术框架 1 4 后台应用逻辑分层 2 iVX体验 2
  • Windows和linux上安装maven3

    一 Windows上安装maven3 系统环境 Windows 7 64位旗舰版 jdk1 6 0 17 1 下载maven3 http maven apache org download html 下载 apache maven 3 1
  • 论文阅读_扩散模型_DM

    英文名称 Deep Unsupervised Learning using Nonequilibrium Thermodynamics 中文名称 使用非平衡热力学原理的深度无监督学习 论文地址 http arxiv org abs 1503
  • NTC PTC 压敏电阻 在电源电路中的作用

    NTC PTC 压敏电阻 在电源电路中的作用 来自dianyuan com 问题1 NTC电阻串联在交流电路中主要是起什么作用 它是怎样工作 请大侠指点 谢谢 问题2 压敏电阻并联在交流侧电路中主要是起什么作用 它是怎样工作 如果没有以上两
  • 理解DALL·E 2, Stable Diffusion和 Midjourney工作原理

    原文 理解DALL E 2 Stable Diffusion和 Midjourney的工作原理 知乎 者按 随着AIGC的兴起 各位小伙伴们对文生图工具DALL E 2 Stable Diffusion和Midjourney一定并不陌生 本
  • word转换成pdf,包括导航目录和图片不变黑

    1 word转换成pdf 包括导航目录和图片不变黑 有些时候将word转换成pdf 我们会发现生成的文件要么不带导航目录 要么就是图片显示有问题 比如变黑 变黑是因为某些图片在作图时修改了透明度 因此转换时会被转换为黑色 下面来说说解决办法
  • UDP之多播/组播

    目录 一 什么是多播 组播 为什么出现多播 组播 二 组播地址 三 主机网卡对应的编号 ifconfig命令 ip ad ip adress 获取网卡对应的编号 四 多播实现 一 什么是多播 组播 为什么出现多播 组播 由上节课讲到的广播
  • imu内参标定,从数据录制到标定结果过程记录

    一 准备录制 这部分内容主要参考了博主 huawwenwnewn 的文章http t csdn cn yvkdz 非常感谢 1 建立工作空间在imu data cpp 写入以下内容 mkdir p publish ws src cd pub
  • 永磁同步电机矢量控制到无速度传感器控制学习教程(PMSM)(一)

    一个阶段的学习结束了 整理了之前的过程中的学习成果 已经过了工作的年纪 在这里稍微出一下自己做的一套永磁同步电机的教程 从基础的矢量控制 到应用性较强的MTPA 弱磁控制等 最后深入到无速度传感器的控制 搜集了三种无速度的方法 足够大家从基
  • C语言 define

    本文结合 C Primer Plus 和网上的资料 c c 中define用法详解及代码示例 MachineChen的博客 CSDN博客 define在c语言中用法 对C语言中的define做一个总结 每行 define 逻辑行 都由3部分
  • string[]数组转为int[]数组方法

    string arrTemp 22 23 222 int intArray intArray Array ConvertAll
  • 嵌入式 Linux 入门(四、Linux 下的编辑器 — 让人爱恨交加的 vi )

    大家好 是矜辰所致 嵌入式 Linux入 门第四课 了解 Linux 下的编辑器 掌握 vi 编辑器的使用 目录 前言 一 Linux 下的编辑器 1 1 gedit 编辑器 1 2 Vi 编辑器 font color 0033FF 1 3