search - vi技巧 - 如何在Vim中進行不區分大小寫的搜索




vim ide (9)

我想搜索大寫字母,例如文件中的COPYRIGHT。 我嘗試執行搜索,如:

/copyright/i    # Doesn't work

但它不起作用。 我知道在Perl中,如果我將i標誌轉換為正則表達式,它會將正則表達式轉換為不區分大小寫的正則表達式。 看來Vim有自己的方式來表示一個不區分大小寫的正則表達式。


好的老vim[grep]命令..

:vimgrep /example\c/ &
  • \ c不區分大小寫
  • \ C區分大小寫
  • 是在當前緩衝區中搜索


Vim有2種模式

1.編輯模式

  1. 正常模式(Esc)

搜索將適用於正常模式

/ \ c區分大小寫

/ \ c 搜索


你可以默認設置ignorecase ,在shell中運行

echo "set ic" >> ~/.vimrc

您可以在搜索之前在Vim中設置ic選項:

:set ic

要返回區分大小寫的搜索,請使用:

:set noic

icignorecase簡寫


您需要使用\c轉義序列。 所以:

/\ccopyright

要進行反轉(區分大小寫的匹配),請改用\C


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

/copyright\c

正如@huyz提到的,有時期望的行為是使用不區分大小寫的搜索,但區分大小寫的替換。 我的解決方案是:

nnoremap / /\c
nnoremap ? ?\c

總是在你打中/ ? 它會為不區分大小寫的搜索添加\c


正如其他人所說的

:set ic

但很酷的東西你可以切換這些模式:

:set ic!

除了\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'






case-insensitive