vim 插件_Vim 新人试写插件

412df3c65e22c713065bc23d8d552b9c.png

作为一名工具控,我最喜欢的编辑器就是 Vim 了. Vim 作为一个文本编辑器,操作快捷,扩展方便,与终端无缝贴合,可玩性极高。

断断续续用了一年多 Vim,我都是用着别人开发的许多插件,每当看到有人用插件在 Vim 里面实现许多奇葩的功能我都惊叹不已.

我在用 Vim 浏览文件内容的时候,经常会 Google 文件里面的有些文本。常规的操作是先用 viw"*y把该词复制到系统剪切板,然后切换到浏览器, 按下 Ctrl T 打开一个新标签页,然后按下 Ctrl V 将该词粘贴进浏览器搜索栏并按 Enter 进行搜索。

一直这样子搜,经常要这样一顿操作就觉得有点累,为什么不写个钩子,在 Vim 里面用快捷键直接触发浏览器搜索呢?虽然在 vimrc 里面写几行就能实现这个功能,但是如果有现成插件的直接拿来用更省事。于是我先去网上搜了一把,记得我找到过两三个,可惜都是四年前的写的了,作者们也都中断维护了。试了一下,都不能用。其中有一个在 Linux 上可以,但是在 Windows 上就不行。

既然如此,那就从头造个轮子吧。这个需求比较单一,所以实现起来也很简单,首先需要学一下 VimL,其次要了解 Vim 对每个配置文件的加载方式。VimL 是个很简单的脚本语言,看看 Learn Vimscript the Hard Way 就差不多了。顺带一提,由于 VimL 是要对文本作操作的,所以这里面有一个比较绕的东西就是 VimL 中变量的命名空间,详情参考 What's the difference between let and set? 可以看到 VimL 中有多达8种对应不同作用域的变量,使用时要搞懂再用,否则会经常出现 Undefined variable xxx 的情况。

暑假闲散在家,经过几天折腾,终于揉完了我的第一个 Vim 小插件vim-browser-search。回到学校后我又简单整理了一下,加入了一些除 Google 之外的一些内置搜索引擎和命令。包括 Wolfram|Alpha(SearchInMMA) , GitHub(SearchInGitHub), StackOverflow(SearchInSO),Zhihu(SearchInZhihu)等。由于 Vim8 和 Neovim 出了异步特性,所以我又给插件增加了异步支持,解决了切换搜索时偶尔瞬间卡顿和 Vim 黑屏的问题。

链接

voldikss/vim-browser-search​github.com
08d6307f7db7985f3eae6b8938d59136.png

更新:

  • 添加了 operator-pending 模式的支持,可以结合 text-object 特性,更方便了。比如用 <Leader>siw 搜索光标下word,<Leader>siW搜索 WORD,用<Leader>I)搜索括号里面的内容等。
  • 增加了url 检测的一步,如果选中的部分包含 网址,则直接打开该网址。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值