vim之快速查找功能

原创 2016年11月16日 16:15:38

      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” 即可跳转, 非常方便!!

vim的查找字符串

一、用/和?的区别:/后跟查找的字符串。vim会显示文本中第一个出现的字符串。?后跟查找的字符串。vim会显示文本中最后一个出现的字符串。二、注意事项:不管用/还是?查找到第一个字符串后,按回车,vi...
  • hi_kevin
  • hi_kevin
  • 2011年07月05日 16:33
  • 103753

VIM 查找文本

VIM 查找文本 查找字符命令f用于在本行内向前搜索。例如fx是向前(Forward)搜索字母x。而命令F是向后(Backward)搜索。例如Fx是向后搜索字母x。与f和F这两个相类似的是t和T命令。...
  • hitustc
  • hitustc
  • 2010年05月13日 07:32
  • 52288

简单问题:VIM中 查找 “上一个” 的快捷键是什么?

输入: /abc     查询 abc 开头的单词 之后,所以以abc开头的单词都会标记高亮 输入 n  会查找下一个结果...

vim 精确皮配查找单词

精确匹配查找单词 如果你输入 "/the",你也可能找到 "there"。要找到以 "the" 结尾的单词,可以用: /the\> "\>" 是一个特殊的记号,表示只匹配单词末尾。类似地,"\ ...

VIM中如何进行查找和替换

VIM中字符串的查找和替换

vim查找关键字的好方法

转:http://blog.csdn.net/ghj1976/article/details/6066069 当你用vi打开一个文件后,因为文件太长,如何才能找到你所要查找的关键字呢?   ...

vim查找字符串-全词匹配、不区分大小写

vim中查找字符串的时候一般有3中需求: 普通查找 命令模式下,按’/’或’?’,然后输入要查找的字符,Enter。/和?的区别是,一个向前(下)找,一个向后(上)。 全词匹配 如果你输入 “/int...
  • yockie
  • yockie
  • 2016年07月22日 15:07
  • 10413

活用VIM:全局搜索并跳转

使用VIM 来进行灵活的全局搜索跳转

vim查找高亮以及替换操作

使用了VIM这么久,却一直无法牢记一些基本的操作指令。今天查找一个关键字时,想不起来怎么查找“下一个”,于是google之并解决,顺便把有用的都贴过来罢。 查找指令: /xxx 往下查找 ?...
  • lwfcgz
  • lwfcgz
  • 2014年09月02日 13:33
  • 3763

VI/VIM几种快速搜索功能

vim有强大的字符串查找功能。       我们通常在vim下要查找字符串的时候, 都是输入 / 或者 ?  加 需要查找的字符串来进行搜索,比如想搜索 super 这个单词, 可以输入  /supe...
  • babys
  • babys
  • 2017年04月20日 08:50
  • 1192
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:vim之快速查找功能
举报原因:
原因补充:

(最多只允许输入30个字)