Gostaria de procurar uma palavra em maiúscula, por exemplo, COPYRIGHT em um arquivo. Eu tentei realizar uma pesquisa como:
/copyright/i # Doesn't work
mas não funciona. Eu sei que em Perl, se eu der o i
sinalizador em uma regex, ela transformará a regex em uma regex que não diferencia maiúsculas de minúsculas. Parece que o Vim tem sua própria maneira de indicar uma regex que não diferencia maiúsculas de minúsculas.
search
vim
case-insensitive
Haiyuan Zhang
fonte
fonte
\c
pode aparecer em qualquer lugar do padrão; portanto, se você digitar um padrão e decidir que deseja uma pesquisa sem distinção entre maiúsculas e minúsculas, basta adicionar uma\c
no final.set ignorecase
entre maiúsculas e minúsculas no vimrc e posso usar\C
para fazer uma pesquisa com distinção entre maiúsculas e minúsculas semelhante ao que o @AlokSinghal mencionou.set smartcase
que mudará automaticamente para uma pesquisa que diferencia maiúsculas de minúsculas se você usar letras maiúsculas.set smartcase
aplica-se apenas quandoset ignorecase
já estiver ativo. Fiquei perplexo nisso por um tempo. Consulte Dicas do Vim .\c
contra #\C
Bem como as sugestões para
\c
eignorecase
, acho assmartcase
muito úteis. Se você procurar algo que contenha caracteres maiúsculos, ele fará uma pesquisa com distinção entre maiúsculas e minúsculas; se você procurar algo puramente em minúsculas, fará uma pesquisa sem distinção entre maiúsculas e minúsculas. Você pode usar\c
e\C
substituir isso:Vejo:
fonte
ignorecase
é que isso afeta as substituições e as pesquisas. Acho que faz sentido ter pesquisas (inteligentes) que não diferenciam maiúsculas de minúsculas, mas substituições que diferenciam maiúsculas de minúsculas por padrão. Mas não há como fazer isso que eu saiba.smartcase
trabalhar, você também precisaset ignorecase
. Ótima dica, obrigado!:%s/lowercasesearch\C/replaceString/g
. Isso não cria a funcionalidade padrão que você deseja, mas permite forçar a diferenciação entre maiúsculas e minúsculas para substituições, enquanto ainda se beneficia da smartcase ao pesquisar.I
sinalizador em uma substituição para forçar o padrão a fazer distinção entre maiúsculas e minúsculas. Like:%s/lowercasesearch/replaceString/gI
.After "*" and "#" you can make 'smartcase' used by doing a "/" command, recalling the search pattern from history and hitting <Enter>.
Você pode definir a
ic
opção no Vim antes da pesquisa:Para voltar às pesquisas que diferenciam maiúsculas de minúsculas, use:
ic
é uma abreviação deignorecase
fonte
\c
não funciona no vi.Você pode emitir o comando
e depois disso, suas pesquisas não diferenciam maiúsculas de minúsculas.
fonte
Para alternar entre pesquisa sensível a maiúsculas e minúsculas, eu uso esse mapeamento no meu .vimrc
nmap <F9> :set ignorecase! ignorecase?
fonte
ignorecase?
mostra o estado atual da bandeira. (na linha de comando)Você pode usar em seus
vimrc
comandos:set ignorecase
- Todas as suas pesquisas não diferenciam maiúsculas de minúsculasset smartcase
- Sua pesquisa fará distinção entre maiúsculas e minúsculas se contiver uma letra maiúsculaVocê precisa definir
ignorecase
se deseja usar o quesmartcase
fornece.Escrevi recentemente um artigo sobre os comandos de pesquisa do Vim (tanto comando embutido quanto os melhores plugins para pesquisar com eficiência).
fonte
set smartcase
não realiza pesquisas sem distinção entre maiúsculas e minúsculas se eu não usar letras maiúsculas ... isso é normal?Como outros sugeriram:
Mas o interessante é que você pode alternar esses modos com:
fonte
coloque este comando no seu arquivo vimrc
sempre faça pesquisa sem distinção entre maiúsculas e minúsculas
fonte
set noic
.O bom e velho
vim[grep]
comando ..fonte
Cannot open file "&"
%
vez de%
.Eu prefiro usar
\c
no final da string de pesquisa:fonte
Como o @huyz menciona, às vezes o comportamento desejado é usar pesquisas que não diferenciam maiúsculas de minúsculas, mas substituições que diferenciam maiúsculas de minúsculas. Minha solução para isso:
Com isso sempre quando você pressiona
/
ou?
ele adiciona\c
uma pesquisa que não diferencia maiúsculas de minúsculas.fonte
smartcase
opção?smartcase
Vim tem 2 modos
Modo 1.edit
A pesquisa funcionará no modo normal
/ \ c para distinção entre maiúsculas e minúsculas
/ \ c pesquisa
fonte
Você pode definir
ignorecase
por padrão, executar isso no shellfonte