vim基本命令(vi、工作模式、普通模式、插入模式、可视模式、命令行模式、复制、粘贴、插入、删除、查找、替换)

1. Vim的作用

1.1. 文本编辑

1.1.1. 基础文本编辑功能

Vim是一个功能强大的文本编辑器,它可以用来创建、修改和保存各种文本文件。无论是编写简单的文本笔记,还是复杂的代码文件,Vim都能胜任。例如,我们可以用它来编写Python脚本,编写HTML网页代码等。它支持多种文本编码格式,如UTF - 8、ASCII等。这使得Vim能够处理不同语言和地区字符的文本文件,满足了在国际化开发环境中的需求。

1.1.2. 代码编辑优势

对于程序员来说,Vim在代码编辑方面有着独特的优势。它支持语法高亮显示,能够根据不同的编程语言自动识别并高亮代码中的关键字、变量、函数等元素。比如在编辑C++代码时,类名、方法名、控制语句等会以不同的颜色显示,让代码结构一目了然。

Vim还支持代码缩进功能。它可以自动按照编程语言的规范对代码进行缩进,帮助程序员保持代码的整洁和可读性。例如,在编写Python代码时,当写完一个if语句后按下回车键,Vim会自动将下一行代码缩进四个空格,符合Python的缩进规则。

1.2. 文件浏览和管理

1.2.1. 文件浏览

Vim内置了文件浏览器功能。用户可以在Vim中直接浏览文件系统,查看文件夹中的文件列表。这对于在编辑过程中需要快速切换到其他文件进行编辑的情况非常方便。例如,当我们在一个项目的多个源代码文件之间切换时,不需要退出Vim,就可以在Vim的文件浏览器中找到并打开需要的文件。

1.2.2. 文件管理操作

它还可以进行一些基本的文件管理操作,如复制、移动、删除文件等。这些操作可以在Vim的命令模式下完成,减少了在编辑文件过程中频繁切换到外部文件管理器的麻烦。比如,我们可以使用Vim的命令来删除一个不再需要的临时文件,而不用退出Vim去使用操作系统的文件管理工具。

1.3. 多窗口编辑

1.3.1. 分屏编辑

Vim支持多窗口编辑功能,可以将屏幕分割成多个窗口,同时打开和编辑多个文件。这对于对比不同文件的内容或者同时查看和修改多个相关文件非常有用。例如,当我们在编写一个软件项目时,可能需要同时查看头文件和源文件,通过Vim的分屏功能,可以将头文件和源文件分别放在上下两个窗口或者左右两个窗口中,方便同时对它们进行编辑。

1.3.2. 标签页功能

除了分屏,Vim还支持标签页功能。用户可以将不同的文件放在不同的标签页中,通过切换标签页来快速切换到不同的文件。这使得在编辑多个文件时,界面更加清晰,文件管理更加方便。比如,在处理一个包含多个配置文件和代码文件的项目时,可以将每个文件放在单独的标签页,通过点击标签页快速定位到需要编辑的文件。

2. Vim的原理

2.1. 工作模式

2.1.1. 普通模式(Normal mode)

这是Vim启动后的默认模式。在这个模式下,键盘上的大部分按键都被定义为命令,而不是用来输入文本。例如,按下h键表示光标向左移动,j键表示光标向下移动等。这种设计使得用户可以通过快捷键快速进行光标移动、文本删除、复制等操作,大大提高了编辑效率。

快捷键功能描述
h光标向左移动一个字符
j光标向下移动一行
k光标向上移动一行
l光标向右移动一个字符
🌟gg跳转到文件的第一行
🌟G跳转到文件的最后一行
数字 + G跳转到指定行号的行,例如10G跳转到第10行
🌟i进入插入模式,在当前光标位置插入文本
🌟o进入插入模式,在光标所在行的下一行插入文本
O进入插入模式,在光标所在行的上一行插入文本
🌟x删除光标所在位置的字符
🌟dd删除光标所在的一整行
D删除从光标位置到行尾的文本
🌟yy复制光标所在的一行文本
🌟p粘贴复制的文本到光标所在位置的下一行
🌟u撤销上一次的编辑操作
Ctrl + r重做上一次撤销的编辑操作
🌟/查找文本查找文件中的文本内容,按回车键后光标会移动到找到的第一个匹配位置
🌟n查找下一个匹配项
🌟N查找上一个匹配项
🌟:w保存文件(在命令行模式下输入)
🌟:wq保存文件并退出Vim(在命令行模式下输入)
🌟:q退出Vim(如果文件有未保存的修改,会提示不能退出)(在命令行模式下输入)
🌟:q!强制退出Vim,不保存文件的修改(在命令行模式下输入)

