Wie kann ich in vim nach einem Muster suchen, bei dem die Groß- und Kleinschreibung NICHT beachtet wird?

18

Ich durchsuche gelegentlich Dateien in vimoder unter lessVerwendung von /oder, ?aber soweit ich das beurteilen kann, wird bei den Suchmustern zwischen Groß- und Kleinschreibung unterschieden.

Also zum Beispiel /foonicht die gleichen Dinge finden, die /FOOwerden. Gibt es eine Möglichkeit, es weniger streng zu machen? Wie kann ich in vimoder lessnach einem Muster suchen, bei dem die Groß- und Kleinschreibung NICHT beachtet wird?

Mike B
quelle
2
Bei der lessSuche wird die Groß- / Kleinschreibung nicht berücksichtigt, es sei denn, Sie verwenden eine Zeichenfolge, die einen Großbuchstaben enthält. Also foowird passen Foound wird FoOaber Foonur passen Foound nicht foousw. Siehe auch hier: Weniger ist immer unabhängig von Groß- und Kleinschreibung .
terdon
1
@terdon Interessant! Ich habe Mühe zu verstehen, warum ich mich so lessverhalten habe, aber ich nehme an, das ist ein Thema für einen anderen Tag. Vielen Dank!
Mike B
Zum einen finde ich es beim Durchsuchen von Manpages überaus nützlich. Ich würde es hassen, wenn Groß- und Kleinschreibung beachtet würde. Es gibt eine ganze Reihe von Beiträgen dazu, schauen Sie auch hier: Kann ich `man` zwingen, Kleinbuchstaben zu suchen ? und hier: Suche ohne Berücksichtigung der Groß- / Kleinschreibung in Manpages . Wenn es Ihnen nichts ausmacht, werde ich Sie lessvon Ihrer Frage entfernen , da dies in den anderen Posts und den erhaltenen Antworten sehr gut behandelt wird.
Terdon
@terdon Fein von mir, obwohl bitte erwägen Sie, diesen Kommentardialog innen zu lassen, da ich neige, beide lessund viund diese Informationen zu verwenden, ist wertvoll.
Mike B
Zur Verdeutlichung verwende ich tatsächlich vim(obwohl ich schreibe vi). Entschuldigung für die Verwirrung.
Mike B

Antworten:

21

In vioder vimSie können Groß- / Kleinschreibung ignorieren :set icund alle nachfolgenden Suchen berücksichtigen die Einstellung, bis Sie sie um zurücksetzen :set noic. In lessgibt es Optionen -iund -IGroß- und Kleinschreibung zu ignorieren.

Janis
quelle
9
Ich möchte auch empfehlen :set smartcase, nur nach Groß- und Kleinschreibung zu suchen, wenn mindestens ein Großbuchstabe verwendet wird.
Bernhard
3
Nur zur Veranschaulichung, smartcase ist nur für Vim. Aber OPs "vi" ist wahrscheinlich vim, es lohnt sich also zu erwähnen / zu versuchen.
Random832
@ Random832 Yup. Richtig. Aktualisierte die ursprüngliche Frage zu erwähnen vimstatt vi.
Mike B
27

Verwenden Sie die \cEscape-Sequenz:

/foo\c

Siehe auch: /programming/2287440/how-to-do-case-insensitive-search-invim

g33kz0r
quelle
7
Beachten Sie, dass dies an einer beliebigen Stelle im Muster möglich ist. Wenn Sie also nach dem Beginn der Eingabe festlegen, dass für das Muster die Groß- und Kleinschreibung nicht berücksichtigt werden soll, können Sie es einfach hinzufügen, \cwo immer Sie sich gerade befinden - z /some_very_lo\cng_text.
wchargin
2

Fügen Sie in Ihre .vimrcDatei Folgendes ein

set ignorecase

oder

set ic

Verwenden Sie, um die Groß- / Kleinschreibung wieder zu aktivieren :set ic!.

todgru
quelle
1
Hallo! Das sieht in Ordnung aus, trägt aber nicht viel zur bereits akzeptierten Antwort bei, oder?
Dhag
1
@dhag Alle Antworten bieten eine andere Möglichkeit, die gleiche Aufgabe zu erfüllen. Durch Festlegen des Werts in .vimrc kann die Einstellung für andere vim-Sitzungen beibehalten werden.
Todgru
@dhag du hast recht, dass dies nichts dazu beiträgt, das Problem des OP in weniger zu lösen.
Todgru