首页 文章

如何在Vim中进行不区分大小写的搜索

提问于
浏览
1411

我想搜索大写单词,例如文件中的COPYRIGHT . 我尝试过执行搜索:

/copyright/i    # Doesn't work

但它不起作用 . 我知道在Perl中,如果我将 i 标志放入正则表达式,它会将正则表达式转换为不区分大小写的正则表达式 . 似乎Vim有自己的方式来表示不区分大小写的正则表达式 .

13 回答

  • 13

    您可以发出命令

    :set ignorecase
    

    之后,您的搜索将不区分大小写 .

  • 50

    要在区分大小写和不区分大小写的搜索之间切换,我在.vimrc中使用此映射

    nmap <F9> :set ignorecase! ignorecase?

  • 41

    将此命令放在vimrc文件中

    set ic
    

    总是做不区分大小写的搜索

  • 2

    正如其他人所说:

    :set ic
    

    但很酷的东西是你可以切换这样的模式:

    :set ic!
    
  • 8

    好老的vim [grep]命令..

    :vimgrep /example\c/ &
    
    • \ c表示不区分大小写

    • \ C表示区分大小写

    • %是在当前缓冲区中搜索


    enter image description here

  • 17

    您需要使用 \c 转义序列 . 所以:

    /\ccopyright

    要进行反向(区分大小写的匹配),请改用 \C .

  • 248

    除了对 \cignorecase 的建议外,我发现 smartcase 非常有用 . 如果搜索包含大写字符的内容,它将执行区分大小写的搜索;如果你搜索纯粹小写的东西,它会做一个不区分大小写的搜索 . 您可以使用 \c\C 来覆盖此:

    :set ignorecase
    :set smartcase
    /copyright      " Case insensitive
    /Copyright      " Case sensitive
    /copyright\C    " Case sensitive
    /Copyright\c    " Case insensitive
    

    看到:

    :help /\c
    :help /\C
    :help 'smartcase'
    
  • 11

    您可以在搜索之前在Vim中设置 ic 选项:

    :set ic
    

    要返回区分大小写的搜索,请使用:

    :set noic
    

    icignorecase 的简写

  • 7

    您可以在 vimrc 中使用这些命令:

    • set ignorecase - 您的所有搜索都不区分大小写

    • set smartcase - 如果搜索包含大写字母,则搜索将区分大小写

    如果要使用 smartcase 提供的内容,则需要设置 ignorecase .

    我最近写了an article about Vim search commands(内置命令和最好的插件来高效搜索) .

  • 1779

    我更喜欢在搜索字符串的末尾使用 \c

    /copyright\c
    
  • 2

    正如@huyz提到的,有时候期望的行为是使用不区分大小写的搜索,但是区分大小写的替换 . 我的解决方案:

    nnoremap / /\c
    nnoremap ? ?\c
    

    总是当你点击 /? 时,它会添加 \c 以进行不区分大小写的搜索 .

  • 589

    Vim有2种模式

    1.edit模式

    • 普通模式(Esc)

    搜索将适用于普通模式

    /\c 区分大小写

    /\csearch

  • 6

    您可以默认设置 ignorecase ,在shell中运行它

    echo "set ic" >> ~/.vimrc
    

相关问题