🤔 𝑸𝒖𝒆𝒔𝒕𝒊𝒐𝒏:使用/查找模式后,按Enter开始搜索吗?如何退出呢?

🥳 𝑨𝒏𝒔𝒘𝒆𝒓:在Vim中使用/查找模式时,操作流程和退出方法如下:

  • 开始搜索

    1. 进入查找模式:在普通模式下,按下/键,这将使Vim进入查找模式。此时,Vim的底部会出现一个输入框,等待我们输入要查找的文本内容。
    2. 输入查找内容并回车:在底部的输入框中输入我们想要查找的文本,例如输入error来查找文档中所有的error文本。输入完成后,按下Enter键开始搜索。Vim会将光标移动到找到的第一个匹配位置,并且匹配的文本通常会高亮显示。
  • 退出查找模式:在完成查找操作后,有几种方法可以退出查找模式并返回到普通模式:

    1. Esc:直接按下Esc键可以退出查找模式,光标会停留在当前匹配位置,Vim回到普通模式。这是最直接的退出方式。
    2. Enter:如果我们已经查看了当前匹配项,并且想要快速回到普通模式,再次按下Enter键也可以退出查找模式。不过,这种方式可能会因Vim的配置或版本而有所不同,在某些情况下可能需要先按Esc键。
    3. 使用查找快捷键:在查找模式下,我们可以使用n键查找下一个匹配项,使用N键查找上一个匹配项。当我们通过这些键查看完所有匹配项后,按Esc键退出查找模式。这种方式在我们想要浏览所有匹配项时非常有用。

总之,使用/查找模式后,按Enter键开始搜索,通过按Esc键可以退出查找模式并返回到普通模式。在查找过程中,使用nN键可以方便地在匹配项之间切换。

🤔 𝑸𝒖𝒆𝒔𝒕𝒊𝒐𝒏:查找模式没有高亮怎么办?

🥳 𝑨𝒏𝒔𝒘𝒆𝒓:如果在Vim中使用查找模式时没有高亮显示,可以按照以下步骤解决:

  • 临时设置高亮显示

    1. 进入命令行模式:在普通模式下,按下 : 键进入命令行模式。
    2. 设置高亮显示:输入 set hlsearch 并按 Enter 键。这将使当前文档中的查找结果高亮显示。
  • 永久设置高亮显示

    1. 编辑 .vimrc 文件:打开终端,输入 vim ~/.vimrc 命令来编辑 .vimrc 文件。如果该文件不存在,Vim会自动创建一个。
    2. 添加高亮显示设置:在 .vimrc 文件中添加以下行:set hlsearch
    3. 保存并退出:按 Esc 键,然后输入 :wq 并按 Enter 键保存并退出。
  • 取消高亮显示

    1. 临时取消高亮显示:在命令行模式下,输入 :nohlsearch:noh 并按 Enter 键。这将临时取消当前文档中的查找结果高亮显示。

    2. 永久取消高亮显示:如果我们希望每次启动Vim时都不高亮显示查找结果,可以在 .vimrc 文件中添加以下行:set nohlsearch,保存并退出 .vimrc 文件。

2.1.2. 插入模式(Insert mode)

当用户需要输入文本时,需要从普通模式切换到插入模式。在插入模式下,键盘上的按键就像普通文本编辑器一样,用来输入字符。用户可以通过按i键从普通模式进入插入模式。例如,当我们需要在文档中添加一段新的文字描述时,就可以进入插入模式进行输入。

