文档章节

让人相见恨晚的vim插件:模糊查找神器LeaderF

Yggdroot
 Yggdroot
发布于 2017/09/07 16:25
字数 734
阅读 11
收藏 0

提到vim的模糊查找插件,很多人第一反应是ctrlp.vim,ctrlp知名度很高,但跟其它的同类插件相比,它的唯一优点是用vimL编写(这让它的性能是所有同类插件中最差的)。本文向大家推荐一款模糊查找插件——LeaderF,无论是从性能还是匹配精度上,都远远超越ctrlp。

LeaderF是什么?

LeaderF是一个用Python写的vim插件,可以在成千上万数十万个文件中,通过模糊查找的方式,快速找到目标文件。它还有很多衍生功能:快速打开或定位某个buffer、最近使用的文件(mru)、tags(包括函数、类、变量等)、命令历史、文件中的某一行、vim的help、marks等等。

查找文件

文件查找是vimer的常用操作,海量文件中快速定位目标文件是很多vimer迫切需要的功能,所以就有了ctrlp这样的插件。但ctrlp性能不佳,而且有时候把目标文件名都输入进搜索栏还是找不到目标文件,最大的问题是它的模糊匹配算法不佳,经常排在前面的跟所要找的相去甚远。LeaderF采用异步检索和精心设计的模糊匹配算法完美地解决了这些问题,当你在根目录(/)按下搜索命令,再也没有想剁手的冲动了; 查找文件时,用更少的键击次数就可以找到目标文件, 延长你的键盘使用寿命 :)

  • 异步检索

    异步检索

  • 模糊查找

    模糊查找

  • 正则表达式查找

    正则

  • 多字节字符查找(中文查找)

    中文

快速定位tags(包括函数、类、变量等)

有了它,tagbar可以淘汰掉了:

tags

查找历史命令

History

切换Colorscheme

Colorscheme


当然还有其他功能就不一一展示了,感兴趣的小伙伴可以查看这里

你不知道的细节

  • 智能大小写(smartcase) 如果输入的搜索字符都是小写字母,则匹配是大小写不敏感的;如果输入大写字母,则只匹配大写字母,小写字母仍然是大小写不敏感的。例如,输入abcDef,可以匹配如下字符串:
abcDef
AbcDef
abcDEf
aBcDeF

但不能匹配:

abcdef
Abcdef

注意abcef仍然是大小写不敏感的 这样可以通过大写字母,在搜索过程中快速缩小搜索范围。

  • 同时打开多个文件

    同时打开多个文件

  • 细化搜索结果

    细化搜索结果

开箱即用

上面所有的功能都不需要额外的配置,只要装好LeaderF插件就可以使用了,不像有的插件,配置就像一门新的脚本语言。

最后

LeaderF还支持写扩展程序,这里是一个样例。

友情链接:LeaderF,也許是Vim最好的模糊查詢插件

© 著作权归作者所有

共有 人打赏支持
Yggdroot
粉丝 0
博文 1
码字总数 734
作品 0
徐汇
私信 提问
加载中

评论(1)

红薯
红薯
托管到码云吧,我们来推荐:)
如何使用 Python 编写 vim 插件

前言 vim是个伟大的编辑器,不仅在于她特立独行的编辑方式,还在于她强大的扩展能力。然而,vim自身用于写插件的语言vimL功能有很大的局限性,实现功能复杂的插件往往力不从心,而且运行效率...

Yggdroot
2017/11/28
0
0
jaywcjlove/vim-web

Only tested on Mac OSx 目录 点击展开目录菜单 安装Vim-Web 插件管理 理解Vim 常用快捷键 基本配置说明 基础使用 搜索查找替换 文件恢复 多文档编辑 环境恢复 插件列表 错误处理 参考资料 ...

jaywcjlove
2017/08/19
0
0
VIM 管理好插件,神器也可以华丽

有过VIM使用和配置经验的同学都知道,VIM经过配置之后可以同IDE相媲美,作为神器当之无愧~ 不过,配置VIM也是很麻烦的,很多时候当我们需要换系统,或者是备份资料,到其他机器使用的时 候就...

i33
2012/11/28
0
3
专属于你自己的vim 神器的打造方式

Vim 是一个上古神器,本篇文章主要持续总结使用 Vim 的过程中不得不了解的一些指令和注意事项,以及持续分享一个前端工作者不得不安装的一些插件,而关于 Vim 的简介,主题的选择,以及为何使...

马哥教育
2017/10/30
0
0
Sublime Text 3 绝对神器

  忘记了是怎么开始用的ST,应该是在网上看到别人推荐才用到吧,用了有半年了。在windows下是绝对的神器,Notepad++之类的无可比拟;linux下,因为有个vim,鄙人对vim不懂,所以孰好孰更好...

lvshuocool
2016/11/08
31
0

没有更多内容

加载失败,请刷新页面

加载更多

LIst的逆向遍历

public class list_demo { public static void main(String[] args) {// TODO Auto-generated method stub List list=new ArrayList<>(); list.add("a"); list.add("b");......

南桥北木
52分钟前
3
0
Linux下端口转发工具rinetd介绍

linux下简单好用的工具rinetd,实现端口映射/转发/重定向,针对TCP协议,不支持UDP。 官网地址 http://www.boutell.com/rinetd 里面介绍及使用齐全。 使用场景举例: 阿里云内网Redis连接问题...

ouhoo
今天
5
0
Oracle学习日志-5(算数运算符,比较运算符和逻辑运算符)

因为有编程基础,所以对于这一章还是很好理解,只需要注意对NULL的运算。 操作的表格 算数运算符 查询商品名字和商品售价,并商品售价乘2 SELECT product_name,sale_price * 2 AS "sale_pri...

白话
今天
3
0
搜索引擎(Lucene介绍、分词器详解)

Lucene介绍 Lucene简介 最受欢迎的java开源全文搜索引擎开发工具包。提供了完整的查询引擎和索引引擎,部分文本分词引擎(英文与德文两种西方语言)。Lucene的目的是为软件开发人员提供一个简...

这很耳东先生
今天
5
0
quartz详细介绍

quartz常用api Scheduler 调度程序交互的主要API。 Job 希望由调度程序执行的组件实现的接口。 JobDetail 用于定义作业的实例。 JobDataMap 可以包含不限量的序列化数据,在job运行的时候可以...

大笨象会跳舞吧
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部