【Linux系统编程】Linux编辑器——vim

news2024/9/20 22:28:34

文章目录

  • 1. 什么是vim
  • 2. vim的常用模式
  • 3. vim的基本操作
  • 4. vim命令集
    • 4.1 命令模式命令集
      • 复制粘贴
      • 依次撤销上一次操作
      • 对撤销进行撤销(恢复)
      • 剪切&删除
      • 移动光标(上下)
      • 移动光标(左右)
      • 文本内容大小写切换
      • 替换
    • 4.2 替换模式
    • 4.3 命令模式命令集(续)
      • 删除
    • 4.4 上下左右移动光标
    • 4.5 插入模式的切换
    • 4.6 末行模式命令集
      • 搜索匹配
      • 不退出vim直接执行终端界面的命令
      • 替换
      • 多文件分屏编辑
  • 5. vim的配置

从这篇文章开始,我们要来学习一些Linux中的开发工具。

这篇文章,我们先来学习一下Linux中的文本编辑器——vim。

1. 什么是vim

首先我们来认识一下什么是vim

Vim(Vi IMproved)是一款文本编辑器,它是从 Vi 编辑器发展而来的。Vim 在功能上比 Vi 更加强大,并提供了更多的扩展性和定制选项。
vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x window、 mac os、windows。我们这里统一按照vim来进行讲解。
在这里插入图片描述

2. vim的常用模式

上面提到,vim是一款多模式编辑器

注意它就是一个单纯的编辑器,跟我们平时写代码用的比如vs、DEVC++等不同,vs这些是集成开发环境(IDE),集成开发环境就是一系列开发工具的组合套装,包含编辑器,编译器,链接器,调式器等。
另外,既然是多模式的话,就涉及到每种模式的用法和差别,以及不同模式之间的切换。
虽然是多模式,但是我们在日常开发中最常用的也就3~5中模式。

那常用的模式都有哪些呢?

我们这里主要讲解vim的3种模式:
正常/普通/命令模式(Normal mode)
插入模式(Insert mode)
末行/底行模式(last line mode)

除此之外还有一个替换模式和视图模式我们讲的时候也会提一下。

3. vim的基本操作

那要是有vim进行编辑,首先第一个问题我们怎么打开vim呢?

如果我们要使用vim对某个文件进行编辑,直接vim +空格 +文件名即可
vim 文件名
当然如果后面跟的文件名是不存在的,vim也会自动帮你创建,你也可以选择先创建,再用vim编辑
比如,我现在创建一个文件test.c,然后用vim打开它
在这里插入图片描述
然后敲回车
在这里插入图片描述
🆗,打开之后就是这样子

那上面说vim有好几种模式,那我们打开vim之后它是处于那种模式呢?

我们进入vim之后,它默认是处于命令(正常)模式的。
命令模式主要用于控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入插入模式或者末行模式下。
那在命令模式下如果你去按一些按键会发现是没有反应的,也输不进去东西(除非你按到切换模式的命令切换到其他模式下了可能会有反应)。

那么如果你进入vim之后想对文件进编辑,那么需要进入到插入模式下:

那怎么进入呢?
🆗,从命令模式切换到插入模式的方法不止一种,现在我们先记住一种:
就是按键盘上的i这个键就可以从命令模式切换到插入模式
在这里插入图片描述
这是我们打开之后默认的样子,现在在命令模式下。
我现在敲i这个键
在这里插入图片描述
我们会看到左下角就会出现-- INSERT -- 的字样,此时我们就进入插入模式了
那现在我们就可以向文件里面插入内容了
在这里插入图片描述
此时它就像一个记事本一样,我们可以随意写入和删除内容。

那然后我编辑好了,想退出vim,怎么退出?

