web-dev-qa-db-ja.com

Vimで大文字と小文字を区別しない検索をする方法

ファイル内のCOPYRIGHTなど、大文字のWordを検索したいのですが。私は検索を実行しようとしました:

/copyright/i    # Doesn't work

しかし、うまくいきません。 Perlでは、iフラグを正規表現に指定すると、正規表現が大文字と小文字を区別しない正規表現に変わることを私は知っています。 Vimには大文字と小文字を区別しない正規表現を示す独自の方法があるようです。

1483
Haiyuan Zhang

\cエスケープシーケンスを使用する必要があります。そう:

/\ccopyright

逆の場合(case sensitive matching)、代わりに\Cを使用してください。

1873
Chinmay Kanchi

\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'
619
DrAl

検索の前にVimのicオプションを設定することができます。

:set ic

大文字と小文字を区別する検索に戻るには、次のようにします。

:set noic

icignorecaseの省略形です。

258
Nathan Fellman

あなたはコマンドを発行することができます

:set ignorecase

それ以降は、検索で大文字と小文字が区別されません。

51
Paolo Tedesco

大文字と小文字を区別する検索と区別しない検索を切り替えるには、このマッピングを.vimrcで使用します。

nmap <F9> :set ignorecase! ignorecase?

43
vbd

他の人が示唆したように:

:set ic

しかし、クールなものはあなたがそのようなモードを切り替えることができます:

:set ic!
17
fane89

このコマンドをあなたのvimrcファイルに書いてください。

set ic 

常に大文字と小文字を区別しない検索を行う

17

あなたのvimrcでこれらのコマンドを使うことができます:

  • set ignorecase - すべての検索で大文字と小文字が区別されません
  • set smartcase - 検索に大文字が含まれていると、大文字と小文字が区別されます。

ignorecaseが提供するものを使用したい場合は、smartcaseを設定する必要があります。

私は最近 Vimの検索コマンドに関する記事を書いた (両方とも組み込みコマンドと効率的に検索するための最良のプラグイン).

14
Matthieu

古きvim[grep]コマンド.

:vimgrep /example\c/ &
  • \c 大文字と小文字を区別しない
  • \C 大文字と小文字を区別する
  • % 現在のバッファを検索します。

enter image description here

13
Mick

検索文字列の末尾に\cを使用することを好みます。

/copyright\c
9
Nick Tsai

@huyzが言及しているように、望ましい振る舞いは、大文字と小文字を区別しないが大文字と小文字を区別する置換を使用することです。そのための私の解決策:

nnoremap / /\c
nnoremap ? ?\c

/?を押すと、大文字と小文字を区別せずに\cが追加されます。

7
pbogut

デフォルトでignorecaseを設定することができます、これをシェルで実行してください

echo "set ic" >> ~/.vimrc
2
Steely Wing

Vimには2つのモードがあります

1.編集モード

  1. 通常モード(Esc)

検索は通常モードでも動作します

/\ c 大文字と小文字を区別する

/\ c 検索

2
Gowthaman