Chciałbym wyszukać duże litery, na przykład PRAWO AUTORSKIE w pliku. Próbowałem przeprowadzić wyszukiwanie takie jak:
/copyright/i # Doesn't work
ale to nie działa. Wiem, że w Perlu, jeśli podam i
flagę jako regex, zmieni ona regex w regex bez rozróżniania wielkości liter. Wygląda na to, że Vim ma swój własny sposób na wskazanie wyrażenia regularnego bez rozróżniania wielkości liter.
search
vim
case-insensitive
Haiyuan Zhang
źródło
źródło
\c
mogą pojawić się w dowolnym miejscu na wzór, więc jeśli wpiszesz wzorzec, a następnie zdecydować chciałeś wyszukiwanie bez uwzględniania wielkości liter, wystarczy dodać\c
na końcu.set ignorecase
do wyszukiwania vimrc bez rozróżniania wielkości liter i mogę użyć wyszukiwania z rozróżnianiem wielkości liter,\C
podobnego do tego, o którym wspomniał @AlokSinghal.set smartcase
które automatycznie przełączą się na wyszukiwanie z rozróżnianiem wielkości liter, jeśli użyjesz wielkich liter.set smartcase
dotyczy tylko wtedy, gdyset ignorecase
jest już aktywny. Przez chwilę mnie to zaskoczyło. Zobacz Porady Vima .\c
przeciwieństwie do\C
Oprócz sugestii
\c
iignorecase
uważam to zasmartcase
bardzo przydatne. Jeśli szukasz czegoś zawierającego wielkie litery, wyszukiwarka rozróżni wielkie i małe litery; jeśli szukasz czegoś czysto małych liter, wyszukiwarka nie rozróżnia wielkości liter. Możesz użyć\c
i\C
zastąpić to:Widzieć:
źródło
ignorecase
polega na tym, że wpływa to na podstawienia oraz wyszukiwania. Uważam, że sensowne jest (inteligentne) wyszukiwanie bez rozróżniania wielkości liter, ale domyślnie podstawienia z rozróżnianiem wielkości liter. Ale nie wiem, jak to zrobić.smartcase
do pracy potrzebujesz równieżset ignorecase
. Świetna wskazówka, dzięki!:%s/lowercasesearch\C/replaceString/g
. Nie tworzy to domyślnej funkcjonalności, której potrzebujesz, ale pozwala wymusić rozróżnianie wielkości liter przy zamianie, a jednocześnie czerpać korzyści ze smartcase podczas wyszukiwania.I
flagę na podstawienie, aby wymusić rozróżnianie wielkości liter we wzorcu. Jak:%s/lowercasesearch/replaceString/gI
.After "*" and "#" you can make 'smartcase' used by doing a "/" command, recalling the search pattern from history and hitting <Enter>.
Możesz ustawić tę
ic
opcję w Vimie przed wyszukiwaniem:Aby wrócić do wyszukiwania z rozróżnianiem wielkości liter, użyj:
ic
jest skrótem odignorecase
źródło
\c
nie działa w vi.Możesz wydać polecenie
a potem w wyszukiwaniu nie będzie rozróżniana wielkość liter.
źródło
Aby przełączyć między rozróżnianiem wielkości liter a wyszukiwaniem niewrażliwym, używam tego mapowania w moim .vimrc
nmap <F9> :set ignorecase! ignorecase?
źródło
ignorecase?
pokazuje aktualny stan flagi. (w wierszu poleceń)W
vimrc
tych poleceniach możesz użyć :set ignorecase
- Wszystkie wyszukiwania będą rozróżniać małe i wielkie literyset smartcase
- W wyszukiwaniu rozróżniana jest wielkość liter, jeśli zawiera wielką literęMusisz ustawić,
ignorecase
jeśli chcesz korzystać z tego, cosmartcase
zapewnia.Niedawno napisałem artykuł o poleceniach wyszukiwania Vima (zarówno wbudowanych poleceń, jak i najlepszych wtyczek do wydajnego wyszukiwania).
źródło
set smartcase
nie przeprowadzam wyszukiwania bez rozróżniania wielkości liter, jeśli nie używam wielkich liter ... czy to normalne?Jak sugerowali inni:
Ale fajne jest to, że możesz przełączać takie tryby za pomocą:
źródło
umieść to polecenie w pliku vimrc
zawsze wykonuj wyszukiwanie bez rozróżniania wielkości liter
źródło
set noic
.Stare dobre
vim[grep]
polecenie…źródło
Cannot open file "&"
%
zamiast tego mieli na myśli%
.Wolę używać
\c
na końcu ciągu wyszukiwania:źródło
Jak wspomniałem @huyz, czasem pożądanym zachowaniem jest wyszukiwanie bez rozróżniania wielkości liter, ale zamiana z uwzględnieniem wielkości liter. Moje rozwiązanie tego:
Dzięki temu zawsze, gdy klikniesz
/
lub?
dodasz\c
wyszukiwanie bez rozróżniania wielkości liter.źródło
smartcase
opcji?smartcase
Vim ma 2 tryby
1. tryb edycji
Wyszukiwanie będzie działać w trybie normalnym
/ \ c dla rozróżniania wielkości liter
Wyszukiwanie / \ c
źródło
Możesz ustawić
ignorecase
domyślnie, uruchom to w powłoceźródło