vim插件开发之helloworld插件

梦想的初衷 提交于 2019-12-05 00:47:24

 

前言

相信在linux下开发和工作的同学一定都很喜欢vim,而且非常热衷于用vim做一些有意思的事情,如用vim写博客,尤其是用来写oschia的博客,osc上也有人专门为此写了博客指导我们如何在osc中用vim写博客,但是我们在配置vim插件的时候,可能会遇到各种各样的问题。当遇到问题的时候,如果我们对vim插件没有一些基本的了解,那么面对这些问题的时候我们可能就无从下手了。

另外,使用vim插件还可以做到很多你想做到的事情,比如在vim中利用插件直接发送osc的动弹(在博文最后有相关截图)等等其他十分有意思的事情,难道你不想开发一些属于自己的vim插件吗?

通过本系列vim插件开发的文章,您将学会如何开发完全属于自己的vim插件,从而高度的定制自己的linux。

helloworld.vim插件

我们本着helloworld的原则,第一个vim插件的功能非常简单,定义一个vim命令Helloworld,该命令的功能是打印 "hello,world"字符串。接下来我们将介绍具体的开发步骤:

[1]在~目录或其他任意目录下新建一个文件,取名为helloworld.vim,并用vim打开,输入以下代码:

function! Helloworld()
     echo "hello,world"
 
endfunction    
command! -nargs=0 Helloworld call Helloworld()

 

该代码的功能非常简单,只是定义了一个function Helloworld(),函数的功能也非常简单echo "hello,world", 然后定义了一条vim命令Helloworld,该命令调用了刚才定义的函数Helloworld()

关于上述有几点需要注意的地方:

  • 函数名首字母必须大写;

  • 自定义命令首字母必须大写;

  • -nargs=0表示没有命令行参数;

  • 插件的扩展名必须为.vim。

[2]插件开发完成之后,我们该如何使用刚才插件中定义的vim命令呢?

有两种方法可以调用:

    1) 插件开发完成后,先通过vim命令:w保存文件,然后在该vim中输入命令:source helloworld.vim,最后再输入刚才我们定义的命令:Helloworld命令,这样我们就可以看到我们的结果"hello,world"字符串了,通过这种方式定义的命令只有这一次有效,当文件关闭后,该vim命令就会失效,一般用于vim插件开发测试;

    2)将helloword.vim放在~/.vim/plugin/目录下,放在这个目录下的目的是为了让这个plugin可以自动加载,当然你也可以放在任意位置,然后在~/.vimrc中添加如下命令:

source 你的vim插件位置,本示例为~/helloworld.vim

 

一个完整的示例为:

source ~/helloworld.vim

 

[3]定义好vim命令之后,我们用vim任意打开一个文件,并输入命令:Helloworld,是不是发现已经打印了我们的"hello,world"。

结论

本文主要介绍了如何编写helloworld vim插件,描述了编写vim插件的基本流程,方便用户编写自己的插件,如此简单,你还在等什么,赶快自定义自己的vim插件吧。

接下来的一些文章我们将会介绍,如何结合viml+python来开发我们自己的vim插件,一步步的加强我们的vim插件功能。如果大家有比较好的vim插件需求,欢迎留言。

以下是这些天开发的一个简单的osc动弹插件:

下载地址:http://git.oschina.net/gschen-register/vim-plugin-oschina

README文件中有该插件相关的使用说明;

插件使用过程中有任何问题,欢迎随时@justin_cn或邮件联系gschen.cn@gmail.com;

 

后续插件开发示例

vim插件开发之python-helloworld插件 - 本博文主要介绍了如何结合python进行vim插件的开发

 

vim插件之osc动弹插件 - 一款可以在vim中随时发送osc动弹的vim插件,对于既喜欢vim又喜欢osc的同学来说是非常不错的插件哦

引用

-------

[1] http://brainacle.com/how-to-write-vim-plugins-with-python.html

[2] http://vim.wikia.com/wiki/Write_your_own_Vim_function

[3] https://www.ibm.com/developerworks/aix/library/au-vimplugin/

如果您对算法或编程感兴趣,欢迎扫描下方二维码并关注公众号“算法与编程之美”,和您一起探索算法和编程的神秘之处,给您不一样的解题分析思路。

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!