Kann ich "man" zwingen, ein Matching in Kleinbuchstaben durchzuführen?

10

Wenn ich Manpages durchsuche, wird bei der Suche zwischen Groß- und Kleinschreibung unterschieden, jedoch nur in Bezug auf Großbuchstaben. ZB xwird übereinstimmen xund Xwährend Xnur übereinstimmt x. Dies ist die man-dbVersion von man, die standardmäßig auf von Fedora abgeleiteten Systemen verwendet wird und auf anderen verfügbar ist. man mansagt der Standard-Pager ist less -s. $LESSist nicht in der Umgebung definiert, meine $PAGERist gerecht lessund ich habe keine Aliase für weniger.

Dies ist nicht das Verhalten, wenn ich lessalleine aufrufe .

Gibt es überhaupt eine Möglichkeit, Kleinbuchstaben so zu erzwingen x, dass sie xbei Verwendung nur mit Kleinbuchstaben übereinstimmen man?

Goldlöckchen
quelle
1
Die Standardeinstellung ist die strikte Groß- und Kleinschreibung. Was Sie beschrieben haben, klingt so, als ob Ihre LESSUmgebungsvariable enthält -i.
Manatwork
1
Welche Version von lesshast du? Haben Sie einen Alias ​​festgelegt für less? Ist die Umgebung LESS oder LESSOPEN gesetzt? Standardmäßig eine lessSuche xnur nach Übereinstimmungen x, nichtX
bsd
Hatten wir dieses Q nicht schon? Ich denke, Hauke ​​hat es gefragt, ich werde danach suchen ... (slm kommt zurück, bevor die 5 Minuten abgelaufen sind. Der Kommentar läuft ab ...) Dieser hier ist kein Trottel, scheint aber das zu sein, was Sie fragen, nein? unix.stackexchange.com/questions/116395/…
slm
@slm, dies war auch meine erste Reaktion, aber da der Frageninhaber an dieser Frage teilgenommen hat , weiß er wahrscheinlich davon.
Manatwork
@manatwork echo $LESS= nichts. Beachten Sie , dass die Groß- und Kleinschreibung nicht berücksichtigt wird, sondern nur die Groß- und Kleinschreibung der Groß- und Kleinschreibung erzwungen wird. @bdowning alias | grep less= nichts. manIch habe gerade bemerkt, dass es nur über (es ist übrigens mandb) gilt. Ich bin sicher, ich habe darüber schon einmal irgendwo gelesen ...
Goldlöckchen

Antworten:

3

Der Mensch ruft weniger; Die einzige Kontrolle auf Man-Ebene ist die Auswahl der Optionen, mit denen Less aufgerufen werden soll.

Die Suchempfindlichkeit von Less wird durch zwei Optionen gesteuert.

  • Wenn dies der -IFall ist, wird bei der Suche die Groß- und Kleinschreibung nicht berücksichtigt: Entweder aoder Akann verwendet werden, um beide aund zu vergleichen A.
  • Wenn dies -inicht der -IFall ist, wird bei der Suche die Groß- und Kleinschreibung nicht berücksichtigt, jedoch nur, wenn das Muster keinen Großbuchstaben enthält.

Wenn Sie -Ieine Standardoption für "Weniger" festlegen, wird bei allen Suchvorgängen auch auf Manpages die Groß- und Kleinschreibung nicht berücksichtigt.

Man-db übergibt zusätzliche Optionen an den Pager über die LESSUmgebungsvariable, die Less genauso interpretiert wie Befehlszeilenoptionen. Die Einstellung ist zur Kompilierungszeit fest codiert und beginnt mit -i. (Der Wert ist "-ix8RmPm%s$PM%s$"ab Man-db 2.6.2; der P…$Teil ist die Eingabeaufforderungszeichenfolge.)

Wenn Sie nicht möchten, dass bei Suchvorgängen in Manpages zwischen Groß- und Kleinschreibung unterschieden wird oder dass bei Groß- und Kleinschreibung immer zwischen Groß- und Kleinschreibung unterschieden wird, können Sie dies in man-db selbst nicht konfigurieren. Sie können einen Alias ​​für manoder ein Wrapper-Skript LESSerstellen, das die Umgebungsvariable bearbeitet, da Man-db den Inhalt dem aktuellen Wert voranstellt, falls vorhanden:

alias man='LESS="$LESS -I" man'

So deaktivieren Sie die -iOption und machen Suchvorgänge in Manpages standardmäßig immer zwischen Groß- und Kleinschreibung:

alias man='LESS="$LESS -+i" man'

Sie können auch einen anderen Wert fest codieren, LESSindem Sie die MANLESSUmgebungsvariable festlegen. Wenn Sie dies jedoch tun und dann mannur LESSden Wert von MANLESSfestlegen, verlieren Sie die benutzerdefinierte Titelzeile („Manuelle Seite foo(42)“) und andere Extras (insbesondere make) sicher -Rfür fett und unterstrichen Formatierung enthalten).

Gilles 'SO - hör auf böse zu sein'
quelle
1

Dies ist , wie less‚s -i(Befehlszeilenoption)‚Groß- und Kleinschreibung‘-Modus arbeitet (dh es noch empfindlich für oberen Fall ist). Wie Gilles betont, wird die Verwendung in man-db kompiliert.

Zusätzlich zu den in Gilles Antwort auf WRT angegebenen Methoden zum Festlegen eines Alias +-ioder einer benutzerdefinierten Funktion MANLESSkönnen Sie die strikte Groß- und Kleinschreibung ändern, sobald die Manpage mit geöffnet wird -i(wodurch der Schalter ein- und ausgeschaltet wird). Sie sehen eine kleine Meldung "Fall ist bei Suchvorgängen von Bedeutung", die jetzt xnur noch übereinstimmt xund Xnur noch übereinstimmt X.

Man-db's manhat einen -ISchalter, dies gilt jedoch für die Suche nach der Manpage - z. B. erhalten Sie standardmäßig man BASHdie Bash-Handbuchseite, während dies man -I BASHnicht der Fall ist .

Goldlöckchen
quelle
0

"Gibt es überhaupt eine Möglichkeit, Kleinbuchstaben zu zwingen x, xbei der Verwendung nur Kleinbuchstaben zuzuordnen man?"

Hier ist eine Möglichkeit

man -Tascii manpage |less

Ich kenne die blutigen Details nicht, aber die roffVerarbeitung führt ein Markup durch und der Pager scheint mit dem nicht markierten Text übereinzustimmen, obwohl er den markierten Text anzeigt.
Sehr verwirrend, hoffentlich kann ein nroffGuru die Pipeline erklären.

bsd
quelle
Dies führt zu einem Durcheinander in meinem GUI-Terminal (voller ESC[1mTypsequenzen).
Goldlöckchen