Comment exécutez-vous «moins» et faites-vous exécuter un modèle de recherche automatiquement?


14

J'essaie de fonctionner lesssous Linux et je veux qu'il recherche quelque chose immédiatement après le lancement.

C'est comme faire ça:

$ less

Appuyez ensuite sur '/', saisissez un modèle de recherche comme "^commit \w+$", puis appuyez sur Entrée et appuyez sur 'n'pour rechercher chaque résultat suivant.

J'aimerais que moins soit lancé, puis je recherche un motif. Il ne semble pas y avoir quoi que ce soit dans la page de manuel sur le démarrage d'un modèle, mais vous pouvez peut-être lui envoyer des commandes comme Vim.


1
Génial, mettez ceci dans votre configuration git: core.pager = less -cFRX --pattern='^commit'et vous pourrez passer au prochain commit avec la touche 'n' tout de suite.
Neil

Réponses:


8

Depuis la manpage:

   -ppattern or --pattern=pattern
          The  -p  option  on the command line is equivalent to specifying
          +/pattern; that is, it tells less to start at the  first  occur-
          rence of pattern in the file.

Cela fonctionne comme prévu en utilisant la dernière version de less( 436 ).


17

Vous pouvez utiliser + pour envoyer des commandes arbitraires. Par exemple:

less +/pattern

-p PATTERN(tel que publié par nik) est équivalent à +/PATTERN.


2
Je préfère cette réponse, car elle est plus complète. L'option +/patternest équivalente à --pattern=pattern, mais elle peut faire plus, comme commencer moins à la fin d'un fichier less +G. L' +option vous donne tout ce -p|--patternqu'il y a à faire ainsi que l'ensemble des autres commandes à exécuter en moins, donc je dis ne vous embêtez pas à vous souvenir -pet utilisez +/simplement la recherche comme vous le feriez avec moins.
DrStrangepork

4

Tu veux dire comme?

moins -p PATTERN nom de fichier

C'est dans le manuel.


4

Il y a en fait deux façons de procéder. Comme tout le monde l'a mentionné, vous pouvez utiliser les options -p/ --pattern:

less -p<pattern>
less --pattern=<pattern>

Votre modèle devra être entouré de guillemets car il contient un espace.

Cependant, il existe en fait une deuxième façon de procéder:

LESS=-p<pattern> less
LESS=--pattern=<pattern> less

La deuxième méthode présente un avantage distinct. Il peut être utilisé avec d'autres commandes qui utilisent moins pour la pagination!:

LESS=-p"^       read \[" man bash

Cela peut littéralement être étendu pour rechercher dans la page de manuel bash toutes les commandes intégrées. Un jour, je me suis un peu emporté et j'ai "fixé" un homme pour bash builtins .


3

Il y a en effet quelque chose dans la page de manuel less.

Tu pourrais essayer :

less -p<pattern>

ou

less --pattern=<patern>

0

Une autre option est que lorsque vous exécutez le lesstype &puis celui patternde votre intérêt.

De cette façon, vous ne pouvez obtenir que les lignes qui vous patternintéressent, pas toutes les lignes. La signification montre uniquement les lignes correspondantes .

&/ <pattern_of_interest>
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.