写了一个仿sublime全局搜索的vim插件

2014-01-08 12:05:22 +08:00
 G_virus
https://github.com/dyng/ctrlsf.vim

使用ag或者ack作为作为后端,所以首先你需要安装这两个工具(推荐ag,速度比ack快很多)。

当初因为觉得ack.vim的结果只显示一行,没有上下文看起来非常痛苦,所以仿照了sublime的'Find in Files...'写了这个插件。相比于sublime的一点优势是使用了ag作为后端,所以搜索会很快。(在10w行以上的一个公司项目里搜索也只需要半秒左右)

欢迎各位提issue~ 当然如果是pull-request的话就更好了 :)
13285 次点击
所在节点    Vim
34 条回复
loseblue
2014-01-08 12:23:41 +08:00
好东西!支持楼主一个
Numbcoder
2014-01-08 13:12:06 +08:00
一直想要这么个插件,可惜自己不会 Viml。
感谢!
yangg
2014-01-08 13:18:49 +08:00
用:命令这种用起来不方便吧,可以弄成lookupfile那种弄个输入框的?
strak47
2014-01-08 15:44:45 +08:00
为什么提示 E117: Unknown function: CtrlSF#Search 呢
G_virus
2014-01-08 15:48:14 +08:00
@yangg 可以用映射来方便输入,比如我设了:

nnoremap <C-F> :CtrlSF<space>

这样按了Ctrl+F之后就可以直接输入了。
G_virus
2014-01-08 15:50:34 +08:00
@strak47 你是使用什么方法安装的?这个错误说明autoload/ctrlsf.vim因为某些原因没有加载。
loseblue
2014-01-08 15:51:32 +08:00
nmap <F3> <ESC>:CtrlSF <c-r><c-w><CR>
nmap <C-F3> <ESC>:CtrlSFOpen<CR>

这样按F3就可以直接搜索光标的所在词了。
loseblue
2014-01-08 15:57:11 +08:00
报两个bug:
在tabbar返回时会出现错误,有时会在tabbar中打开了跳转文档,有时tabbar会空出很大一片空白
当开启了tagbar后,跳转后会导致tagbar被拉宽

一个需求:
希望把代码预览缩掉一些空格,我有些超过30个空格的缩进,导致预览效果很差

总的来说是好软件!希望楼主加油!
strak47
2014-01-08 16:08:55 +08:00
@G_virus 就通过vundle啊, 卸了再装还是这样。。
Numbcoder
2014-01-08 16:09:48 +08:00
@G_virus
已经用上了,非常不错!
希望能支持搜索结果窗口垂直分割
yangg
2014-01-08 16:40:14 +08:00
@G_virus 不是映射的问题,是随着输入的文本改变,显示的结果要变的问题
G_virus
2014-01-08 18:47:07 +08:00
@loseblue 确实可能是bug,因为目前的实现是在进入CtrlSF窗口前的最后一个窗口打开新文件。有一个work around的方法是把CtrlSF打开的位置调整到右边(如果你的Tagbar是在左边的话)

let g:ctrlsf_open_left = 0
G_virus
2014-01-08 18:54:09 +08:00
@strak47 尝试一下更新vundle。最好能在Github上提一个issue,把你的系统版本,vim版本等信息附一下。

@Numbcoder 感谢支持,会加入之后的开发计划中的。

@yangg 实时搜索我感觉不是很必要,不过会考虑一下。

下一版会加入“无参数时搜索光标下单词”的功能。
hitsmaxft
2014-01-08 19:22:55 +08:00
G_virus
2014-01-08 22:28:27 +08:00
@strak47 抱歉,已经修复了,请更新最新版。

其实是个很恶心的bug……因为Mac的文件系统大小写不敏感,所以尽管函数名大小写拼错了但在Mac上依然能跑,换到Linux这样的大小写敏感的文件系统上就找不到函数了……

同时增加了对ack-grep的支持。感谢提交issue。
strak47
2014-01-08 23:50:22 +08:00
@G_virus 已更新,赞一个~
hhkbp2
2014-01-09 11:35:50 +08:00
顶原创
G_virus
2014-01-14 23:13:50 +08:00
更新到0.05版,欢迎大家更新测试~

新增了以下功能以及bugfix:

1. 无参数时默认搜索光标下单词
2. 修正了和tagbar的冲突
3. 新增预览模式,快捷键p
4. 自动展开目标文件的折叠
leon907
2014-01-15 11:43:28 +08:00
很好用 谢谢
G_virus
2014-02-01 17:59:27 +08:00
更新到v0.08,新增了以下特性:

1. 新增preview模式,按p开启。个人对这个功能还比较满意 : )
2. 新增快捷键Ctrl-J和Ctrl-K,快速移动到下一个和上一个匹配。
3. 支持airline,状态栏中会显示:
1) 搜索的字符串。
2) 光标所在行所处的文件。
3) 总匹配数以及当前匹配数。
4. 在搜索结果的最开头会显示匹配的总行数以及总文件数。

欢迎各位提bug和feature request,下一版预定增加的特性有:

1. 自定义缩进的空格数。
2. 在新标签页中打开文件。

写到v0.1版且基本稳定的话就作为正式版发布了~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/96130

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX