Ich möchte nach einem Wort in Großbuchstaben suchen, zum Beispiel COPYRIGHT in einer Datei. Ich habe versucht, eine Suche durchzuführen wie:
/copyright/i # Doesn't work
aber es funktioniert nicht. Ich weiß, dass in Perl, wenn ich die i
Flagge in einen regulären Ausdruck gebe, der reguläre Ausdruck in einen regulären Ausdruck ohne Berücksichtigung der Groß- und Kleinschreibung umgewandelt wird. Es scheint, dass Vim seine eigene Methode hat, um einen Regex ohne Berücksichtigung der Groß- und Kleinschreibung anzuzeigen.
quelle
\c
kann erscheinen überall in dem Muster, also , wenn Sie ein Muster eingeben und dann entscheiden Sie Groß- und Kleinschreibung suchen wollten, nur hinzufügen ,\c
am Ende.set ignorecase
in meinem vimrc gerne eine Suche hinzu, bei der die Groß- und Kleinschreibung nicht berücksichtigt wird, und ich kann\C
eine Suche verwenden , bei der die Groß- und Kleinschreibung beachtet wird, ähnlich wie bei @AlokSinghal.set smartcase
die automatisch zu einer Suche mit Groß- und Kleinschreibung wechselt, wenn Sie Großbuchstaben verwenden.set smartcase
gilt nur, wennset ignorecase
bereits aktiv ist. Ich war eine Weile ratlos darüber. Siehe Vim-Tipps .\c
Vergleich zu\C
Neben den Vorschlägen für
\c
undignorecase
finde ich dassmartcase
sehr nützlich. Wenn Sie nach etwas suchen, das Großbuchstaben enthält, wird zwischen Groß- und Kleinschreibung unterschieden. Wenn Sie nach etwas suchen, das nur in Kleinbuchstaben geschrieben ist, wird die Suche ohne Berücksichtigung der Groß- und Kleinschreibung durchgeführt. Sie können dies verwenden\c
und\C
überschreiben:Sehen:
quelle
ignorecase
ist, dass es sowohl Substitutionen als auch Suchen betrifft. Ich finde, dass es sinnvoll ist, (intelligente) Suchanfragen ohne Berücksichtigung der Groß- und Kleinschreibung, aber standardmäßig Ersetzungen ohne Berücksichtigung der Groß- und Kleinschreibung durchzuführen. Aber es gibt keine Möglichkeit, das zu tun, die ich kenne.smartcase
zum Arbeiten auch benötigenset ignorecase
. Toller Tipp, danke!:%s/lowercasesearch\C/replaceString/g
. Dadurch wird nicht die gewünschte Standardfunktionalität erstellt, aber Sie können die Groß- und Kleinschreibung für Ersetzungen erzwingen, während Sie bei der Suche weiterhin von Smartcase profitieren.I
Flag auch für eine Ersetzung setzen, um zu erzwingen, dass das Muster zwischen Groß- und Kleinschreibung unterscheidet. Wie:%s/lowercasesearch/replaceString/gI
.After "*" and "#" you can make 'smartcase' used by doing a "/" command, recalling the search pattern from history and hitting <Enter>.
Sie können die
ic
Option in Vim vor der Suche festlegen :Um zu Suchanfragen zurückzukehren, bei denen zwischen Groß- und Kleinschreibung unterschieden wird, verwenden Sie:
ic
ist eine Abkürzung fürignorecase
quelle
\c
funktioniert nicht in vi.Sie können den Befehl ausgeben
und danach wird bei Ihren Suchanfragen die Groß- und Kleinschreibung nicht mehr berücksichtigt.
quelle
Um zwischen Groß- und Kleinschreibung zu wechseln, verwende ich diese Zuordnung in meiner .vimrc
nmap <F9> :set ignorecase! ignorecase?
quelle
ignorecase?
zeigt aber den aktuellen Status der Flagge an. (in der Kommandozeile)Sie können in Ihren
vimrc
Befehlen Folgendes verwenden:set ignorecase
- Bei all Ihren Suchanfragen wird die Groß- und Kleinschreibung nicht berücksichtigtset smartcase
- Bei Ihrer Suche wird zwischen Groß- und Kleinschreibung unterschieden, wenn sie einen Großbuchstaben enthältSie müssen festlegen,
ignorecase
ob Sie das verwenden möchten, wassmartcase
bereitgestellt wird.Ich habe kürzlich einen Artikel über Vim-Suchbefehle geschrieben (sowohl integrierte Befehle als auch die besten Plugins für eine effiziente Suche).
quelle
set smartcase
keine Suche ohne Berücksichtigung der Groß- und Kleinschreibung durchgeführt wird, wenn ich keine Großbuchstaben verwende ... ist das normal?Wie andere vorgeschlagen haben:
Aber das Coole ist, dass Sie solche Modi umschalten können mit:
quelle
Fügen Sie diesen Befehl in Ihre vimrc-Datei ein
Führen Sie immer eine Suche ohne Berücksichtigung der Groß- und Kleinschreibung durch
quelle
set noic
.Der gute alte
vim[grep]
Befehl ..quelle
Cannot open file "&"
%
statt%
.Ich bevorzuge die Verwendung
\c
am Ende der Suchzeichenfolge:quelle
Wie @huyz erwähnt, verwendet das gewünschte Verhalten manchmal Suchanfragen ohne Berücksichtigung der Groß- und Kleinschreibung, aber Substitutionen ohne Berücksichtigung der Groß- und Kleinschreibung. Meine Lösung dafür:
Damit immer, wenn Sie drücken,
/
oder?
es wird\c
für die Suche ohne Berücksichtigung der Groß- und Kleinschreibung hinzugefügt .quelle
smartcase
Option zu verwenden?smartcase
Vim haben 2 Modi
1.edit-Modus
Die Suche funktioniert im normalen Modus
/ \ c für Groß- und Kleinschreibung beachten
/ \ c suchen
quelle
Sie können dies
ignorecase
standardmäßig festlegen und in der Shell ausführenquelle