¿Cómo puedo buscar en vim para un patrón que no es sensible a mayúsculas?

18

Ocasionalmente busco en archivos vimo lessutilizo /o, ?pero hasta donde puedo ver, los patrones de búsqueda distinguen entre mayúsculas y minúsculas.

Entonces, por ejemplo, /foono encontrará las mismas cosas que /FOOsí. ¿Hay alguna manera de hacerlo menos estricto? ¿Cómo puedo buscar en vimo lesspara un patrón que no es sensible a mayúsculas?

Mike B
fuente
2
En las lessbúsquedas no se distingue entre mayúsculas y minúsculas, a menos que use una cadena que contenga una letra mayúscula. Por lo tanto, foocoincidirá Fooy FoOpero Foosólo igualará Fooy no fooetc. También ver aquí: menos es siempre entre mayúsculas y minúsculas .
terdon
1
@terdon ¡Interesante! Me cuesta entender el "por qué" de haberme lesscomportado así, pero supongo que ese es un tema para otro día. ¡Gracias!
Mike B
Bueno, para empezar, me resulta extremadamente útil cuando busco en páginas de manual. No me gustaría tenerlo entre mayúsculas y minúsculas. Hay bastantes publicaciones sobre esto, también eche un vistazo aquí: ¿Puedo obligar a 'man' a hacer correspondencias minúsculas? y aquí: mayúsculas y minúsculas buscar en las páginas de manual . De hecho, si no le importa, lo eliminaré lessde su pregunta, ya que está muy bien cubierto en las otras publicaciones y las respuestas que ha recibido explican cómo hacerlo en vi.
terdon
@terdon bien por mí, aunque por favor considere dejar este comentario en el diálogo ya que tienden a usar ambos lessy vi, y esa información es valiosa.
Mike B
Como punto de aclaración, de hecho estoy usando vim(aunque estoy escribiendo vi). Disculpas por la confusión.
Mike B

Respuestas:

21

En vio vimpuede ignorar mayúsculas :set icy minúsculas , y todas las búsquedas posteriores considerarán la configuración hasta que la restablezca :set noic. En lesshay opciones -iy -Ihacer caso omiso de caso.

Janis
fuente
9
También me gustaría recomendar :set smartcase, con el fin de buscar solamente entre mayúsculas y minúsculas cuando al menos el carácter en mayúscula se utiliza.
Bernhard
3
Solo para el registro, smartcase es solo vim. Pero el "vi" de OP es probablemente vim, por lo que vale la pena mencionarlo / intentarlo.
Random832
@ Random832 Sí. Correcto. Se actualizó la pregunta original para mencionar en vimlugar de vi.
Mike B
27

Usa la \csecuencia de escape:

/foo\c

Ver también: /programming/2287440/how-to-do-case-insensitive-search-in-vim

g33kz0r
fuente
77
Tenga en cuenta que esto puede ir en cualquier parte del patrón, por lo que si usted decide después de comenzar con el tipo que desea que el patrón sea sensible a las mayúsculas, basta con añadir \cdonde quiera que esté, por ejemplo, /some_very_lo\cng_text.
wchargin
2

En su .vimrcarchivo, incluya

set ignorecase

o

set ic

Para volver a habilitar mayúsculas y minúsculas, use :set ic!.

todgru
fuente
1
¡Hola! Esto se ve bien, pero no agrega mucho a la respuesta ya aceptada, ¿verdad?
DHAG
1
@dhag todas las respuestas proporcionan una forma diferente de lograr la misma tarea. Establecer el valor en .vimrc permite que la configuración persista para otras sesiones vim.
todgru
@dhag tienes razón en que esto no hace nada para resolver el problema del OP en menos.
todgru