那在插入模式我们一般是不能退出的,那怎么做呢?
我们先回退到命令模式,按键盘上的Esc键就可以从其它模式回退到命令模式
在这里插入图片描述
进入命令模式后,如果要退出,还需要我们进行到另一个模式——末行模式。
在命令模式下,输入shift + ;, 其实就是输入:,就可以进入末行模式
在这里插入图片描述
如果成功进入,我们就会看到最底行有一个
然后我们输入q(quit)回车就可以退出。
但是呢?
由于我们对文件进行了修改,直接q退出可能会退不了
在这里插入图片描述
所以我们要wq,wq就代表保存写入的内容并退出(保存退出
在这里插入图片描述
末行模式下输入wq,然后回车
在这里插入图片描述
就退出来了,并且我们刚才写入的内容也成功保存了。

再给大家补充一点注意事项:

如果你不知道自己当前处在什么模式下了,那你就无脑的去按Esc,就会回到命令模式下,然后再根据自己的需要切换到其它模式下。
另外我们退出的时候一般都是wq保存退出,如果带上!表示强制退出(有些文件退出的时候可能会报提示,不会直接退出,当然你要是没权限强制也没用)

4. vim命令集

首先为了后面方便演示和讲解,先给大家说一个在末行模式下,列出行号和取消行号的操作

现在再次用vim打开上面我们创建的文件test.c
在这里插入图片描述
打开之后默认处在命令模式下,然后我们shift + ;进入末行模式
在这里插入图片描述
那现在我们想让里面的文本显示行号,怎么做呢?
输入set nu,然后回车即可
在这里插入图片描述

如果想取消行号,set nonu
在这里插入图片描述

上面说这个命令是在末行模式下的。

但是我们要学的大部分命令其实都是在命令模式下用的指令

4.1 命令模式命令集

那下面,我就边演示边给大家讲解命令模式下命令集

首先来一个

复制粘贴

在这里插入图片描述
现在我的光标在第5行。
那我现在向复制光标所在的这一行:
yy,就可以复制光标所在行的内容
在这里插入图片描述
按完yy,并没有什么反应,但是此时已经复制好了。
那我想把复制的内容,粘贴到当前光标位置的下一行。
对应的指令是p

在这里插入图片描述
按一次,就粘贴一次,一直按,就一直粘贴
在这里插入图片描述
当然,你如果按100p,就直接粘100行
在这里插入图片描述
npp,直接粘n行到光标所在行之后
那刚才yy是复制一行的内容,如果想一次复制n行可以吗?
当然,nyy就可以一次复制n行(从当前行开始向下,带上当前行一共n行)
比如我现在想复制文本前3行
在这里插入图片描述
那我把光标放到第一行,然后敲3yy,就可以把前3行复制
是否成功复制前3行,我们可以粘贴出来看一下
在这里插入图片描述
现在我已经敲了3yy了,然后我把光标移到第3行,把它粘到第3行下面,我再敲p去粘贴
在这里插入图片描述
就可以了。
同样的np就可以粘n次。

依次撤销上一次操作

刚才复制的3行,我再敲个20p,粘贴20次,然后

我后悔了,我想把刚才粘贴的操作撤销掉,可以吗?
当然:
u,就可以撤销你上一次的操作,u可以连续执行多次
在这里插入图片描述
这是敲了20p之后的样子,我按u
在这里插入图片描述
我们看到下面会显示变化的信息
再按u
在这里插入图片描述
再按u
在这里插入图片描述
可以连续撤销

对撤销进行撤销(恢复)

那如果我现在对刚才的撤销操作反悔了,我想撤销刚才的撤销操作(注意理解这句话的意思),能做到吗?

可以的。
ctrl + r,对之前的撤销进行恢复
在这里插入图片描述
这是之前连续撤销之后的样子
我敲ctrl + r
在这里插入图片描述
再敲ctrl + r
在这里插入图片描述
就可以这样一直恢复,恢复到不能再恢复为止

剪切&删除

上面讲了复制粘贴,那剪切怎么做?

在这里插入图片描述
比如现在光标在第3行,我们把第3行的内容进行剪切
那我就在光标在第3行的情况下敲dd
在这里插入图片描述
此时原来第3行的内容就没了,如果此时不进行操作的话,就相当于删除
那如果我想把它剪切到现在的11行,那就把光标移到第10行,敲p,就粘到10行下面了
在这里插入图片描述
就剪切完成了
那如果想一次剪切多行,同样的,ndd,然后把光标移到你想要的位置敲p就可以了,不继续操作,就是删除掉对应的n行
在这里插入图片描述
我现在3dd
在这里插入图片描述
3行就没了
再敲p
在这里插入图片描述
就粘到光标所在行下面
当然照样可以np

然后给大家说一下:

如果我们进行了一些操作之后,进入末行模式对刚才的修改进行保存(w)了,保存之后依然可以用u 或者Ctrl+r 进行撤销和恢复保存之前的操作。
但是,如果你保存退出了,再次用vim打开,就无法进行撤销恢复的操作了

在这里插入图片描述
大家可以试一下,这里就不详细的演示了

移动光标(上下)

现在我把刚才的文本搞的行数多一点,然后来学一些移动光标的操作

在这里插入图片描述
我先粘贴个1000行内容

然后,我现在想把光标移动到最后一行,怎么做?

在这里插入图片描述
现在在第1行
🆗,Shift+G(即输入大写g),就可以直接把光标移动到文本最末尾
在这里插入图片描述

然后我又想快速回到第1行:

gg:移动光标到文本开始
直接敲gg
在这里插入图片描述
就回到第1行了

那现在我想把光标定位到第n行,比如第88行,第456行,怎么做呢?

n+Shift+G:将光标定位到指定的第n行
比如78+Shift+G
在这里插入图片描述

移动光标(左右)

刚才学的是光标的上下移动,那左右移动呢?

比如,如何快速定位到文本的最后一行:

在这里插入图片描述
现在有这样一行长文本,我想直接定位到最后一个字符
Shift+4:移动到光标所在行文本的“行尾”
在这里插入图片描述

直接定位到行首

Shift+6:移动到光标所在行文本的“行首“
在这里插入图片描述

另外还有:

w(小写):光标从当前位置跳到下个”单词“的开头
但是注意这里的单词不一定就是我们平时所熟悉的那种英文单词,大家可以多试一试,看一下它的一个效果,有些东西文字没办法很好地给大家说清楚
我来简单演示一下,比如
在这里插入图片描述
现在光标在p的位置,我现在敲w
在这里插入图片描述
再敲
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
相信大家能看出来它是怎么移动的。
当然它也支持加n
n+w:就相当于敲n次w
比如现在在开头
在这里插入图片描述
敲3w
在这里插入图片描述

那w是向后移动,向前呢?

b:光标回到上个”单词“的开头
nb:相当于敲n次b
在这里插入图片描述
敲b
在这里插入图片描述
敲3b
在这里插入图片描述

文本内容大小写切换

在vim中还可以快速的进行大小写的切换:

比如
在这里插入图片描述
我现在想把圈出来的字符小写变成大写
Shift ~:快速大小写切换(原来大写变成小写,原来小写变大写)
在这里插入图片描述
现在光标在h的位置,此时我敲Shift ~
在这里插入图片描述
>它把h变成大写H,并且光标自动移到下一个位置
所以如果我们按着Shift ~不放,他就可以一直向后转换大小写

在这里插入图片描述
当然也可以快速把大写换成小写
在这里插入图片描述

替换

接下来学习一些替换操作:

r:替换光标所在处的字符

即先按r键,在按自己想替换的字符,就可以完成替换
在这里插入图片描述
我现在先按r,再按m
在这里插入图片描述
如果你想再换成其它字符,就再按r,然后再按你想替换的字符。

nr:替换光标所在处向后的n个字符

在这里插入图片描述
我现在想把从当前光标位置开始向后的10个字符替换成x
那就敲10r ,再敲x
在这里插入图片描述

4.2 替换模式

刚才我们学的是把1个或n个字符替换成另外一个字符,但这样即使替换多个它们被替换的是同一个字符。

那如果我们想按自己的想法替换成不同的任意字符呢?

在这里插入图片描述
比如我现在想把这一段改成abcdefg...不同的字母,怎么做呢?
我们敲Shift+R(其实就是大写R)
在这里插入图片描述
敲完之后我们会发现左下方出现-- REPLACE --
其实Shift+R是让我们进入了另一种模式——替换模式
然后,我们直接敲我们想替换的字符,它就会依次往后进行替换
在这里插入图片描述
我们替换完一个,光标会自动往下一个移动。

那替换完毕呢?

Esc,就又回到命令模式了
在这里插入图片描述
左下角就没有replace了

4.3 命令模式命令集(续)

我们再回到命令模式,继续学一些命令

删除

x:每按一次,删除光标所在位置的一个字符

在这里插入图片描述
比如,光标现在在a的位置,我按一次x
在这里插入图片描述
a就被删掉了,光标到b了
我继续按就继续删
按着x不放,就一直往后删
在这里插入图片描述

nx:一次删除n个

在这里插入图片描述
我现在想把abcde这5个一次删掉
那么敲5x,就可以一次删掉5个
在这里插入图片描述

另外,刚才的删除都是从左往右删,如果从右往左呢?
Shift X(即大写X):删除光标所在位置前面位置的一个字符
n Shift X:删除光标所在位置前面的n个字符

在这里插入图片描述
现在光标在g的位置
我按一次Shift X
在这里插入图片描述
5 Shift X
在这里插入图片描述

4.4 上下左右移动光标

然后想给大家说一下:

我们上下左右移动光标的时候可以用键盘上面的上下左右的四个键去移动
在这里插入图片描述

但是我们一般不使用这个

而是使用h(左)、j(下)、k(上)、l(右)
那为什么呢?
首先这四个键离我们常用的这些键比较近,当然这是最不重要的理由。
最重要的原因是因为,以前的键盘上根本都没有带箭头的上下左右四个键
在这里插入图片描述
不过现在vim基本也都兼容上下左右四个键的使用
建议还是使用hjkl四个键

4.5 插入模式的切换

上面我们说了从命令模式进入插入模式的方式不止一种,上面只讲了一个i

但其实呢,有好多个,我们这里主要学习三个:

按「i」切换进入插入模式「insert mode」,光标位置不动
按「a」进入插入模式后,光标会移动到原来位置的下一个
按「o」进入插入模式后,会新起一行,并且光标移动到新的一行的起始位置

大家可以自己试一试看看效果

4.6 末行模式命令集

末行模式上面我们已经学过几个操作了:

set nu:显示行号
set nonu:取消显示行号
q:退出
wq:保存退出
wq!:强制保存退出

下面我们再来学几个,注意是在末行模式下

搜索匹配

在这里插入图片描述
/文本内容:匹配对应的文本内容并高亮显示
在这里插入图片描述
然后我按n可以依次定位到下一个匹配项
在这里插入图片描述
在这里插入图片描述
如果找不到会报错
在这里插入图片描述

不退出vim直接执行终端界面的命令

如果我们用vim写完一个test.c,想编译运行它,我们之前的方法就是保存退出vim,然后去编译执行它。

但其实,不退出vim,也可以搞:

在这里插入图片描述
我现在已经写好了,想编译它
可以不用退出vim,在末行模式下
输入!,然后敲对应的命令就好了
比如,编译这个test.c
在这里插入图片描述
回车
在这里插入图片描述
他就会执行对应命令并跳转到这个页面显示对应的结果,我们按任意键回到vim中
在这里插入图片描述
然后我们可以查看一下有没有生成可执行程序
在这里插入图片描述
!ls -l回车
在这里插入图片描述
已经生成了
然后!./a.out执行
在这里插入图片描述
就执行成功了

替换

末行模式下也可以进行一些替换操作

在这里插入图片描述
比如我现在想把所以hello替换成HELLO
那这样做:
在这里插入图片描述
回车
在这里插入图片描述
就替换好了

多文件分屏编辑

我们平时写代码可能还会多文件分离编译或者头文件源文件分开,就像这样

在这里插入图片描述

那我们在vim上可以不可以这样搞呢?

可以的。
比如
在这里插入图片描述
我现在把test.c修改成这样,然后我想在创建一个头文件test.h,把show函数的声明和头文件的包含放到test.h里面
怎么做呢?
我们还没创建test.h文件,不过我们直接用vim打开文件,如果文件不存在,最后我们选择保存的话他会自动帮我们创建
所以,在末行模式下,我直接输入vs test.h
在这里插入图片描述
它就自动帮我创建好并打开,且分屏显示出来
现在分屏了,你去看你的光标在那个文件,你当前编辑的就是哪个文件
在这里插入图片描述
那如何切换到另一个文件呢?
切换的话需要在命令模式下,按住Ctrl 不放,然后快速按两次w就可以切换
在这里插入图片描述
然后我把它编辑成这样
在这里插入图片描述
当然你还可以继续创建新文件去分屏,但我们一般不会分太多,那样体验也不好

那这种情况我们怎么退出呢?

比如我现在要退出test.c,那首先要确保光标在test.c里面
然后,进入末行模式
在这里插入图片描述
还是wq就可以保存退出了
在这里插入图片描述
此时就只剩test.h了
继续保存退出
在这里插入图片描述
我们看到test.h也自动生成了

编译运行照样是可以的

在这里插入图片描述

然后,再给大家提一点:

我们进入vim之后,尽量就不要在使用鼠标操作了

5. vim的配置

Vim 的配置是用来自定义 Vim 的行为和外观的设置。通过修改 Vim 的配置,您可以根据自己的喜好和需求,定制编辑器的各种功能和界面元素。

vim在启动的时候,会自动在当前用户的目录下,寻找配置文件——.vimrc(自己配置的话可能需要我们自己创建这个文件,配置的内容就放在该文件里面),如果没有,就用默认的。
一个用户,一个vim配置,我们所做的配置,不会影响其他用户。

那关于vim的配置,网上也可以找到很多相关的内容,这里就不详细介绍了。

配置好大概就是这样的:

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

在这里插入图片描述

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

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

相关文章

javaTCP数据报套接字编程

TCP套接字编程 1.ServerSocket API1.1ServerSocket 的构造方法1.2ServerSocket 方法: 2.Socket API2.1Socket构造方法2.2Socket方法 3.TCP回显服务器4.TCP中的长短连接5.C10M问题 TCP提供的API主要有两个类:一个是专门给服务器用的SeverSocket对象&#…

MyBatis-Plus框架

说明&#xff1a;Mybaits-Plus是Mybatis框架的升级&#xff0c;该框架提供了一系列API&#xff0c;用于操作数据&#xff0c;可以免受手搓SQL语句的痛苦。 一、使用 第一步&#xff1a;添加依赖 使用前&#xff0c;需先添加对应的依赖&#xff0c;建议使用最新的版本 <d…

有什么事让你觉得在Linux上顺理成章,换到Windows上就令你费解?

&#x1f388;个人主页:&#x1f388; :✨✨✨初阶牛✨✨✨ &#x1f43b;推荐专栏1: &#x1f354;&#x1f35f;&#x1f32f;C语言初阶 &#x1f43b;推荐专栏2: &#x1f354;&#x1f35f;&#x1f32f;C语言进阶 &#x1f511;个人信条: &#x1f335;知行合一 &#x1f…

Linux红帽认证适合哪些人学习

近几年来&#xff0c;技术的迭代速度越来越快&#xff0c;云计算&#xff0c;大数据&#xff0c;人工智能&#xff0c;物联网等技术扑面而来&#xff0c;全球各大互联网公司都在抢先发展这些技术&#xff0c;而无一例外的这些技术背后都是使用的Linux系统&#xff0c;双11&…

JAVA_SSM Demo(WEB端)

仓库地址&#xff1a;https://gitee.com/ThMyGitee/SSMDemo.git CSDN的友友们&#xff0c;项目如果适合您的话&#xff0c;麻烦给个小小的Star&#xff0c;谢谢啦&#xff01; JAVA_SSM Demo(WEB端) 1.开发环境 JDK1.8 Tomcat 8.5.60 IDEA 2019.3 MySQL 5.7.20 Maven 3.6 S…

USB协议总结

1、简介 在了解USB协议之前&#xff0c;先了解下该总线协议出现的背景。在USB总线出现之前&#xff0c;计算机与键盘、鼠标、扫描仪、打印机都使用专用的接口连接&#xff0c;不同设备的接口不能互用&#xff0c;扩展性很差。每次插拔设备都要关闭计算机&#xff0c;不支持热插…

【Matlab】智能优化算法_麻雀搜索算法SSA

【Matlab】智能优化算法_麻雀搜索算法SSA 1.背景介绍2.数学模型3.文件结构4.伪代码5.详细代码及注释5.1 Get_Functions_details.m5.2 main.m5.3 SSA.m 6.运行结果7.参考文献 1.背景介绍 麻雀通常是群居的鸟类&#xff0c;有很多种类。它们分布在世界的大部分地区&#xff0c;喜…

TI毫米波雷达软硬件概述

TI毫米波雷达概述 1.TI毫米波雷达传感器芯片及分类&#xff1a;1.1 工业毫米波雷达传感器器件选型应用场景 1.2 汽车毫米波雷达选型使用场景 1.3 基于AWR2243 的 TI 级联雷达 &#xff1a;1.4 不喜欢看文字的也可以戳视频-> 2. TI软件入门概述&#xff1a;2.1 TI RadarToolb…

【C】指针详解(一篇文章带你玩转指针)

指针详解 指针是什么&#xff1f;指针和指针类型指针加减整数指针的解引用 野指针野指针的成因如何规避野指针 指针和数组的关系数组名是什么&#xff1f; 二级指针二级指针是什么&#xff1f;二级指针的运算 字符指针指针数组和数组指针指针数组数组名和&数组名数组指针数…

开源一款轻量线程池项目

基于Arrow的轻量线程池 大家好&#xff0c;我是光城&#xff0c;最近花了几周业余时间&#xff0c;开发出这款轻量线程池&#xff0c;代码也全部开源啦&#xff0c;欢迎大家star。 本线程池的设计与实现会有涉及非常多的知识&#xff0c;这些内容也都会以视频的方式分享在知识星…

分析气象数据:向Python Cartopy地图中添加循环点

大家好&#xff0c;在使用Python和Cartopy对气候数据进行可视化分析的过程中&#xff0c;有一个叫做循环点&#xff08;cyclic point&#xff09;的术语&#xff0c;它在地理空间栅格数据可视化领域中很重要。 1.循环点的定义和作用 有时&#xff0c;当我们试图绘制地理空间数…

性能测试的基本概念和重要指标

这里写自定义目录标题 一、什么是性能测试二、为什么要学习性能三、性能测试与功能测试的区别1、性能测试和功能测试的区别&#xff1f;2、性能测试是在什么时候做?3、我们在做我们的产品的时候&#xff0c;我们只做功能不做性能可不可以&#xff1f;4、性能测试主要是这几个方…

金融计量学第2课堂-金融时间序列线性模型

量化策略开发&#xff0c;高质量社群&#xff0c;交易思路分享等相关内容 一、相关性和平稳性 1、相关性 &#xff08;1&#xff09;皮尔森相关系数 皮尔森相关系数是最常见、最常用的一个相关系数计算方法。作为衡量两个随机变量x和y线性相关程度的重要指标&#xff0c;在这…

赋能智能智造-RK3568智能主板助力机器人产业高速发展

机器人作为现代制造业的重要一环&#xff0c;正在以惊人的速度推动着生产效率和智能化水平的提升&#xff0c;它们在生产线上的准确操作和高效工作&#xff0c;为企业带来了巨大的竞争优势。关于工业机器人的编程和控制技术&#xff0c;在过去几年中已经有了很多发展和新的应用…

十.Redis持久化

十.Redis持久化 一&#xff1a;RDB持久化二&#xff1a;AOF持久化三&#xff1a;扩展 redis持久化 Redis是内存数据库&#xff0c;如果不将内存中的数据库状态保存到磁盘&#xff0c;那么服务进程退出&#xff0c;服务器中的数据库状态也会消失&#xff0c;所以Redis提供了持久…

《Spring系列》第18章 监听器Listener

前言 陆续阅读了Spring Boot源码中&#xff0c;有不少地方都用到了监听器。每次看到监听器的代码都一头雾水&#xff0c;不懂其中的设计理念&#xff0c;这次决定肝一篇监听器的博文。 一、监听器 1.概述 何为监听器&#xff1f;就是用来监听程序执行的。监听器可以做什么事…

青岛大学_王卓老师【数据结构与算法】Week05_03_队列的定义和特点_学习笔记

本文是个人学习笔记&#xff0c;素材来自青岛大学王卓老师的教学视频。 一方面用于学习记录与分享&#xff0c; 另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。 如有侵权&#xff0c;请留言作删文处理。 课程视频链接&#xff1a; 数据结构与算法基础…

Vue3通透教程【十七】Vite构建TS版本Vue项目

文章目录 &#x1f31f; 写在前面&#x1f31f; 创建TS版本的Vue3项目&#x1f31f; 插件安装&#x1f31f; 写在最后 &#x1f31f; 写在前面 专栏介绍&#xff1a; 凉哥作为 Vue 的忠实 粉丝输出过大量的 Vue 文章&#xff0c;应粉丝要求开始更新 Vue3 的相关技术文章&#…

DocFastSearchTool(文档快速搜索工具)开发日志

目录 项目介绍 项目调研背景 项目需求分析 开发环境 项目涉及基础知识点 项目设计 设计基础 项目框架or架构 项目框架的搭建 系统工具模块--遍历目录 SQLite数据库 在Windows上安装SQLite SQLite命令 SQLite-C/C的API 安装SQLite源码 数据库操作的重要接口 连接…

PB从入坑到放弃(三)数据窗口

PB从入坑到放弃&#xff08;三&#xff09;数据窗口 写在前面一、 数据窗口画板1.1 Design 视窗1.1.1 General tab页设置1.1.2 Generation tab页设置1.1.3 Prefixes tab页设置 1.2 Preview 视窗1.2.1 查找数据1.2.2 翻页1.2.3 增加、删除数据 1.3 Control List 视窗1.4 Data 视…