G_virus
V2EX  ›  Vim

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

  •  
  •   G_virus · Jan 8, 2014 · 14895 views
    This topic created in 4686 days ago, the information mentioned may be changed or developed.
    https://github.com/dyng/ctrlsf.vim

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

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

    欢迎各位提issue~ 当然如果是pull-request的话就更好了 :)
    Supplement 1  ·  Jan 14, 2014
    更新到0.05版,欢迎大家更新测试~

    新增了以下功能以及bugfix:

    1. 无参数时默认搜索光标下单词
    2. 修正了和tagbar的冲突
    3. 新增预览模式,快捷键p
    4. 自动展开目标文件的折叠
    Supplement 2  ·  Feb 1, 2014
    更新到v0.08,新增了以下特性:

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

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

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

    写到v0.1版且基本稳定的话就作为正式版发布了~
    Supplement 3  ·  Mar 3, 2014
    更新至v0.09,增加了以下特性

    1. 增加了快捷键t和T(在新的标签页打开选定文件),以及O(打开文件同时不关闭ctrlsf窗口)。
    2. 增加新的配置项g:ctrlsf_leading_space,用于控制缩进时使用的空格数。注意这里的空格数包括行号占用的列数。默认值12,推荐不要设置小于8(因为如果文件超过10万行的话,行号本身就要占用6个字符,再加上最后的冒号1个字符,共7个字符),不过如果缩进太深使得显示效果不好的话可以适当缩小。

    另外因为平时很少使用标签页,如果有什么bug或者对现在的默认行为有什么建议的话请发issue指出。
    34 replies  •  2015-09-10 14:34:26 +08:00
    loseblue
    loseblue
    Jan 8, 2014❤️1
    1
    好东西!支持楼主一个
    Numbcoder
    Numbcoder
    Jan 8, 2014
    2
    一直想要这么个插件,可惜自己不会 Viml。
    感谢!
    yangg
    yangg
    Jan 8, 2014
    3
    用:命令这种用起来不方便吧,可以弄成lookupfile那种弄个输入框的?
    strak47
    strak47
    Jan 8, 2014
    4
    为什么提示 E117: Unknown function: CtrlSF#Search 呢
    G_virus
    G_virus
    OP
    Jan 8, 2014
    5
    @yangg 可以用映射来方便输入,比如我设了:

    nnoremap <C-F> :CtrlSF<space>

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

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

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

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

    let g:ctrlsf_open_left = 0
    G_virus
    G_virus
    OP
    Jan 8, 2014
    13
    @strak47 尝试一下更新vundle。最好能在Github上提一个issue,把你的系统版本,vim版本等信息附一下。

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

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

    下一版会加入“无参数时搜索光标下单词”的功能。
    G_virus
    G_virus
    OP
    Jan 8, 2014
    15
    @strak47 抱歉,已经修复了,请更新最新版。

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

    同时增加了对ack-grep的支持。感谢提交issue。
    strak47
    strak47
    Jan 8, 2014
    16
    @G_virus 已更新,赞一个~
    hhkbp2
    hhkbp2
    Jan 9, 2014
    17
    顶原创
    G_virus
    G_virus
    OP
    Jan 14, 2014
    18
    更新到0.05版,欢迎大家更新测试~

    新增了以下功能以及bugfix:

    1. 无参数时默认搜索光标下单词
    2. 修正了和tagbar的冲突
    3. 新增预览模式,快捷键p
    4. 自动展开目标文件的折叠
    leon907
    leon907
    Jan 15, 2014
    19
    很好用 谢谢
    G_virus
    G_virus
    OP
    Feb 1, 2014
    20
    更新到v0.08,新增了以下特性:

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

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

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

    写到v0.1版且基本稳定的话就作为正式版发布了~
    zhouquanbest
    zhouquanbest
    Feb 1, 2014
    21
    赞 之前用ag.vim就觉得很蛋疼
    Numbcoder
    Numbcoder
    Feb 1, 2014 via iPhone
    22
    @G_virus 过年都不休息啊,辛苦了!
    G_virus
    G_virus
    OP
    Feb 1, 2014
    23
    @Numbcoder 码年嘛
    marchtea
    marchtea
    Feb 1, 2014
    24
    同来感谢,已star~
    xi4oh4o
    xi4oh4o
    Feb 1, 2014
    25
    非常棒:)
    G_virus
    G_virus
    OP
    Feb 2, 2014
    26
    @marchtea @xi4oh4o 感谢star :)
    griffinqiu
    griffinqiu
    Feb 2, 2014 via iPhone
    27
    谢谢,马上起床试试
    G_virus
    G_virus
    OP
    Mar 3, 2014
    28
    更新至v0.09,增加了以下特性

    1. 增加了快捷键t和T(在新的标签页打开选定文件),以及O(打开文件同时不关闭ctrlsf窗口)。
    2. 增加新的配置项g:ctrlsf_leading_space,用于控制缩进时使用的空格数。注意这里的空格数包括行号占用的列数。默认值12,推荐不要设置小于8(因为如果文件超过10万行的话,行号本身就要占用6个字符,再加上最后的冒号1个字符,共7个字符),不过如果缩进太深使得显示效果不好的话可以适当缩小。

    另外因为平时很少使用标签页,如果有什么bug或者对现在的默认行为有什么建议的话请发issue指出。
    fooCoder
    fooCoder
    Mar 6, 2014
    29
    cool
    Fedor
    Fedor
    Mar 26, 2014
    30
    哇,最想要得就是这个功能。
    kshatriya
    kshatriya
    Apr 25, 2014
    31
    ...我用unite
    Aspirin
    Aspirin
    Apr 26, 2014
    32
    非常好用,非常感谢。
    hominlinx
    hominlinx
    Nov 19, 2014
    33
    只搜索后缀名为cpp的关键字
    用啥啊
    ThomasZ
    ThomasZ
    Sep 10, 2015
    34
    cool
    正在找一个类似的全局搜索呢
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1653 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 49ms · UTC 11:55 · PVG 19:55 · LAX 03:55 · JFK 06:55
    ♥ Do have faith in what you're doing.