精华内容
下载资源
问答
  • vim 查找

    千次阅读 2018-10-24 22:34:51
    vim有强大的字符串查找功能。  我们通常在vim下要查找字符串的时候, 都是输入 / 或者 ? 加 需要查找的字符串来进行搜索,比如想搜索 super 这个单词, 可以输入 /super 或者 ?super, 两者的区别是前者是从上往...

     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查找替换

    千次阅读 2018-05-24 08:59:26
    以下所有命令都是在vim的命令模式下输入(按Esc进入命令模式)。 查找 输入/,后面跟要查找的字符串,支持正则表达式,特殊字符要转义。 在查找模式中加入\c表示大小写不敏感查找,\C表示大小写敏感查找(默认...

    以下所有命令都是在vim的命令模式下输入(按Esc进入命令模式)。

    查找

    输入/,后面跟要查找的字符串,支持正则表达式,特殊字符要转义。

    在查找模式中加入\c表示大小写不敏感查找,\C表示大小写敏感查找(默认,可配置)。例如:/foo\c匹配foo,FOO,Foo等。
    按下*可查找光标所在单词(word)。例如当前为foo,可以匹配foo bar中的foo,但不可匹配foobar中的foo。
    按下g*即可查找光标所在单词的字符序列。 例如当前为foo,即foo bar和foobar中的foo均可被匹配到。

    查找所匹配的字符串会高亮显示:
    n光标跳到下一个匹配的字符串,N上一个匹配的字符串。
    取消高亮用:nohl

    替换

    :{作用范围}s/{目标}/{替换}/{替换标志} #{作用范围}和{替换标志}可选,{目标}支持正则表达式,{替换}支持正则分组。
    

    先举例:

    :s/from/to/                     #替换当前行第一个"from"为"to"
    :s/from/to/g                   #替换当前行所有的"from"为"to"
    :%s/from/to/g                #替换所有行所有的"from"为"to"
    :10s/from/to/gi               #替换第10行中所有的"from"或"From"或"FROM"等(大小写不敏感)为"to"
    :1,10s/from/to/g            #替换第1到第10行中所有的"from"为"to"(包含第1,第10行)
    :.,$s/from/to/g                #替换当前行到最后一行
    :.-2,.s/from/to/g              #替换当前行往前2行一直到当前行,共3行。(用+和-表示相对行号)
    

    作用范围:

    举例含义
    .光标所在行(默认)
    $最后一行
    33第33行
    22,33第22~33行(含22和33行)
    .+1光标所在行的下一行
    .,$-2光标所在行到倒数第三行
    .,$当前行到最后一行
    %所有行(与1,$等价)

    替换标志:

    举例含义
    对指定范围内的第一个匹配项进行替换
    g对指定范围内的所有匹配项进行替换
    i大小写不敏感(I表示敏感)
    c在替换前请求用户确认
    e忽略执行过程中的错误

    替换内容:
    在正则式中以\(\)括起来的正则表达式匹配的内容为分组,在后面使用的时候可以用\1\2等变量来访问分组。

    例子:

    :%s/\s+$//g                                          #删除行尾空格
    :%s/^\s*// 或者 %s/^ *//                       #删除行首多余空格
    :%s/^$// 或者 g/^$/d                            #删除沒有內容的空行
    :%s/^\s*$// 或者 g/^\s*$/d                    #删除包含有空格组成的空行
    :%s/^[ |\t]*$// 或者 g/^[ |\t]*$/d              #删除以空格或TAB开头到结尾的空行
    #把文中的所有字符串“abc……xyz”替换为“xyz……abc”可以有下列写法 
    :%s/abc\(.*\)xyz/xyz\1abc/g
    :%s/\(abc\)\(.*\)\(xyz\)/\3\2\1/g  
    

    特殊字符(需要转义):

    元字符说明
    \*匹配* 字符
    \.匹配. 字符
    /匹配 / 字符
    \匹配 \ 字符
    \[匹配 [ 字符
    \]匹配 ] 字符
    \$匹配$ 字符
    \^匹配 ^字符

    正则匹配元字符:

    元字符说明
    .匹配任意字符
    [abc]匹配方括号中的任意一个字符,可用-表示字符范围。如[a-z0-9]匹配小写字母和数字
    [^abc]匹配除方括号中字符之外的任意字符
    \d匹配阿拉伯数字,等同于[0-9]
    \D匹配阿拉伯数字之外的任意字符,等同于[^0-9]
    \x匹配十六进制数字,等同于[0-9A-Fa-f]
    \X匹配十六进制数字之外的任意字符,等同于[^0-9A-Fa-f]
    \l匹配[a-z]
    \L匹配[^a-z]
    \u匹配[A-Z]
    \U匹配[^A-Z]
    \w匹配单词字母,等同于[0-9A-Za-z_]
    \W匹配单词字母之外的任意字符,等同于[^0-9A-Za-z_]
    \t匹配TAB字符
    \s匹配空白字符,等同于[ \t]
    \S匹配非空白字符,等同于[^ \t]
    表示数量元字符说明
    *匹配0-任意个
    \+匹配1-任意个
    \?匹配0-1个
    \{n,m}匹配n-m个
    \{n}匹配n个
    \{n,}匹配大于等于n个
    \{,m}匹配0-m个
    表示位置元字符说明
    $匹配行尾
    ^匹配行首
    \<匹配单词词首
    \>匹配单词词尾

    例子:

    文件内容:

    1234
    5678
    

    执行替换:

    :%s/\(\d\{2}\)/\1|/g
    

    替换后文件内容:

    12|34
    56|78
    
    展开全文
  • vim 查找替换操作命令

    千次阅读 2019-04-15 18:15:18
    Vim查找支持正则表达式,例如/vim$匹配行尾的"vim"。 需要查找特殊字符需要转义,例如/vim$匹配"vim$"。 2,大小写敏感查找 在查找模式中加入\c表示大小写不敏感查找,\C表示大小写敏感查找。例如: /foo\c 将会查找...

    1,查找

    在normal模式下按下/即可进入查找模式,输入要查找的字符串并按下回车。 Vim会跳转到第一个匹配。按下n查找下一个,按下N查找上一个。

    Vim查找支持正则表达式,例如/vim$匹配行尾的"vim"。 需要查找特殊字符需要转义,例如/vim$匹配"vim$"。

    2,大小写敏感查找

    在查找模式中加入\c表示大小写不敏感查找,\C表示大小写敏感查找。例如:

    /foo\c
    将会查找所有的"foo",“FOO”,"Foo"等字符串。

    3,大小写敏感配置

    Vim 默认采用大小写敏感的查找,为了方便我们常常将其配置为大小写不敏感:

    #设置默认进行大小写不敏感查找
    set ignorecase
    #如果有一个大写字母,则切换到大小写敏感查找
    set smartcase 
    

    将上述设置粘贴到你的~/.vimrc,重新打开Vim即可生效

    4,查找当前单词

    在normal模式下按下*即可查找光标所在单词(word), 要求每次出现的前后为空白字符或标点符号。例如当前为foo, 可以匹配foo bar中的foo,但不可匹配foobar中的foo。 这在查找函数名、变量名时非常有用。

    按下g*即可查找光标所在单词的字符序列,每次出现前后字符无要求。 即foo bar和foobar中的foo均可被匹配到。

    5,查找与替换

    :s(substitute)
    

    命令用来查找和替换字符串。语法如下:

    :{作用范围}s/{目标}/{替换}/{替换标志}
    

    例如:%s/foo/bar/g会在全局范围(%)查找foo并替换为bar,所有出现都会被替换(g)

    6,作用范围

    作用范围分为当前行、全文、选区等等。

    当前行:

    :s/foo/bar/g
    

    全文:

    :%s/foo/bar/g
    

    选区,在Visual模式下选择区域后输入:,Vim即可自动补全为 :’<,’>。

    :'<,'>s/foo/bar/g
    

    2-11行:

    :5,12s/foo/bar/g
    

    当前行.与接下来两行+2:

    :.,+2s/foo/bar/g
    

    替换标志
    上文中命令结尾的g即是替换标志之一,表示全局global替换(即替换目标的所有出现)。 还有很多其他有用的替换标志:

    空替换标志表示只替换从光标位置开始,目标的第一次出现:

    :%s/foo/bar
    

    i表示大小写不敏感查找,I表示大小写敏感:

    :%s/foo/bar/i
    

    等效于模式中的\c(不敏感)或\C(敏感)

    :%s/foo\c/bar
    

    c表示需要确认,例如全局查找"foo"替换为"bar"并且需要确认:

    :%s/foo/bar/gc
    

    回车后Vim会将光标移动到每一次"foo"出现的位置,并提示

    replace with bar (y/n/a/q/l/^E/^Y)?
    

    按下y表示替换,n表示不替换,a表示替换所有,q表示退出查找模式, l表示替换当前位置并退出。E与Y是光标移动快捷键,参考: Vim中如何快速进行光标移

    大小写敏感查找
    在查找模式中加入\c表示大小写不敏感查找,\C表示大小写敏感查找。例如:

    /foo\c
    

    将会查找所有的"foo",“FOO”,"Foo"等字符串。

    原文地址:

    https://www.cnblogs.com/huxinga/p/7942194.html

    展开全文
  • VIM 查找文本

    万次阅读 2010-05-13 07:32:00
    VIM 查找文本 查找字符命令f用于在本行内向前搜索。例如fx是向前(Forward)搜索字母x。而命令F是向后(Backward)搜索。例如Fx是向后搜索字母x。与fF这两个相类似的是t和T命令。t命令类似于f向前搜索命令,所...

    VIM 查找文本

     

    查找字符

    命令f用于在本行内向前搜索。例如fx是向前(Forward)搜索字母x。而命令F是向后(Backward)搜索。例如Fx是向后搜索字母x。与f和F这两个相类似的是t和T命令。t命令类似于f向前搜索命令,所不同的是t搜索到时并不是将光标停在目标字符上,而是停在目标字符的前一个字符上。在搜索的过程中,我们可以使用ESC来退出搜索而开始新的工作。

    对于以上四个查找命令,我们可以重复执行这些操作。命令;是按照前一次的查找方向继续查找,如果要向相反的方向查找可以使用,命令。但是这些查找只是在行本行内进行,并不会将光标移动到其它的行。

    查找字符串

    我们可以使用/string命令来向前(Forward)查找字符串string,按下回车后,光标就能跳到正确的地方。在这个命令中,/后的字符是我们想要查找的字符,而回车键则表明了命令的结束。

    有时想要查找的内容并不仅在一处,我们可以在整个文章中进行查找:/可以继续刚才的查找操作。我们还可以使用n命令来继续刚才的查找命令。这两个命令都能达到同样的效果。

    一般来说,在进行查找时总是在向前查找。我们也可以使用?命令向后(Backward)查找。N也是逆向查找命令,他可以实现立即反向查找。

    如果我们想要停止这一查找,可以使用ctrl+C命令,如果是在Windows系统中,则要使用ctrl+Break命令。

    vi具有记录查找命令历史的功能,这样就不用重复输入查找命令了。例如你刚才做过的三次查找分别是:/one,/two,/three。而现在输入/,然后按方向键的上或是下就看到刚才查找的内容显示在vi的下面,这时只要按下回车就会找到想要的内容了。

    指定光标放置位置

    在默认情况下,查找时Vim会将光标放在第一个匹配的结果的开始处。我们也可以指定查找结束后,光标所处的位置。对于向前查找的命令,我们可以在斜线后用数字来指明光标所处的位置,例如/set/2命令会在查找结束后将光标放在第一个set字符串之后第二行的开始处。命令中的数字可以是正数也可以是负数。如果仅是一个简单的数字,光标会被放在第一个匹配字符串之后或之前的数字所指定的行的开始处。正是向后,负数是向前。如果斜线后是b和数字,那么在查找结束后,光标将会放在第一个匹配字符串的开始处,然后向左或是右移动n个字符,这里的n即为数字所指定的数。如果为正数则是向右移动,如果是负数,则是向左移动。例如/set/b2,这个命令使光标在查找结束后放在第一个匹配字符的开始处,然后向右移动两个字符,也就是说最后光标会位于第一个匹配字符串中的t的位置。将b改为s也是一样的效果。而参数e会使得光标放在第一个匹配字符串的结尾处。同样我们也可以用数字来指定向右还是向左移动光标以及移动的字符数。例如/set/e命令会使光标放在第一个匹配字符处的结尾处。如果命令改为/set/e2,会将光标放在第一个匹配字符串的结尾处,然后向右移动2个字符。这里的数字如果是正数则向右移,如果为负数则向左移。

    命令/set/e+2是在查找set字符串结束后,将光标放在第一个匹配字符串的结尾处,然后向右移动两个字符。在这里我们将这个数字称为偏移量。如果要重复上一次的查找,但是需要不同的偏移量,可以用//5命令。不使用偏移量时,可以指明一个空的偏移量,如//命令。/命令,重复前一次的查找,使用相同的偏移量。

    查找命令?也可以实现类似的功能。例如?set?b5命令,是将光标放在最后一个匹配字符串的开头部分,然后向右移动5个字符。??-2命令,则继续前一次的查找命令,但是使用新的偏移量。??命令,是继续前一次的查找命令,但是不使用偏移量。

    立时查找字符串

    如果我们想快速查找当前光标下的字符串,可以使用命令*,这个命令可以向前查找与当前光标下的字符精确匹配的字符串。而命令#,则向后查找与当前光标下的字符精确匹配的字符串。如果当前光标下的字符串为word,在执行*命令查找时并不会与Word相匹配。与这个立时查找命令相类似的就是g*命令。他不会进行严格的匹配。如果用这个命令来查找word,那么就有可能和Word相匹配。而g#命令与其相同,只不过他是向相反的方向进行查找匹配。

    设置查找选项

    我们可以选择高亮显示查找的文本,命令为::set hlsearch,关闭高亮显示的命令为::set nohlsearch。如果想关掉刚才高亮显示的结果,可以使用:nohlsearch命令。

    使用:set incsearch命令,将打开匹配查找选项。在进行查找时就会显示出不断匹配的过程。例如你想查找的内容是include,在打开这个选项后,当你输入/i,光标定位在i上,再继续输入n光标定位在in上,如此直到查打到所要求的内容。关闭这个选项的命令为::set noincsearch

    在默认的情况下,Vim是大小写敏感的。如果一个文件中有这样几个字符串:include,INCLUDE,Include。当我们使用命令/include来查找字符串时,只有include字符会被高亮显示。但是如果我们用:set ignorecase命令打开ignorecase选项后,所有的类似的字符都会被高亮显示。如果这样的查找结果并不是我们想要的,可以使用:set noignorecase命令关闭这个选项。

    如果设置了ignorecase选项后,我们想要查找字符串word,而匹配的则可能是word、Word,WORD。如果我们要查找字符串WORD,匹配的结里也是一样的。但是如果设置了:set ignorecase:set smartcase两项后,执行结果就会变得不一样了:如果我们输入的是小写字符,那么就会匹配各种可能的组合,这时与设置了ignorecase的情况相同,但是如果我们在输入中有一个大写字符,那么这时就变成了精确查找,与设置了noignorecase的情况相同。

    我们在执行查找命令时,也可以用修饰符来控制大小写敏感。在命令中加入修饰符/C将告诉Vim执行大小写敏感的查询,比如?/Cword命令就只匹配单词word。而在命令中加入修饰符/c则执行忽略大小写的查询。

    在默认的情下,我们输入要查找的字符串,vim是从当前光标处向前查找,直到文件的结尾,如果没有找到,那么就会从文件的开头开始查找,直到光标所处的位置。我们可以通过:set nowrapscan命令,来禁止这种循环查找的方式,这样如果已经查找到文件的底部时,就会在底部显示出一条错误信息。如果我们想要回到正常的状态,可以使用:set wrapscan命令。

    命令小结
    f向前搜索并将光标停留在目标字符上
    F向后搜索并将光标停留在目标字符上
    ;重复刚才的查找
    ,反向重复刚才的查找
    t向前搜索并将光标停留在目标字符的前一个字符上
    T向后搜索并将光标停留在目标字符的后一个字符上
    /向前查找
    ?向后查找
    n继续查找
    N反向查找
    *向前查找与当前光标下字符精确匹配的字符串
    #向后查找与当前光标下字符精确匹配的字符串
    :set hlsearch打开高亮显示查找的文本
    :set nohlsearch关闭高亮显示查找的文本
    :nohlsearch关闭当前高亮显示的结果
    :set incsearch打开显示查找匹配过程
    :set noincsearch关闭显示查找匹配过程
    :set ignorecase忽略大小写
    :set noignorecase精确匹配大小写
    :set nowrapscan禁止循环查找方式
    :set wrapscan启用循环查找方式
    展开全文
  • VIM查找命令

    千次阅读 2012-02-01 13:20:06
    ...VIM命令 功能 f 向前搜索并将光标停留在目标字符上 F 向后搜索并将光标停留在目标字符上 ; 重复刚才的查找 , 反向重复刚才的查找 t
  • vim之快速查找功能

    万次阅读 多人点赞 2016-11-16 16:15:38
    vim有强大的字符串查找功能。 我们通常在vim下要查找字符串的时候, 都是输入 / 或者 ? 加 需要查找的字符串来进行搜索,比如想搜索 super 这个单词, 可以输入 /super 或者 ?super, 两者的区别是前者是从上往...
  • VIM查找操作

    千次阅读 2012-08-04 09:18:18
    VIM查找操作 " 搜索 /joe/e : 设置光标到匹配"joe"的末尾 /joe/e+1 : 设置光标到匹配"joe"的末尾再后移一位 /joe/s-2 : 设置光标到匹配"joe“的开头再前移两位 /^joe.*fred.*bill/ : 匹配以'j'开头且"joe...
  • VIM命令 功能 f 向前搜索并将光标停留在目标字符上 F 向后搜索并将光标停留在目标字符上 ; 重复刚才的查找 , 反向重复刚才的查找 t 向前搜索并将光标停留在目标字符的前一个字符上 ...
  • 简单几步: 确保是命令模式(写字在左下角出现) ...输入想查找的文本,如"loadmodule" - 此时左下角是"/loadmodule" 对应文本会高亮显示 显示下一个匹配文本:敲n 显示上一个匹配文本:敲N(大写) 听懂掌声 ...
  • Vim查找操作

    千次阅读 2011-07-22 23:48:38
    :bufdo %s/searchstr/&/gic : 在多个文件缓冲区里查找,按下n停止 " 怎样不使用 / 来查找网址 ?http://www.vim.org/ : 向后查找 " 查找指定字符以外的字符串 /\c\v([^aeiou]&\a){4} : 查找4个辅音字母 -------------...
  • Vim查找替换 & 正则表达式

    万次阅读 2016-02-18 22:13:04
    部分转载自:Vim查找替换及正则表达式的使用 VIM查找替换归纳总结zz 替换 :[range]s/{pattern}/{string}/[flags] :1,10s/from/to/ 表示在第1到第10行(包含第1,第10行)之间搜索替换 :10s/from/to/ 表示只在...
  • linux实用 - vim查找

    千次阅读 2018-02-23 13:16:40
    fF这两个相类似的是t和T命令。t命令类似于f向前搜索命令,所不同的是t搜索到时并不是将光标停在目标字符上,而是停在目标字符的前一个字符上。在搜索的过程中,我们可以使用ESC来退出搜索而开始新的工作。 对于...
  • vim 快速查找功能

    千次阅读 2018-11-16 11:39:57
    &nbsp; &... vim有强大的字符串查找功能。 &nbsp; &nbsp; &nbsp; 我们通常在vim下要查找字符串的时候, 都是输入 / 或者 ? &nbsp;加 需要查找的字符串...
  • vim文件查找

    千次阅读 2013-03-11 16:28:39
    vim查找文件  查找文件    假定现在你在编辑一个 C 程序, 该程序有这样一行:    #include "inits.h"     你想要查看文件 "inits.h" 里有些什么. 把光标移到该文件名上, 并键入:    gf    Vim 就会找到并...
  • far.vim-查找和替换Vim插件 介绍 Far.vim使得通过多个文件查找和替换文本更加容易。 它受IntelliJ和Eclipse之类的精美IDE的启发,这些IDE为此类任务提供了舒适的工具。 安装 Plug ' brooth/far.vim ' 用法 使用命令...
  • vim 查找不区分大小写

    万次阅读 2012-01-08 16:44:13
    默认情况下vim是区分大小写的。   如何让它不区分大小写呢?   :set ic 和 :set noic Ignore Case的縮寫 或者是查找时:   /查找内容/c   使用正则表达式来进行转义 舉例來說,若想取代所有AAA...
  • 查找大体积文件 栗子 : 查找根目录下文件体积大于100MB的文件,并按照文件体积由大到小排列 方法:find / -type f -size +100M | xargs ls -lh -S vim 统计重复字符出现的次数 :%s/xxxxx/&/gn
  • [倚天屠龙记] vim 查找与替换(正则表达式) {{{  正则表达式是文本处理领域中的一个强大的工具,它可以让文本处理的能力呈指数级的提升,如果一款文本编辑器不支持正则表达式,那么它就算不上是一个现代化的编辑器...
  • 例如查找包含字符串push success ! deviceId的内容 # 使用‘\’转义空格,如果查找的字符串包含特殊字符,需要使用‘\’转义 tail -f normal.log | grep push\ success\ \!\ deviceId cat normal.log | grep push...
  • vim 递归查找多目录

    千次阅读 2013-08-11 10:55:40
    有一个src目录 src/trade/a.pc b.pc c.pc src/public/d.pc e.c src/redeem/f.pc 如果vim打开的是当前src/trade/b.pc ...:vimgrep /aabb\c/ ../**/*.pc 递归查找所有pc文件  1. vimgrep可以简写为vim 

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 67,712
精华内容 27,084
关键字:

fvim查找