menos siempre distingue entre mayúsculas y minúsculas

21

Tratando de averiguar cómo usar búsquedas que no distinguen entre mayúsculas y minúsculas en lessEncontré esto en serverfault .

Eso parece responder perfectamente a mi pregunta. El problema es: aquí no funciona así (openSUSE 13.1; menos 458).

Había un alias lessa less -WiNSpero cambiado. Pero incluso llamarlo como command less fileno cambia nada. He comprobado psque ya no hay ninguna -iopción en la línea de comando.

Como dice la respuesta, la lessayuda (presionando h) dice que también puedo usar -identro less. Si uso eso una vez, lessme dice que ha cambiado a búsqueda que no distingue entre mayúsculas y minúsculas (eso es correcto: nada cambia). Si lo uso dos veces, lessme dice que se convirtió en una búsqueda sensible a mayúsculas y minúsculas. Y correcto, entonces funciona como debería desde el principio. Sin -iembargo, dar dos veces en la línea de comando no funciona.

¿Que pasa aquí?

Hauke ​​Laging
fuente
1
GNU less no funciona así para mí (es decir, distingue entre mayúsculas y minúsculas). ¿Estás seguro de que no tiene alias? ¿Con qué opciones está usando pspara verificar eso?
Ricitos
1
Hmm Nunca me di cuenta de esto, pero tienes toda la razón. La búsqueda de FOO solo encuentra FOO, pero la búsqueda de foohallazgos foo& FOO. Incluso con el -iy -WiNS.
slm
@goldilocks Con psObtengo las command lessopciones sin ( ) o -WNSasí estoy bastante seguro de que esto no es un psproblema para ocultar -i/ -I. lessparece no tener siquiera la posibilidad de un archivo de configuración que pueda intervenir aquí.
Hauke ​​Laging
@slm "incluso con -i" es divertido porque -ise supone que debe hacer exactamente eso. La pregunta interesante es: ¿Su menos coincide FOOpara foo sin -i ?
Hauke ​​Laging
No, funciona a la inversa. FOOSolo partidos FOO. Me parece como un insecto.
slm

Respuestas:

32

No estoy seguro de cómo habilitar esto desde la línea de comando, pero cuando estás dentro de lessti puedes alternar el comportamiento que deseas dando el -icomando less.

alternar -i

      ss # 1        ss # 2

buscando /blahy/BLAH

      ss # 3       ss # 4

buscando /Blah

      ss # 5

Aparentemente, también puede invocar este modo a pedido agregando sufijos a sus búsquedas con un -i.

Ejemplo

less prompt> /search string/-i

Referencias

slm
fuente
Eso también funciona para mí, pero tengo que ingresar eso dos veces. Supongo que escribiré un informe de error para openSUSE.
Hauke ​​Laging
@HaukeLaging: parece que se mantiene como predeterminado si sale y vuelve a entrar, ¿puede confirmar ese comportamiento?
slm
No, pero he descubierto algo interesante (sin embargo, no relacionado con este "error"): puede usar -iincluso después de una búsqueda. El resaltado cambia entonces (si todavía está activo).
Hauke ​​Laging
@HaukeLaging - ah sí, eso es todo. Entonces, la notación es un poco curiosa en comparación con otras herramientas. /search string/-i.
slm
1
El sufijo no parece funcionar en less 487 (GNU regular expressions)(desde Ubuntu 18.04)
Ruslan
5

El manual (para mi less, versión 444) dice:

      Options are also taken from the environment variable "LESS".  For exam‐
   ple, to avoid typing "less -options ..." each time less is invoked, you
   might tell csh:

   setenv LESS "-options"

   or if you use sh:

   LESS="-options"; export LESS

   On  MS-DOS,  you don't need the quotes, but you should replace any per‐
   cent signs in the options string by double percent signs.

   The environment variable is parsed before the command line, so  command
   line  options  override  the  LESS  environment variable.
       On  MS-DOS,  you don't need the quotes, but you should replace any per‐
   cent signs in the options string by double percent signs.

   The environment variable is parsed before the command line, so  command
   line  options  override  the  LESS  environment variable.  If an option
   appears in the LESS variable, it can be reset to its default  value  on
   the command line by beginning the command line option with "-+".

Por lo tanto, comprobaría si la variable de entorno LESSpodría establecerse en algún lugar, en sus "archivos de puntos" de shell. Además, less -+idebe restablecer el -ivalor predeterminado (que distingue entre mayúsculas y minúsculas). Si eso le devuelve la distinción entre mayúsculas y minúsculas, entonces podría alias less=less -+i, tal vez junto con alias lessi=less -i.

Omid
fuente
0

Puede comenzar menos e ignorar mayúsculas y minúsculas pasando la opción -i. Esto ignora mayúsculas y minúsculas a menos que la cadena de búsqueda tenga un carácter en mayúsculas. Aquí está el resumen en menos de la página de ayuda de Ubuntu :

   -i or --ignore-case
          Causes searches to ignore case; that is, uppercase  and  lowercase  are  considered
          identical.   This  option  is ignored if any uppercase letters appear in the search
          pattern; in other words, if a pattern contains uppercase letters, then that  search
          does not ignore case.

   -I or --IGNORE-CASE
          Like -i, but searches ignore case even if the pattern contains uppercase letters.

Otras versiones de less pueden variar en sus interpretaciones de -i.

Día D
fuente