00:00
嗯,今天给大家讲解一下vim的产业开发。呃胃部是一款经久不衰的嗯编辑器,呃它主要有呃几个特点,第一点就是它的呃文本编辑非常方便,可以快速的是快速的移动到我们想要去的位置。第二点就是它有分控的产生机制,可以说很多功能,很多它自身不提供的工作都可以通过厂家来完成。第三个点就是啊,它是一个不断在更新迭代的产品,从发布到呃到至今,虽然已经有30多年历史,但是它啊始终在不断的迭代更新,最新版本已经是8.2。呃,接下来我们简单介绍一下呢,如何来开发一个呃微M插件,开发微M插件需要一些基本知识,嗯,比如呃微script需要写一些scriptscript,和我们的shell很类似,呃,但是也有一些不同,我们需要找一些基本的语法,这样对于我们开发非常方方便啊。现来我们简单说说一下呃,如何。
01:13
呃,来开发一个V插件,呃,首先在我们的加盟里可以看到有一个点呃文件,我们可以进入到点文件夹里面,然在这里我们可以新建一个plug文件。夹哦,创建制好之后,我们进入这个plug文件夹里面啊,在这里我们就可以放我们的插件,这里正好我们放一个插件的文件夹,就是我们在这里创建一个,比如我们创建一个发的插件translate,我们放一个translate。插件文件夹之后,我们进入到这个插件文件夹里面,然后在这里我们创建一个translate点,这样就创建一个插件的插件,但是它现在插件这个文件是空的,什么也没有啊,这样我们需要在这里写点东西。
02:10
我们在这里定义函数function。比如我们定一个叫叫translate这个函数。好,在这里我们写一些东西,比如我们定义一个变量,比如啊,Let eer等于。好,接下来在vim中调试,我们一般用e message来进行调试,比如我们e message衣服看一下它的这个变量信息是什么。
03:30
呃,我们编辑好之后,我们现在保存退出,然后再重新进入这个文件夹,再重新进入这个文件,然后在这里我们进入那个命令模式,输入靠靠,就是调用一个函数,我们输入靠translate。我们可以看到最下面一个输入test这个文件,这就是一个简单的一个插件,当然了,我们今天要介绍的,呃,要比这个稍微复杂一点,我们需要实现一个什么差别呢?就是我们在一个单词上,呃,可以查询这个单词的中文翻译。
04:14
这样一个插件,比如在这里我我输入一个命令的话,可以把translate翻译成中文,并写在屏幕上,这是我们插件啊要实现的功能啊,要实现这个插件的话,我们首先啊需要一些。呃,一些知识就是我首先要知道,呃,一个网易有道的一个API,我们打开一下这个API。我们打开我们的暖气。我们把A片放到这里。我们可以看到它会返回一个招生数据,于是我们在这里只要把这个I替换成我们想想要翻译的东西,它就会返回给我们结果。比如这里我访访问一个desk desk访问一个桌子,可以看到它就会访问一个桌子的一个中文翻译。
05:09
嗯。啊,其他我们在我们的命令行中执行一下,这里我们一般通过通过客来进行调用,比如客把我们刚才的复制一下。我们可以看到它就会返回一个。呃,发译结果的一个招生字串,嗯,在在上一个视频中我们介绍了可以通过GQ这个文本工具来对呃招son数据进行处理,我们简单处理一下,比如这样的话,我们使用GQ,我们可以看到就会得到一个招son数据。呃,这里我们需要得到是提电脑这个单词怎么进行呢?我们可以在这里进行一个解析,比如点translate。Result。之后是零零参数,零参数之后它的。
06:10
第零个参数的TGT,通过这样解析,我们就就可以得到,我们可以到到这里是得到是,那就是我们解析都是有问题的,我们看一下哪里有问题。Translate。Translate。Result,呃,可以看到这就这样的话,我们就把我们的翻译进行解析,解析成功了,接下来我们就用这个命令来实现我们的功能,我们回到我们的插件,插件开发里面。啊,在这里还有还需要一个知识的话,就是如何获取当前光标所在的文本,比如在比如举个例子,就在这里的时候,我们需要获取我们的info,这个文本是怎么获取的?呃,在内中我们通过SP来进行获取,我举个例子,比如在这里我们定一个变量啊,Light。
07:21
呃,叫test,它是怎么获取的,它是通过X expand SP的。叫做。啊,Cor啊,这个cor就可以获取到我们当前光标所在的单词,这样获取到的值之后,我们把它拼接一下,比如在这里in。叫叫叫做query,我们定义query的查询语句,这个查询语句就是我们呃要写的一些,要写的一个可查询语句,我们把刚才那个复制过来。
08:03
在这里我们需要执行的就是C克,我们一般加上一个杠S,让它静态静脉执行完之后把这个拼接一下啊,在这里我们最好。加一个括号引号。呃,引号之后。然后在这里我们把它拼接一下啊,拼接的时候我们在呃为B中使用的点号来拼接,拼接成test完之后这里。呃,这里之后我们需要做的就是调GQ查询啊,JQ查询也是一样的,比如刚才我们把它复制过来,Translate translate result res result。
09:06
Result,零。零点。这是00点儿什么,我看零零.tt。TJT。接下来我们把这个query打印,打印一下,看一下是不是我们想要的我们的query。我们保存执行一下,我们保存一下,再打开一下,然后在这里我们调用一下,它叫做靠。Translate。我们看到是不是我们想要的功能,比如它我们在执行的时候,我们会返回到方式。
10:02
必须调用Gq.translate TT啊,接下来我们需要把这个查询结果复制给变量,在这里我们怎么使用呢?我们通通过。As system。接下我们查询结果出一下。在这个叫做。这个result。呃,把它重新保存退出,呃,编辑一下,调用一下call translate。我们可以看到它可以把我们的函数输出来啊,接下来我们要做的就是把我们这个。
11:03
结果呃给他通过提示的方式弹弹出来,呃在VB中WE8点中,他提供一个方法,可能它提供了一呃8.2以后,它提供了一个弹窗功能,在这里我们使用弹窗功能就可以了。我们调用一下。Pop up notification弹窗第一个参数就是我们要弹出的一个变量值,第二个参数我们传空,它主要是介绍一些位置信息。我把这注释掉。嗯,注释,我一般使用的是一号税号。
12:02
这样的话就注释掉了,我我保存一下。我们进去调用一下,然后在这里我们调用call translate。我们可以看到它就会把我们的函数翻译过来,比如我们这个result,我们调用一下CL com,可他就会把我们结果翻译过来啊,接下来我们希呃希望每次调的时候不是。这样式我们直接希望直接输translate就会掉,然在VI中它会有一个一个方式叫做command,我们可以定义一个自己的变自己的一个方式,我们比如我们定义trans啊,少写几个TS,就是翻译的意思啊,它实际执行的就是我们的call translate,那这样的话,每次我们执行的时候,它就会调用我们的translate这个函数,并且把翻译结果执行执行起来接上保存一下,呃,接下来我们就进入一个我们正常的一个我们的自己写的一个文件中,看一下我们这个插件是否成功,我们进入到我们的。
13:27
CC语言这个文件中,我编辑一下我们的men c,呃,比如在这里我们需要查看一下这个I,这个是单词是什么意思,我直接调用我们的ts tra,我们可以看到他就会告诉我们它是珠穆朗玛峰的意思啊,这就是一个简单的为M插件。啊的实现。
我来说两句