快捷键功能描述
🌟Esc退出插入模式,返回到普通模式
Ctrl + [同Esc键,退出插入模式,返回到普通模式
🌟Ctrl + o暂时退出插入模式,执行一个普通模式的命令后立即返回插入模式
Ctrl + u删除插入模式下当前行光标之前的内容
🌟Ctrl + w删除插入模式下光标前的一个单词
Ctrl + h删除插入模式下光标前的一个字符,相当于Backspace键
Ctrl + i插入一个Tab字符
🌟Ctrl + t在当前缩进级别上增加一个缩进(通常用于编程语言的代码缩进)
🌟Ctrl + d在当前缩进级别上减少一个缩进
Ctrl + r + 寄存器名插入寄存器中的内容,例如Ctrl + r + a插入寄存器a的内容
Ctrl + y在插入模式下,从普通模式复制的内容可以使用此快捷键粘贴到当前光标位置的上一行
Ctrl + e在插入模式下,从普通模式复制的内容可以使用此快捷键粘贴到当前光标位置的下一行
Ctrl + n在插入模式下,进行单词补全(向下匹配)
Ctrl + p在插入模式下,进行单词补全(向上匹配)

2.1.3. 可视模式(Visual mode)

可视模式用于选择文本。用户可以通过在普通模式下按v键进入普通可视模式,按V键进入行可视模式,按Ctrl - v键进入块可视模式。在可视模式下,可以通过移动光标来选择文本区域,然后对选中的文本进行复制、删除等操作。比如,要复制一段连续的代码,就可以先在可视模式下选中这段代码,然后使用复制命令。

快捷键功能描述
🌟v进入普通可视模式,可以选择任意文本
V进入行可视模式,可以选择整行
Ctrl + v进入块可视模式,可以选择列块
h向左扩展选择区域一个字符
j向下扩展选择区域一行
k向上扩展选择区域一行
l向右扩展选择区域一个字符
🌟gg扩展选择区域到文件的第一行
🌟G扩展选择区域到文件的最后一行
H扩展选择区域到屏幕的顶部
M扩展选择区域到屏幕的中间
L扩展选择区域到屏幕的底部
🌟0扩展选择区域到行首
^扩展选择区域到行首的第一个非空白字符
🌟$扩展选择区域到行尾
w扩展选择区域到下一个单词的开始
🌟e扩展选择区域到当前单词的末尾
b扩展选择区域到上一个单词的开始
gg0扩展选择区域到文件的开头
G$扩展选择区域到文件的末尾
o跳转到选择区域的另一端
O跳转到选择区域的另一端,并保持光标在行首
:进入命令行模式,对选中的文本执行命令,如 :s/old/new/ 替换选中的文本
🌟d删除选中的文本
c修改选中的文本,进入插入模式
🌟y复制选中的文本到默认寄存器
🌟p粘贴寄存器中的内容到选中的文本位置
🌟u撤销对选中区域的上一次操作
Ctrl + r重做对选中区域的上一次撤销操作
🌟Esc退出可视模式,返回到普通模式

🤔 𝑸𝒖𝒆𝒔𝒕𝒊𝒐𝒏:如果我想任意复制,是不是应该用可视模式?

🥳 𝑨𝒏𝒔𝒘𝒆𝒓:是的,如果我们需要任意选择并复制文本,使用可视模式(Visual mode)会更加灵活和直观。可视模式允许我们通过移动光标来选择文本区域,然后进行复制、删除、修改等操作。

假设我们有以下文本:

Hello world, this is a test.
This is another line of text.
  1. 进入普通可视模式

    • 将光标移动到 world 这个单词的任意位置。
    • v 进入普通可视模式。
  2. 选择文本

    • w 选择 world,
    • w 再次选择 this
    • e 选择 is
  3. 复制选中的文本

    • y 复制选中的文本 world, this is 到默认寄存器。
  4. 退出可视模式

    • Esc 退出可视模式,返回到普通模式。
  5. 粘贴文本

    • 将光标移动到我们想要粘贴的位置。
    • p 粘贴选中的文本。

通过使用可视模式,我们可以非常灵活地选择任意文本区域,并进行复制、删除、修改等操作。这使得文本编辑更加直观和高效。

2.1.4. 命令行模式(Command - line mode)

在命令行模式下,用户可以输入Vim的命令行命令。通过在普通模式下按:键可以进入命令行模式。例如,要保存文件,可以在命令行模式下输入:w命令;要退出Vim,可以输入:q命令。命令行模式是Vim进行复杂操作和配置的重要入口。

快捷键功能描述
🌟:从普通模式进入命令行模式
🌟Esc从命令行模式返回到普通模式,不执行当前输入的命令
Ctrl + c从命令行模式返回到普通模式,不执行当前输入的命令(与 Esc 相同效果)
Ctrl + u清除命令行中已输入的内容
Ctrl + w删除命令行中光标前的一个单词
Ctrl + h删除命令行中光标前的一个字符(相当于 Backspace 键)
Ctrl + r在命令行中插入寄存器的内容,例如 Ctrl + r + a 插入寄存器 a 的内容
Ctrl + y在命令行中插入上一个命令行历史中的内容
Ctrl + n在命令行中插入下一个命令行历史中的内容
Ctrl + p在命令行中插入上一个命令行历史中的内容(与 Ctrl + y 相同效果)
Ctrl + e将光标移动到命令行的末尾
Ctrl + a将光标移动到命令行的开头
Up浏览命令行历史,显示上一个命令
Down浏览命令行历史,显示下一个命令
Enter执行命令行中输入的命令
Tab自动补全命令行中的命令或文件名
🌟:%s/旧文本/新文本/替换文本(一次)
🌟:%s/旧文本/新文本/g替换文本(全部)

⚠️在替换文本的操作下,如果提示模式错误,请使用:%s/旧文本/新文本/

假设你有以下文本:

Hello world, this is a test.
This is another line of text.
This is a third line.
This is a fourth line.
This is a fifth line.
  1. 进入命令行模式

    • : 键进入命令行模式。
  2. 输入命令

    • 输入 :w 保存文件。
    • 输入 :q 退出Vim。
    • 输入 :wq 保存文件并退出Vim。
    • 输入 :s/old/new/ 替换文件中的文本。
  3. 使用快捷键

    • Ctrl + u 清除已输入的命令。
    • Ctrl + w 删除光标前的一个单词。
    • Ctrl + h 删除光标前的一个字符。
    • UpDown 浏览命令行历史。
    • Enter 执行当前输入的命令。

2.2. 缓冲区和寄存器

2.2.1. 缓冲区(Buffer)

Vim内部使用缓冲区来存储打开的文件内容。每个打开的文件都有一个对应的缓冲区。当用户对文件进行编辑时,实际上是修改缓冲区中的内容。只有当用户执行保存操作时,缓冲区中的内容才会写入到磁盘上的文件中。这种设计使得编辑操作更加灵活,用户可以在编辑过程中随时进行撤销、重做等操作,而不用担心文件内容的丢失。

2.2.2. 寄存器(Register)

寄存器用于存储文本片段,方便用户在编辑过程中进行复制、粘贴等操作。Vim有多个寄存器,包括默认寄存器、命名寄存器等。例如,当用户使用yy命令(在普通模式下)复制一行文本时,复制的文本会被存储到默认寄存器中。然后,用户可以通过p命令(粘贴命令)将寄存器中的内容粘贴到其他位置。寄存器的使用使得文本的移动和复制更加高效。

3. Vim的常用方法

3.1. 文件操作

3.1.1. 打开文件

使用命令vim 文件名可以在终端中打开指定的文件。如果文件不存在,Vim会创建一个新文件。例如,要打开一个名为example.txt的文件,就在终端输入:

# 使用vim打开文件,语法为:vim <filepath>
vim example.txt

3.1.2. 保存文件

在命令行模式下,输入:w命令可以保存文件。如果要保存文件并退出Vim,可以输入:wq命令。如果只是想退出Vim而不保存文件,可以输入:q!命令。这些命令使得文件的保存和退出操作非常灵活。

# 保存内容(不退出)
:w# 保存并退出
:wq# 没有对文件修改,直接退出
:q# 不保存强制退出
:q!

3.1.3. 查看文件内容

在普通模式下,可以通过移动光标来查看文件内容。使用h, j, k, l键可以分别实现光标向左、向下、向上、向右移动。还可以使用gg命令跳转到文件的第一行,G命令跳转到文件的最后一行,快速浏览文件的开头和结尾。

3.2. 文本编辑

3.2.1. 插入文本

在普通模式下,按i键进入插入模式,就可以开始输入文本。如果要从当前光标位置的下一行开始输入文本,可以按o键;要从当前光标位置的上一行开始输入文本,可以按O键。这些命令使得文本的插入位置更加精确。

3.2.2. 删除文本

在普通模式下,按x键可以删除光标所在位置的字符。按dd键可以删除光标所在的一整行。如果要删除从光标位置到行尾的文本,可以按D键。这些删除命令可以根据需要删除不同范围的文本。

3.2.3. 复制和粘贴文本

yy键可以复制光标所在的一行文本,按p键可以将复制的文本粘贴到光标所在位置的下一行。如果要复制多行文本,可以先按数字键指定行数,再按yy键。例如,3yy表示复制光标所在位置的当前行以及下面的两行。然后使用p键粘贴这些文本。

3.3. 查找和替换

3.3.1. 查找文本

在普通模式下,按/键可以进入查找模式,然后输入要查找的文本内容,按回车键进行查找。Vim会高亮显示找到的文本内容,并将光标移动到找到的第一个匹配位置。按n键可以查找下一个匹配项,按N键可以查找上一个匹配项。这种查找功能非常方便,可以帮助用户快速定位到文件中特定的文本内容。

3.3.2. 替换文本

在命令行模式下,可以使用:s/旧文本/新文本/命令来替换文本。这个命令会将当前行中第一个匹配的旧文本替换为新文本。如果要替换整行中的所有匹配项,可以使用:s/旧文本/新文本/g命令。例如,:s/dog/cat/会将当前行中的第一个dog替换为cat:s/dog/cat/g会将当前行中所有的dog都替换为cat

# 替换一次
:%s/旧文本/新文本/# 全部替换
:%s/旧文本/新文本/g

⚠️在替换文本的操作下,如果提示模式错误,请使用:%s/旧文本/新文本/

4. Vim的快捷键

4.1. 普通模式快捷键

  • 光标移动
    • h:光标向左移动一个字符。
    • j:光标向下移动一行。
    • k:光标向上移动一行。
    • l:光标向右移动一个字符。
    • gg:跳转到文件的第一行。
    • G:跳转到文件的最后一行。
    • 数字 + G:跳转到指定行号的行。例如,10G跳转到第10行。
  • 文本编辑
    • i:进入插入模式,在当前光标位置插入文本。
    • o:进入插入模式,在光标所在行的下一行插入文本。
    • O:进入插入模式,在光标所在行的上一行插入文本。
    • x:删除光标所在位置的字符。
    • dd:删除光标所在的一整行。
    • D:删除从光标位置到行尾的文本。
    • yy:复制光标所在的一行文本。
    • p:粘贴复制的文本到光标所在位置的下一行。
    • u:撤销上一次的编辑操作。
    • Ctrl + r:重做上一次撤销的编辑操作。

4.2. 命令行模式快捷键

  • 文件操作

    • :w:保存文件。
    • :wq:保存文件并退出Vim。
    • :q:退出Vim(如果文件有未保存的修改,会提示不能退出)。
    • :q!:强制退出Vim,不保存文件的修改。
  • 查找和替换

    • /查找文本:查找文件中的文本内容,按回车键后光标会移动到找到的第一个匹配位置。
    • n:查找下一个匹配项。
    • N:查找上一个匹配项。
    • :s/旧文本/新文本/:替换当前行中第一个匹配的旧文本为新文本。
    • :s/旧文本/新文本/g:替换当前行中所有匹配的旧文本为新文本。

    ⚠️在替换文本的操作下,如果提示模式错误,请使用:%s/旧文本/新文本/

5. 参考

  1. KIMI

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

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

相关文章

OpenCV基础:矩阵的创建、检索与赋值

本文主要是介绍如何使用numpy进行矩阵的创建&#xff0c;以及从矩阵中读取数据&#xff0c;修改矩阵数据。 创建矩阵 import numpy as npa np.array([1,2,3]) b np.array([[1,2,3],[4,5,6]]) #print(a) #print(b)# 创建全0数组 eros矩阵 c np.zeros((8,8), np.uint8) #prin…

Unreal Engine 5 (UE5) Metahuman 的头部材质

在图中&#xff0c;你展示了 Unreal Engine 5 (UE5) Metahuman 的头部材质部分&#xff0c;列出了头部材质的多个元素。以下是对每个部分的解释&#xff1a; 材质解释 Element 0 - MI_HeadSynthesized_Baked 作用&#xff1a; 这是 Metahuman 的主要头部材质&#xff0c;控制整…

鸿蒙中自定义slider实现字体大小变化

ui&#xff1a; import { display, mediaquery, router } from kit.ArkUI import CommonConstants from ./CommonConstants; import PreferencesUtil from ./PreferencesUtil; import StyleConstants from ./StyleConstants;// 字体大小 Entry Component struct FontSize {Sta…

LabVIEW智能水肥一体灌溉控制系统

本文详细介绍了一种基于LabVIEW的智能水肥一体灌溉控制系统的设计与实现。该系统采用模糊控制策略&#xff0c;能够自动调节土壤湿度和肥液浓度&#xff0c;满足不同作物在不同生长阶段的需求&#xff0c;有效提高水肥利用效率&#xff0c;对现代精准农业具有重要的实践和推广价…

【高可用自动化体系】自动化体系

架构设计的愿景就是高可用、高性能、高扩展、高效率。为了实现架构设计四高愿景&#xff0c;需要实现自动化系统目标&#xff1a; 标准化。 流程自助化。 可视化&#xff1a;可观测系统各项指标、包括全链路跟踪。 自动化&#xff1a;ci/cd 自动化部署。 精细化&#xff1a…

Docker与虚拟机的区别及常用指令详解

在现代软件开发中&#xff0c;容器化和虚拟化技术已经成为不可或缺的工具。Docker和虚拟机&#xff08;VM&#xff09;是两种常见的技术&#xff0c; 它们都可以帮助开发者在不同的环境中运行应用程序。然而&#xff0c;它们的工作原理和使用场景有很大的不同。本文将详细探讨D…

【JVM-2.3】深入解析JVisualVM:Java性能监控与调优利器

在Java应用的开发和运维过程中&#xff0c;性能监控与调优是不可或缺的环节。无论是排查内存泄漏、分析CPU瓶颈&#xff0c;还是优化线程使用&#xff0c;开发者都需要借助一些强大的工具来辅助诊断。JVisualVM 正是这样一款由Oracle提供的免费工具&#xff0c;它集成了多种性能…

简聊MySQL并发事务中幻读、虚读问题的解决方案

在MySQL数据库中&#xff0c;事务的幻读和虚读问题是并发控制中的关键挑战。以下是针对这两个问题的解决方案及原理说明&#xff0c;并附上相关示例。 一、幻读问题及其解决方案 幻读问题的定义 幻读是指一个事务在前后两次查询同一个范围的时候&#xff0c;后一次查询看到了…

WINFORM - DevExpress -> gridcontrol ---->控件(ColumnEdit控件)

ImageComboBoxEdit--带图片的下拉菜单 DevExpress&#xff1a;带图片的下拉菜单ImageComboBoxEdit_weixin_34313182的博客-CSDN博客 ImageEdit--图片按钮 DevExpress控件中的gridcontrol表格控件&#xff0c;如何在属性中设置某一列显示为图片&#xff08;图片按钮&#xff…

IntelliJ IDEA Type Hierarchy Scope Pattern 学习指南

IntelliJ IDEA Type Hierarchy Scope Pattern 学习指南 什么是 Type Hierarchy&#xff1f; Type Hierarchy 是 IntelliJ IDEA 提供的一个工具&#xff0c;允许开发者查看某个类的继承关系及其实现的接口结构。它是理解类关系的重要工具&#xff0c;尤其在处理复杂的继承体系…

分布式ID的实现方案

1. 什么是分布式ID ​ 对于低访问量的系统来说&#xff0c;无需对数据库进行分库分表&#xff0c;单库单表完全可以应对&#xff0c;但是随着系统访问量的上升&#xff0c;单表单库的访问压力逐渐增大&#xff0c;这时候就需要采用分库分表的方案&#xff0c;来缓解压力。 ​…

Python爬虫-汽车之家各车系周销量榜数据

前言 本文是该专栏的第43篇,后面会持续分享python爬虫干货知识,记得关注。 在本专栏之前,笔者在文章《Python爬虫-汽车之家各车系月销量榜数据》中,有详细介绍,如何爬取“各车系车型的月销量榜单数据”的方法以及完整代码教学教程。 而本文,笔者同样以汽车之家平台为例,…

Unity-Mirror网络框架-从入门到精通之RigidbodyBenchmark示例

文章目录 前言示例代码逻辑测试结论性能影响因素最后前言 在现代游戏开发中,网络功能日益成为提升游戏体验的关键组成部分。本系列文章将为读者提供对Mirror网络框架的深入了解,涵盖从基础到高级的多个主题。Mirror是一个用于Unity的开源网络框架,专为多人游戏开发设计,它…

【STM32-学习笔记-7-】USART串口通信

文章目录 USART串口通信Ⅰ、硬件电路Ⅱ、常见的电平标准Ⅲ、串口参数及时序Ⅳ、STM32的USART简介数据帧起始位侦测数据采样波特率发生器 Ⅴ、USART函数介绍Ⅵ、USART_InitTypeDef结构体参数1、USART_BaudRate2、USART_WordLength3、USART_StopBits4、USART_Parity5、USART_Mode…

Linux简介和环境搭建

Linux 介绍和环境搭建 1、发行版本 Linux 操作系统有多个主流发行版本&#xff0c;每个版本根据不同的目标、特点和使用场景为用户提供了不同的功能和体验。 Ubuntu • 特点&#xff1a;Ubuntu 是最为人熟知的 Linux 发行版之一&#xff0c;强调易用性和用户友好性&#xff…

代码随想录刷题day07|(数组篇)58.区间和

目录 一、数组理论基础 二、前缀和 三、相关算法题目 四、总结 五、待解决问题 一、数组理论基础 数组是存放在连续内存空间上的相同类型数据的集合。 代码随想录 (programmercarl.com) 特点&#xff1a; 1.下标从0开始&#xff0c;内存中地址空间是连续的 2.查询快&…

多模态论文笔记——CLIP

大家好&#xff0c;这里是好评笔记&#xff0c;公主号&#xff1a;Goodnote&#xff0c;专栏文章私信限时Free。本文详细介绍这几年AIGC火爆的隐藏功臣&#xff0c;多模态模型&#xff1a;CLIP。 文章目录 CLIP&#xff08;Contrastive Language-Image Pre-training&#xff09…

【论文笔记】SmileSplat:稀疏视角+pose-free+泛化

还是一篇基于dust3r的稀疏视角重建工作&#xff0c;作者联合优化了相机内外参与GS模型&#xff0c;实验结果表明优于noposplat。 abstract 在本文中&#xff0c;提出了一种新颖的可泛化高斯方法 SmileSplat&#xff0c;可以对无约束&#xff08;未标定相机的&#xff09;稀疏多…

Linux学习day2

经过上次我们完成了linux云服务器的安装&#xff0c;今天我们学习一些linux基本指令&#xff0c;是我们使用linux系统的基础 思考&#xff1a;输入指令&#xff0c;让操作系统执行&#xff0c;其实是在做什么呢&#xff1f; Linux环境中&#xff0c;做类似于windows的操作。l…

给DevOps加点料:融入安全性的DevSecOps

从前&#xff0c;安全防护只是特定团队的责任&#xff0c;在开发的最后阶段才会介入。当开发周期长达数月、甚至数年时&#xff0c;这样做没什么问题&#xff1b;但是现在&#xff0c;这种做法现在已经行不通了。 采用 DevOps 可以有效推进快速频繁的开发周期&#xff08;有时…