zoukankan      html  css  js  c++  java
  • vim之快速查找功能

    vim有强大的字符串查找功能。

          我们通常在vim下要查找字符串的时候, 都是输入 / 或者 ?  加 需要查找的字符串来进行搜索,比如想搜索 super 这个单词, 可以输入  /super  或者  ?super,  两者的区别是前者是从上往下搜索,后者是从下往上搜索。

          那么如果我想搜索本行中某个单词,并且这个单词很长的时候, 手动输入该字符串是非常麻烦的, 当然可以使用模糊匹配(如* 或 ?)来做, 不过这样可能搜得到很多其他的,不完全匹配的字符串。

          可以使用如下方式来实现快速查找:

    1, 最快的方式是让光标停留在想要查找的单词的任意一个字母上面, 然后输入Shift + *  ,即可快速选中该单词,并且可以通过 n  或  N 进行上一个或下一个的匹配。

    2, 让光标停留在单词的第一个字母上, 然后输入yw拷贝该单词, 然后输入 / (Ctrl + R) 0 (即 /”0),回车, 就查找到了第一个匹配的单词, 并且可以通过 n  或  N 进行上一个或下一个的匹配。

    解释一下:

    Ctrl + r 是指使用寄存器 , 你会发现先输入/ , 然后输入 Ctrl + r , 会立刻变为 “ , 即寄存器的前缀, 然后 ”0 就可以理解了吧? 合起来就是 /“0, 就是查找刚才复制的那个单词, 不懂的请查看上一个帖子:

    http://blog.csdn.net/ballack_linux/article/details/53078836

    3, 还有一种方式, 和第二种方式差不多,不过是将单词拷贝到系统剪贴板, 然后再从系统剪贴板拿出来。 即选中需要查找的单词, 然后输入 “+y, 然后输入/(Shfit + Ctrl + v), 就查找到了第一个匹配的单词, 并且可以通过 n  或  N 进行上一个或下一个的匹配。

    以上, 最方便的还是第一种, 高效快捷, 值得推荐!!

    升级版!!

    首先安装ag搜索工具, 输入如下命令:

    sudo  apt-get   install    silversearcher-ag

    接着在~/.vimrc中添加以下内容:

    " Set mapleader
    let mapleader = ","

    " for easy using sliver search
    nmap <leader>f :norm yiw<CR>:Ag! -t -Q "<C-R>""


    " Locate and return character "above" current cursor position.
    function! LookUpwards()
        let column_num = virtcol('.')
        let target_pattern = '\%' . column_num . 'v.'
        let target_line_num = search(target_pattern . '*S', 'bnW')


        if !target_line_num
            return ""
        else
            return matchstr(getline(target_line_num), target_pattern)
        endif
    endfunction


    imap <silent> <C-Y> <C-R><C-R>=LookUpwards()<CR>

    然后任意打开一个文件, 比如下图中的dhd_linux.c文件:

    将光标放在函数dhd_module_init上,通过快捷键“ , + F ”(因为上面设置了mapleader是字符‘,’),即可在界面下方看到本路径下所有包含dhd_module_init的声明和调用:

    此时光标是在下方列出的方框内, 选择任意一行, 按Enter或  字母 “o” 即可跳转, 非常方便!!

    from:https://blog.csdn.net/ballack_linux/article/details/53187283

  • 相关阅读:
    Eclipse编辑JS响应慢,复制粘贴卡顿的解决方案
    Oracle 通过字段名查询其所在的表
    spring mvc流转控制说明
    Iterable(迭代器)的用法
    spring事务配置详解
    创建第一个Hiberntae工程
    spring3.0注解
    Ext中Grid重新load设置URL
    spring框架设计理念(上)
    Eclipse快捷键大全
  • 原文地址:https://www.cnblogs.com/hankleo/p/10703368.html
Copyright © 2011-2022 走看看