it-swarm.com.de

So führen Sie eine Suche in Vim durch, bei der die Groß- und Kleinschreibung nicht berücksichtigt wird

Ich möchte nach einem Wort in Großbuchstaben suchen, z. B. COPYRIGHT in einer Datei. Ich habe versucht, eine Suche wie folgt durchzuführen:

/copyright/i    # Doesn't work

aber es geht nicht. Ich weiß, dass in Perl, wenn ich das Flag i in einen regulären Ausdruck verwandle, der reguläre Ausdruck in einen regulären Ausdruck ohne Berücksichtigung der Groß- und Kleinschreibung. Es scheint, dass Vim seine eigene Art hat, einen Regex anzugeben, bei dem die Groß- und Kleinschreibung nicht berücksichtigt wird.

1533
Haiyuan Zhang

Sie müssen die Escape-Sequenz \c verwenden. Damit:

/\ccopyright

Verwenden Sie stattdessen \C, um die Umkehrung durchzuführen (case sensitive matching).

1940
Chinmay Kanchi

Neben den Vorschlägen für \c und ignorecase finde ich die smartcase sehr nützlich. Wenn Sie nach etwas suchen, das Großbuchstaben enthält, wird die Suche in Groß- und Kleinschreibung durchgeführt. Wenn Sie nach Kleinbuchstaben suchen, wird die Suche ohne Berücksichtigung der Groß- und Kleinschreibung durchgeführt. Sie können \c und \C verwenden, um dies zu überschreiben:

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

Sehen:

:help /\c
:help /\C
:help 'smartcase'
639
DrAl

Sie können die Option ic in Vim vor der Suche festlegen:

:set ic

Gehen Sie wie folgt vor, um zu Suchen mit Groß- und Kleinschreibung zurückzukehren:

:set noic

ic steht für ignorecase

271
Nathan Fellman

Sie können den Befehl ausgeben

:set ignorecase

und danach wird die Groß- und Kleinschreibung nicht mehr beachtet.

55
Paolo Tedesco

Um zwischen der Suche nach Groß- und Kleinschreibung zu wechseln, verwende ich diese Zuordnung in meinem .vimrc

nmap <F9> :set ignorecase! ignorecase?

44
vbd

Wie andere vorgeschlagen haben:

:set ic

Aber das Coole ist, dass Sie solche Modi umschalten können mit:

:set ic!
20
fane89

Sie können in Ihrem vimrc die folgenden Befehle verwenden:

  • set ignorecase - Bei allen Suchanfragen wird die Groß- und Kleinschreibung nicht berücksichtigt
  • set smartcase - Bei Ihrer Suche wird zwischen Groß- und Kleinschreibung unterschieden, wenn sie einen Großbuchstaben enthält

Sie müssen ignorecase einstellen, wenn Sie das verwenden möchten, was smartcase bietet.

Ich habe kürzlich geschrieben ein Artikel über Vim-Suchbefehle (sowohl eingebaute Befehle als auch die besten Plugins für eine effiziente Suche).

19
Matthieu

fügen Sie diesen Befehl in Ihre vimrc-Datei ein

set ic 

suche immer ohne Berücksichtigung der Groß-/Kleinschreibung

18

Der gute alte vim[grep] Befehl ..

:vimgrep /example\c/ &
  • \c für Groß- und Kleinschreibung
  • \C für Groß- und Kleinschreibung
  • % soll im aktuellen Puffer suchen

enter image description here

14
Mick

Ich bevorzuge die Verwendung von \c am Ende der Suchzeichenfolge:

/copyright\c
11
Nick Tsai

Wie @huyz erwähnt, wird bei dem manchmal gewünschten Verhalten zwischen Groß- und Kleinschreibung unterschieden, bei Substitutionen jedoch zwischen Groß- und Kleinschreibung unterschieden. Meine Lösung dafür:

nnoremap / /\c
nnoremap ? ?\c

Immer wenn Sie / oder ? drücken, wird \c für die Suche ohne Berücksichtigung der Groß-/Kleinschreibung hinzugefügt.

8
pbogut

Sie können ignorecase standardmäßig festlegen und dies in der Shell ausführen

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

Vim haben 2 Modi

1. Bearbeitungsmodus

  1. normalmodus (Esc)

Die Suche funktioniert im normalen Modus

/\c für Groß- und Kleinschreibung

/\c search

3
Gowthaman