Vim编辑器使用入门
目录
一、Vim 编辑器基础操作
二、Vim 编辑器进阶操作
三、Vim 编辑器高级操作
四、Vim 编辑器文件操作
五、Vim 编辑器文件管理
六、Vim 编辑器进阶技巧
七、Vim 编辑器增强功能
Vim的三种工作模式
一、Vim 编辑器基础操作
1.移动光标 - 光标的移动控制
移动光标有两种按键,一种是键盘的方向键,另一种是h j k l四个按键
2.Vim 进入和退出 - 进入和退出 Vim 编辑器
2.1 vim的进入,在终端输入vim 即可进入vim编辑器
2.2 vim的退出有两种,一种是保存操作并退出,一种是不保存操作并退出。
在ESC后正常模式下,分别输入以下快捷键实现退出
操作方式 | 快捷键 | 描述 |
---|---|---|
保存并退出 | :wq 或 ZZ | 保存当前文件并退出 Vim 编辑器 |
不保存而退出 | :q! | 不保存当前文件的修改并强制退出 Vim 编辑器 |
3.文本的编辑-删除 - 删除文本操作
文本删除操作步骤
1.请将光标移动到本节中下面标记有 一的那一行。
2.为了修正输入错误,请将光标移至准备刑除的字符的位置处。
3.然后按下 x 键将错误字符制除掉
删除命令 | 快捷键 | 描述 |
---|---|---|
x | x | 删除光标所在位置的一个字符 |
4.文本编辑-插入 - 插入文本操作
操作步骤
1.请将光标移动到本节中下面标记有的第一行
2.为了使得第一行内容雷同于第二行,请将光标移至文本第一个准备插入字符的位置。
3.然后按下 i键,接着输入必要的文本字符。
每个错误修正完毕后,请按下 <ESC>键返回正常模式重复步骤2至步骤4以便修正句子
插入命令 | 快捷键 | 描述 |
---|---|---|
i | i | 在光标前插入文本 |
I | I | 在当前行的行首插入文本 |
5.文本编辑-添加 - 添加文本操作
操作步骤
1.光标放在那一行的某个字符上。
2.按 A键输入必要的添加内容。
3.文本添加完毕后,按 <ESC> 键回到正常模式
4.移动光标到下面第二个标记有 的一行。重复步骤2和步骤3以改正这个句子
添加命令 | 快捷键 | 描述 |
---|---|---|
a | a | 在光标后添加文本 |
A | A | 在当前行的行尾添加文本 |
第一讲小结 - 对 Vim 编辑器基础操作进行总结回顾。
二、Vim 编辑器进阶操作
1.删除命令 - 基本删除命令的使用
操作步骤
1.请按下 <ESC>键确保您处于正常模式
2.请将光标移动到本节中下面标记有>的那一行。
3.请将光标移至准备要删除的单词的起始处。
4.接着输入 dw 删除掉该单词
步骤编号 | 操作命令 | 操作描述 |
---|---|---|
1 | dw | 删除从光标所在位置到下一个单词开头的文本(包括) |
2. 更多类删除命令 - 扩展的删除命令选项
操作步骤:
- 请按下
<ESC>
键确保您处于正常模式。 - 请将光标移动到本节中下面标记有
>
的那一行。 - 请将光标移至准备要删除的单词或字符的起始处。
- 输入相应的命令进行删除操作。
操作列表:
操作命令 | 操作描述 |
---|---|
x | 删除光标所在位置的字符 |
X | 删除光标前一位置的字符 |
dd | 删除整行文本 |
D | 删除光标到行末之间的所有内容 |
:1,$d | 删除整个文档的所有文本(输入该命令后,请按 Enter 键确认操作) |
u | 撤销上一次执行的删除操作 |
3. 关于命令和对象 - 命令和操作对象的关系
操作步骤:
- 请按下
<ESC>
键确保您处于正常模式。 - 请将光标移动到本节中下面标记有
>
的那一行。 - 请将光标移至想要操作的对象所在处。
- 输入对应的命令进行操作。
操作列表:
操作命令 | 操作描述 |
---|---|
diw | 删除光标所在处的单词 |
da( | 删除括号内的所有内容 |
ciw | 更改光标所在处的单词 |
daw | 删除光标所在处的单词以及其后面的空格 |
cw | 更改光标所在处的单词以及其后面的空格 |
4. 使用计数指定工作 - 使用计数来指定删除的数量或范围
操作步骤:
- 请按下
<ESC>
键确保您处于正常模式。 - 请将光标移动到本节中下面标记有
>
的那一行。 - 请将光标移至想要操作的起始处。
- 输入计数数字,再输入对应的命令进行操作。
操作列表:
操作命令 | 操作描述 |
---|---|
2dw | 删除光标所在位置的单词以及其后面的单词,共计2个 |
3dd | 删除光标所在行及其下面的连续两行,共计3行 |
5. 使用计数以删除更多 - 进一步利用计数来执行更多删除操作
操作步骤:
- 请按下
<ESC>
键确保您处于正常模式。 - 请将光标移动到本节中下面标记有
>
的那一行。 - 请将光标移至想要操作的起始处。
- 输入计数数字,再输入对应的命令进行操作。
操作列表:
操作命令 | 操作描述 |
---|---|
d2w | 删除光标所在位置的单词以及其后面的单词,共计2个 |
d3d | 删除光标所在行及其下面的连续两行,共计3行 |
6. 操作整行 - 对整行进行操作
操作步骤:
- 请按下
<ESC>
键确保您处于正常模式。 - 请将光标移动到本节中下面标记有
>
的那一行。 - 将光标移至任意一行(对整行进行操作)。
- 输入对应的命令进行操作。
操作列表:
操作命令 | 操作描述 |
---|---|
dd | 删除当前行 |
cc | 更改当前行(等同于 dd + i ) |
yy | 复制当前行 |
p | 在光标下方粘贴被复制或剪切的内容 |
u | 撤销上一次操作 |
7. 撤销类命令 - 撤销操作及撤销历史记录
操作步骤:
- 进入Vim编辑器,并确保处于正常模式。
- 按下
u
键,执行撤销操作。这将撤销上一次的编辑操作,恢复到之前的状态。 - 如果您想一次性撤销多个编辑操作,可以按住
Ctrl + r
键来重做(反撤销)动作。
操作列表:
操作命令 | 操作描述 |
---|---|
u | 撤销上一次操作 |
Ctrl+r | 恢复被撤销的操作(反撤销) |
第二讲小结 - 对 Vim 编辑器进阶操作进行总结回顾。
三、Vim 编辑器高级操作
1. 置入类命令 - 将文本插入到指定位置
操作步骤:
- 请按下
<ESC>
键确保您处于正常模式。 - 将光标移动到想要插入文本的位置。
- 输入
i
进入插入模式。 - 输入您想要插入的文本内容。
- 按下
<ESC>
键退出插入模式。
操作列表:
操作命令 | 操作描述 |
---|---|
i | 在光标前插入文本 |
a | 在光标后插入文本 |
I | 在行首插入文本 |
A | 在行末插入文本 |
o | 在当前行下方插入行 |
O | 在当前行上方插入行 |
2. 替换类命令 - 替换文本内容
操作步骤:
- 请按下
<ESC>
键确保您处于正常模式。 - 将光标移动到要替换的文本的起始位置。
- 输入
r
进入替换模式。 - 输入您要替换成的新字符。
- 按下
<ESC>
键退出替换模式。
操作命令 | 操作描述 |
---|---|
r | 替换光标所在处的字符 |
R | 连续替换光标所在位置字符 |
3. 更改类命令 - 修改文本内容
操作步骤:
-
请按下
<ESC>
键确保您处于正常模式。 -
将光标移动到要修改的文本的起始位置。
-
按下下列命令之一来执行修改操作:
cw
:更改光标所在处的单词。caw
:更改光标所在处的单词以及其后面的空格。ciw
:更改光标所在处的单词,不包括其后面的空格。c$
:更改从光标位置到行末的所有内容。
-
输入您要替换成的新文本。
-
按下
<ESC>
键退出修改模式。
操作命令 | 操作描述 |
---|---|
cw | 更改光标所在处的单词 |
caw | 更改光标所在处的单词以及其后面的空格 |
ciw | 更改光标所在处的单词,不包括其后面的空格 |
c$ | 更改从光标位置到行末的所有内容 |
4. 使用 c 更改更多 - 进一步利用 "c" 操作符来执行更多修改操作
操作步骤:
- 请按下
<ESC>
键确保您处于正常模式。 - 将光标移动到要修改的文本的起始位置。
- 输入计数数字,指定要修改的字符数量。
- 输入
c
进入更改模式。 - 输入您要替换成的新文本。
- 按下
<ESC>
键退出修改模式。
操作命令 | 操作描述 |
---|---|
c2w | 更改光标所在位置和下一个单词,共 2 个 |
c3j | 删除光标所在行及以下连续两行,共计 3 行 |
第三讲小结 - 对 Vim 编辑器高级操作进行总结回顾。
四、Vim 编辑器文件操作
1. 定位及文件状态 - 定位光标和查看文件状态
操作步骤:
-
请按下
<ESC>
键确保您处于正常模式。 -
输入
:
进入命令行模式。 -
输入以下命令之一来执行相应的操作:
set number
:显示行号。set nonumber
:隐藏行号。set cursorline
:高亮当前行。set nocursorline
:取消高亮当前行。set cursorcolumn
:高亮当前列。set nocursorcolumn
:取消高亮当前列。
-
按下
<ENTER>
键执行命令。
操作列表:
命令 | 作用 |
---|---|
set number | 显示行号 |
set nonumber | 隐藏行号 |
set cursorline | 高亮当前行 |
set nocursorline | 取消高亮当前行 |
set cursorcolumn | 高亮当前列 |
set nocursorcolumn | 取消高亮当前列 |
gg | 跳转至文档首部(第一行) |
G | 跳转至文档尾部(最后一行) |
:n | 跳转至第 n 行 |
Ctrl+G | 显示光标位置、文件名、文件状态等信息 |
u | 撤销上一个操作 |
Ctrl+R | 重做上一个操作,恢复被撤销的更改 |
. | 重复执行上一个编辑操作 |
2. 搜索类命令 - 在文件中执行搜索操作
操作步骤:
- 请按下
<ESC>
键确保您处于正常模式。 - 输入
/
进入搜索模式。 - 输入您要搜索的文本内容。
- 按下
<ENTER>
键开始搜索。 - 使用
n
命令查找下一个匹配项,使用N
命令查找上一个匹配项。
操作列表:
命令 | 作用 |
---|---|
/text | 向后查找 "text" |
?text | 向前查找 "text" |
n | 查找下一个匹配项 |
N | 查找上一个匹配项 |
:nohlsearch | 取消当前的高亮显示 |
3. 配对括号寻找 - 查找和操作配对的括号
操作步骤:
- 请按下
<ESC>
键确保您处于正常模式。 - 将光标移动到任意一个括号上。
- 输入
%
命令执行查找和操作。 - 如果光标位于左括号上,则会跳转到右括号;如果光标位于右括号上,则会跳转到左括号。
操作列表:
命令 | 作用 |
---|---|
% | 查找和操作匹配的括号 |
( | 查找上一个句子的开头 |
) | 查找下一个句子的开头 |
{ | 查找上一个段落的开头 |
} | 查找下一个段落的开头 |
[[ | 查找上一个函数或代码块的开头 |
]] | 查找下一个函数或代码块的开头 |
[] | 查找和操作匹配括号,建议使用 % 命令 |
4. 替换命令 - 执行替换操作
操作步骤:
操作列表:
命令 | 作用 |
---|---|
:%s/old/new/g | 替换整个文件中的所有匹配项 |
:s/old/new/g | 替换当前行中的所有匹配项 |
:n,ms/old/new/g | 替换第 n 到第 m 行中的所有匹配项 |
:%s/old/new/gc | 替换整个文件中的所有匹配项,并询问用户 |
:s/old/new/gc | 替换当前行中的所有匹配项,并询问用户 |
-
请按下
<ESC>
键确保您处于正常模式。 -
输入
:
进入命令行模式。 -
输入以下命令之一,执行相应的替换操作:
:%s/old/new/g
:替换整个文件中的所有匹配项。:s/old/new/g
:替换当前行中的所有匹配项。:n,ms/old/new/g
:替换第 n 到第 m 行中的所有匹配项。:%s/old/new/gc
:替换整个文件中的所有匹配项,并在每次替换时询问用户是否确认操作。:s/old/new/gc
:替换当前行中的所有匹配项,并在每次替换时询问用户是否确认操作。
-
按下
<ENTER>
键执行命令。
第四讲小结 - 对 Vim 编辑器文件操作进行总结回顾。
五、Vim 编辑器文件管理
1. 在 Vim 内部执行外部命令
操作步骤:
- 请按下
<ESC>
键确保您处于正常模式。 - 输入
:
进入命令行模式。 - 输入
!
后面跟上您想要执行的外部命令,并按下<ENTER>
键。
例如,要查看当前目录中的文件列表,可以执行以下命令:
:!ls
这将运行ls
命令并显示结果。
2. 保存文件时的一些额外选项
在保存文件时,Vim提供了一些额外选项来进行更高级的操作。下面是一些常用的选项:
:w
:保存文件。如果文件不存在,则另存为。:w filename
:将文件另存为指定的文件名。:w!
:强制保存文件,即使文件只读或没有写权限。:saveas filename
:将当前文件另存为指定的文件名,并切换到新文件。:wall
:保存所有打开的窗口中的文件。:wnext
:保存当前文件并跳转到下一个文件。:wprev
:保存当前文件并跳转到上一个文件。
这些选项可以根据您的需求在保存文件时进行选择。
3. 执行有选择性的保存操作
要执行有选择性的保存操作,可以使用以下操作步骤:
例如,要只保存第10到20行的内容,可以执行以下命令:
:10,20w filename
这将保存第10到20行的内容到指定的文件名中。
4. 提取和合并不同文件的内容
要提取和合并不同文件的内容,可以使用以下操作步骤:
这样,您就可以从一个文件中提取内容,并将其合并到另一个文件中。
- 请按下
<ESC>
键确保您处于正常模式。 - 输入
:
进入命令行模式。 - 输入
w
命令来保存文件,然后在其后添加一个文件名或范围来指定要保存的内容。 - 使用
:e filename
命令打开第一个文件。 - 在文件中移动光标,选择要提取的内容。
- 按下
v
进入可视模式,并使用移动键选择要提取的文本块。 - 按下
y
复制选择的文本块。 - 切换到第二个文件,使用
:e filename
命令打开它。 - 在目标位置插入光标,并按下
p
将复制的内容粘贴到该位置。
六、Vim 编辑器进阶技巧
1. 打开类命令 - 打开其他文件或查看缓冲区列表
-
操作步骤:
- 进入Vim编辑器。
- 进入命令行模式,按下冒号键
:
。 - 输入相应的命令。
- 按下回车键执行命令。
操作表格:
操作 | 命令 |
---|---|
打开指定文件 | :e 文件名 |
重新加载当前文件 | :e! |
查看缓冲区列表 | :ls |
切换到下一个缓冲区 | :bnext |
切换到上一个缓冲区 | :bprev |
2. 附加类命令 - 附加到其他窗口或标签页
操作步骤:
- 进入Vim编辑器。
- 进入命令行模式,按下冒号键
:
。 - 输入相应的命令。
- 按下回车键执行命令。
操作表格:
操作 | 命令 |
---|---|
水平拆分新窗口 | :sp |
垂直拆分新窗口 | :vsp |
在新的标签页中打开文件 | :tabe 文件名 |
3. 另外一个置换类命令的版本 - 另一种方式的置换类命令
操作步骤:
- 进入Vim编辑器。
- 进入命令行模式,按下冒号键
:
。 - 输入相应的命令。
- 按下回车键执行命令。
操作表格:
操作 | 命令 |
---|---|
替换当前行中第一个匹配到的内容 | :s/旧内容/新内容 |
替换整个文件中所有匹配的内容 | :%s/旧内容/新内容/g |
在替换之前提示确认并选择是否替换 | :s/旧内容/新内容/gc |
4. 复制粘贴文本 - 复制和粘贴文本操作
操作步骤:
- 进入Vim编辑器。
- 将光标移动到要复制的文本上。
- 进入可视模式,按下
v
键。 - 使用移动键选择要复制的文本块。
- 按下
y
键复制选择的文本块。 - 将光标移动到要粘贴的位置。
- 按下
p
键将复制的内容粘贴到该位置。
5. 设置类命令的选项 - 配置和修改设置类命令的选项
操作步骤:
操作表格:
操作 | 命令 |
---|---|
将选项设置为指定的值 | :set 选项=值 |
禁用选项 | :set no选项 |
显示当前选项的值 | :set 选项? |
- 进入Vim编辑器。
- 进入命令行模式,按下冒号键
:
。 - 输入相应的命令。
- 按下回车键执行命令。
第六讲小结 - 对 Vim 编辑器进阶技巧进行总结回顾。
七、Vim 编辑器增强功能
2. 创建启动脚本 - 编写并使用启动脚本
要创建和使用启动脚本来配置Vim编辑器的行为,您可以按照以下步骤操作:
您还可以在 ~/.vim/
目录下创建其他启动脚本,例如 vim ~/.vim/plugin/myplugin.vim
,这些启动脚本将在Vim启动时自动加载。
3. 补全功能 - 使用补全功能提高编辑效率
Vim编辑器提供了补全功能,可以帮助您快速输入和完成代码、路径等内容。要使用补全功能,请按照以下步骤操作:
补全功能可以根据当前文件类型和您的配置进行智能补全,提高编辑效率和准确性。
-
1. 获取帮助类信息 - 查找获取帮助相关信息
在Vim编辑器中,您可以通过以下方式获取帮助信息:
- 输入命令
:help
,然后按回车键,将打开Vim的帮助文档。您可以使用搜索功能查找特定的主题,例如:help 搜索
。 - 若要获取有关特定命令或选项的帮助,请将光标放在该命令或选项上,然后按下
K
键(或者按住Shift
键并双击鼠标左键)即可显示相关帮助。 - 在终端或命令提示符下,使用文本编辑器创建一个新文件,例如
vim ~/.vimrc
。 - 在该文件中编写Vim配置命令,例如设置选项、定义快捷键等。例如,如果要启用行号显示,可以添加
set number
。 - 保存并关闭文件。
- 重新启动Vim编辑器,您将看到应用了启动脚本中的配置。
- 在插入模式下,输入部分内容(例如函数名、文件路径等)。
- 按下
Ctrl + N
(向后补全)或Ctrl + P
(向前补全)触发补全功能。如果有多个匹配项,可以继续按下相应的快捷键进行选择。 - 选中所需的补全项后,按下
Enter
键插入补全内容。
第七讲小结 - 对 Vim 编辑器增强功能进行总结回顾。
相关文章:
Vim编辑器使用入门
目录 一、Vim 编辑器基础操作 二、Vim 编辑器进阶操作 三、Vim 编辑器高级操作 四、Vim 编辑器文件操作 五、Vim 编辑器文件管理 六、Vim 编辑器进阶技巧 七、Vim 编辑器增强功能 Vim的三种工作模式 一、Vim 编辑器基础操作 1.移动光标 - 光标的移动控制 移动光标有两…...
早餐与风景
来吧,我用流水账描述下这一天。 时维九月,北京的早上有点冷,因为今天有个市场活动要去支撑,按照会议时间的要求,我需要在早上7点半就赶到会场,所以昨天晚上我加班到凌晨处理完了今天要给出去的材料…...
常用python代码串
记录新疆出差期间的一些代码 打开yaml文件python中的专有名词ctrlc 打开yaml文件 with open(/home/cyun/文档/cotton_ws/src/control/scripts/ControlParameter.yaml, r) as file:yaml_data yaml.load(file, Loaderyaml.FullLoader)后面发现像这种打开文件的最好是try一下 p…...
电脑桌面透明便签软件是哪个?
在现代快节奏的工作环境中,许多上班族都希望能够在电脑桌面上方便地记录工作资料、重要事项、工作流程等内容。为了解决这个问题,一款优秀的电脑桌面便签软件是必不可少的。在选择桌面便签软件时,许多用户也希望便签软件能够与电脑桌面壁纸相…...
Git创建干净分支,本地操作不依赖任何分支
clone远程项目: git clone gittest.git查看分支: git branch -a创建新分支: git checkout --orphan test, 返回Switched to a new branch test删除当前项目文件夹下所有文件: git rm -rf .提交变更: git commit -m "new branch for test"查看分支: git branch -a, 发…...
sqlmap tamper脚本编写
文章目录 tamper脚本是什么?指定tamper脚本运行sqlmap安全狗绕过tamper脚本 tamper脚本是什么? SQLMap 是一款SQL注入神器,可以通过tamper 对注入payload 进行编码和变形,以达到绕过某些限制的目的。但是有些时候,SQLM…...
5.5V-65V Vin同步降压控制器,具有线路前馈SCT82630DHKR
描述: SCT82630是一款65V电压模式控制同步降压控制器,具有线路前馈。40ns受控高压侧MOSFET的最小导通时间支持高转换比,实现从48V输入到低压轨的直接降压转换,降低了系统复杂性和解决方案成本。如果需要,在低至6V的输…...
YOLOv5、YOLOv8改进:Decoupled Head解耦头
目录 1.Decoupled Head介绍 2.Yolov5加入Decoupled_Detect 2.1 DecoupledHead加入common.py中: 2.2 Decoupled_Detect加入yolo.py中: 2.3修改yolov5s_decoupled.yaml 1.Decoupled Head介绍 Decoupled Head是一种图像分割任务中常用的网络结构&#…...
Prometheus+Grafana可视化监控【Redis状态】
文章目录 一、安装Docker二、安装Redis数据库(Docker容器方式)三、安装Prometheus四、安装Grafana五、Pronetheus和Grafana相关联六、安装redis_exporter七、Grafana添加Redis监控模板 一、安装Docker 注意:我这里使用之前写好脚本进行安装Docker,如果已…...
怒刷LeetCode的第6天(Java版)
目录 第一题 题目来源 题目内容 解决方法 方法一:哈希表 方法二:逐个判断字符 方法三:模拟减法 第二题 题目来源 题目内容 解决方法 方法一:水平扫描法 方法二:垂直扫描法 方法三:分治法 方…...
SSL双向认证-Nginx配置
SSL双向认证需要CA证书,开发过程可以利用自签CA证书进行调试验证。 自签CA证书生成过程:SSL双向认证-自签CA证书生成 Nginx配置适用于前端项目或前后端都通过Nginx转发的时候(此时可不配置后端启用双向认证) 1.Nginx配置&#…...
GO学习之 远程过程调用(RPC)
GO系列 1、GO学习之Hello World 2、GO学习之入门语法 3、GO学习之切片操作 4、GO学习之 Map 操作 5、GO学习之 结构体 操作 6、GO学习之 通道(Channel) 7、GO学习之 多线程(goroutine) 8、GO学习之 函数(Function) 9、GO学习之 接口(Interface) 10、GO学习之 网络通信(Net/Htt…...
八大排序(四)--------直接插入排序
本专栏内容为:八大排序汇总 通过本专栏的深入学习,你可以了解并掌握八大排序以及相关的排序算法。 💓博主csdn个人主页:小小unicorn ⏩专栏分类:八大排序汇总 🚚代码仓库:小小unicorn的代码仓库…...
MYSQL--存储引擎和日志管理
存储引擎: 一、存储引擎概念: MySQL中的数据用各种不同的技术存储在文件中,每一种技术都使用不同的存储机制、索引技巧、锁定水平并最终提供不同的功能和能力,这些不同的技术以及配套的功能在MySQL中称为存储引擎。存储引擎是My…...
VUE之更换背景颜色
1. 确定需求 在实现之前,首先需要明确需求,即用户可以通过某种方式更改页面背景颜色,所以我们需要提供一个可操作的控件来实现此功能。 2. 创建Vue组件 为了实现页面背景颜色更换功能,我们可以创建一个Vue组件。下面是一个简单…...
大型集团借力泛微搭建语言汇率时区统一、业务协同的国际化OA系统
国际化、全球化集团,业务遍布全世界,下属公司众多,集团对管理方式和企业文化塑造有着很高的要求。不少大型集团以数字化方式助力全球统一办公,深化企业统一管理。 面对大型集团全球化的管理诉求,数字化办公系统作为集…...
Quartz 建表语句SQL文件
SQL文件在jar里面,github下载 https://github.com/quartz-scheduler/quartz/releases/tag/v2.3.2 解压,sql文件路径:quartz-core\src\main\resources\org\quartz\impl\jdbcjobstore tables_mysql_innodb.sql # # In your Quartz propertie…...
nginx SseEmitter 长连接
1、问题还原: 在做openai机器人时,后台使用 SseEmitterEventSource 实现流式获取数据,前端通过 EventSourcePolyfill 函数接收后端的数据,在页面流式输出到页面,做成逐字打稿的效果。本地测试后,可以正常获…...
若依cloud -【 100 ~ 】
100 分布式日志介绍 | RuoYi 分布式日志就相当于把日志存储在不同的设备上面。比如若依项目中有ruoyi-modules-file、ruoyi-modules-gen、ruoyi-modules-job、ruoyi-modules-system四个应用,每个应用都部署在单独的一台机器里边,应用对应的日志的也单独存…...
VPN协议是如何工作的
VPN,全名 Virtual Private Network,虚拟专用网,就是利用开放的公众网络,建立专用数据传输通道,将远程的分支机构、移动办公人员等连接起来。 VPN 通过隧道技术在公众网络上仿真一条点到点的专线,是通过利用…...
c++::作用域符解析
1)当存在具有相同名称的局部变量时,要访问全局变量 2)在类之外定义函数。 class A { } void A::func(){ }A a;a.func();3)访问一个类的静态变量 class A { static int b; } A::b; 4) 如果两个命名空间中都存在一个具有相同名称的类…...
【电源专题】什么是充电芯片的Shipping Mode(船运模式)
现在越来越多电子产品小型化,手持化,这样就需要电池来为产品供电。但电池供电造成的另一个难题就是产品的续航能力的强与弱。 如果想提升续航能力,有一种方法是提高电池容量。如果电池体积没有变化的情况下,可能使用了新型材料、高级技术来增加电池容量,但这势必会增加电池…...
WebGL笔记: 2D和WebGL坐标系对比和不同的画图方式, 程序对象通信,顶点着色器,片元着色器
WebGL 坐标系 canvas2d画布和webgl画布使用的坐标系都是二维直角坐标系,但它们坐标原点、y 轴的坐标方向,坐标基底都不一样canvas2d 坐标系的原点在左上角, x轴朝右,y轴朝下1个单位的宽就是一个像素的宽,1个单位的高就是一个像素…...
【php经典算法】冒泡排序,冒泡排序原理,冒泡排序执行逻辑,执行过程,执行结果 代码
冒泡排序原理 每次比较两个相邻的元素,将较大的元素交换至右端 冒泡排序执行过程输出效果 冒泡排序实现思路 每次冒泡排序操作都会将相邻的两个元素进行比较,看是否满足大小关系要求,如果不满足,就交换这两个相邻元素的次序&…...
多模块和分布式项目
一、什么是多模块项目 多模块项目是一种软件项目组织结构,其中一个大型项目被分成多个独立的子模块或子项目。每个子模块通常具有自己的功能、目录结构和开发周期,但它们可以协同工作以构建一个完整的应用程序。这种项目结构有助于提高代码的可维护性、…...
AI视频剪辑:批量智剪技巧大揭秘
对于许多内容创作者来说,视频剪辑是一项必不可少的技能。然而,传统的视频剪辑方法需要耗费大量的时间和精力。如今,有一种全新的剪辑方式正在改变这一现状,那就是批量AI智剪。这种智能化的剪辑方式能够让你在短时间内轻松剪辑大量…...
vue项目实现地址自动识别功能
1、安装第三方依赖 npm install address-parse 2、在需要使用的页面引入 import AddressParse from address-parse; 3、在页面上写入静态的html代码,可以输入地址,加上识别的输入框; <div class"auto_address"><van-…...
基于springboot财务管理系统springboot006
大家好✌!我是CZ淡陌。一名专注以理论为基础实战为主的技术博主,将再这里为大家分享优质的实战项目,本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目,希望你能有所收获,少走一些弯路…...
C语言-扫雷游戏的实现
🌈write in front🌈 🧸大家好,我是Aileen🧸.希望你看完之后,能对你有所帮助,不足请指正!共同学习交流. 🆔本文由Aileen_0v0🧸 原创 CSDN首发🐒 如…...
七天学会C语言-第七天(结构体)
1.定义结构体 例 1:把一个学生的信息(包括学号、姓名、性别、住址等 4 项信息) 放在一个结构体变量中,然后输出这个学生的信息。 #include <stdio.h>struct Student {int student_id;char name[30];char gender;char address[60]; };int main() …...
北京大兴最专业的网站建设公司/广州网站营销优化qq
所有浏览器都支持该对象。Navigator 对象包含有关浏览器的信息。 Navigator 对象包含的属性描述了正在使用的浏览器。可以使用这些属性进行平台专用的配置。 <script type"text/JavaScript"> $(function(){ var browser{},matchReg; …...
公司网络维护外包价格/防控措施持续优化
上面的这个图片实际上结构已经非常清楚。服务器端和Android移动端通过一个Broker来完成通信。在这里仅仅把完成这个实验的过程中遇到的问题记录下来。即在个人PC上配置一个本地的服务器环境,与Android端进行通讯。准备工作:1.首先需要下载Tokudu在github…...
9e做网站/公司网站建设服务机构
Forward指令是Jsp动作指令之一,可以用于将页面响应转发到另外的页面。既可以转发到静态页面,也可以转发到动态页面。 就像表单参数的转发一样,本来没什么好说,但是有几个特性还是要注意一下的。用一个例子就能够完全说明这个问题…...
做装修公司网站/一台电脑赚钱的门路
目录.NET Core实用技巧(一)如何将EF Core生成的SQL语句显示在控制台中前言笔者最近在开发和维护一个.NET Core项目,其中使用几个非常有意思的.NET Core相关的扩展,在此总结整理一下。EF Core性能调优如果你的项目中使用了EF Core, 且正在处于性能调优阶段…...
大连普兰店网站建设/企业网站建站模板
wiki 地址:http://wiki.apache.org/solr/FrontPage, 里面有各个参数详细的介绍。 一.基本查询 q 查询的关键字,此参数最为重要,例如,qid:1,默认为q*:*, fl 指定返回哪些字段,用逗号…...
必须做网站等级保护/seo搜索引擎优化
CBuilder 11.1.5 Alexandria 设计 RAD Studio 的 C 版本带有用于高性能原生 Windows 应用程序的屡获殊荣的 VCL 框架和用于跨平台 UI 的强大的 FireMonkey (FMX) 框架。C 的可视化开发从未如此简单和快捷——最重要的是,您的设计和代码将始终保持同步。 使用 VCL 快…...