Gibt es eine Möglichkeit, den in einer Manpage genannten Links zu folgen? Hier ist zum Beispiel die Manpage für ps
; Wie greife ich auf den rot markierten Link zu?
Gibt es eine Möglichkeit, den in einer Manpage genannten Links zu folgen? Hier ist zum Beispiel die Manpage für ps
; Wie greife ich auf den rot markierten Link zu?
Antworten:
Die Manpages stammen aus der Unix-Erstausgabe . Obwohl Hypertext erfunden worden war, steckte er noch in den Kinderschuhen. Das Web war zwei Jahrzehnte entfernt, und das Handbuch war ein gedrucktes Buch, oft mit einem Befehl pro Seite, wenn sie passen (deshalb wurden sie Seiten genannt).
Das Format für Handbuchseiten hat sich seitdem etwas weiterentwickelt, aber die meisten Seiten sind nicht wirklich für Hypertext ausgelegt, und das Standardprogramm man
unterstützt es nicht (es ist nur eine reine Textanzeige mit Hacks zur Unterstützung einiger grundlegender Formatierungen). Es gibt jedoch Manpage Betrachtungsprogramme , die einige Hyperlinks rekonstruieren, vor allem Links zu anderen Seiten Mann, die in Form traditionell geschrieben werden , man(1)
wo man
der Name des Mannes Seite ist und 1
die Abschnittsnummer :
Sie können die Handbuchseiten mehrerer Betriebssysteme, die von man2html
oder ähnlichen Tools in HTML konvertiert wurden , auf einer Reihe von Websites online durchsuchen , z.
Einige Zeit, nachdem Manualpages das etablierte Dokumentationsformat unter Unix geworden waren, und einige Zeit, bevor das Web erfunden wurde, führte das GNU- Projekt das Dokumentationsformat info ein , das fortschrittlicher als man war und sich an einfache Markups für Textterminals hielt. Die wichtigste Neuerung von Informationen im Vergleich zum Menschen war die mehrseitige Dokumentation mit Hyperlinks zu anderen Seiten. Info ist immer noch das bevorzugte Dokumentationsformat für GNU-Projekte, obwohl die meisten Infoseiten aus einer Texinfo- Quelle (oder manchmal aus anderen Formaten) generiert werden, die auch HTML generieren können. Wenn eine Informationsdokumentation für ein Programm vorhanden ist, ist dies häufig das Haupthandbuch, während die Manpages nur grundlegende Informationen zu Befehlszeilenargumenten enthalten.
M-x man
(und C-h v mode-name
ist Man
): Zumindest in einem Aspekt ist er dem überlegen, WoMan
weil er Tabellen anzeigt ( Screenshot ). Natürlich ist es auch verlinkt.
b
auf diese Weise. Für einen Benutzer welches Schnittstellenparadigmas mag dies intuitiv sein?
page(N)
Links in Hyperlinks. War ziemlich überrascht, dass in Gilles 'Antwort in dieser Qualität nicht erwähnt wurde.
Erstens ist es kein Link. Es ist nur eine Unterstreichung. Manpages sind nur Textdokumente mit ein bisschen einfacher Formatierung, die ein Terminal verarbeiten kann. Die Unterstreichung ist nur ein Highlight, es handelt sich nicht um einen "Link".
Der normale man
Befehl ist nur ein Textformatierer. Tatsächlich zeigt der man
Befehl nicht einmal den Text an, sondern man
formatiert lediglich die in der Manpage-Datei [1] gespeicherten Informationen und sendet die formatierte Ausgabe an ein anderes Programm (normalerweise less
), das die formatierte Ausgabe auf dem Bildschirm anzeigt. Diese Anzeigeprogramme haben kein Konzept für Verknüpfungen.
Es gibt einige spezielle Dokumentationsleser, die in der Lage sind, Formatierungen wie diese zu betrachten und eine fundierte Vermutung anzustellen, dass ein solches Highlight darauf hindeutet, dass es eine verwandte Manpage gibt, die aufgerufen und ein Link erstellt werden kann, aber ich weiß es nicht welche tun. Vielleicht pinfo
?
Wenn Sie eine webähnliche Formatierung mit Hyperlinks wünschen, können Sie fast jede UNIX-Manpage online mit hinzugefügten Links finden. Versuchen Sie, man [anything]
in Google zu tippen, und Sie werden mit ziemlicher Sicherheit einen der ersten Treffer erhalten.
In Ihrem Beispiel ist die visuelle Hervorhebung ein Hinweis darauf, dass dies ein anderer Programmname ist, der eine eigene Manpage hat, die Sie einfach aufrufen können. Versuchen Sie es man 1 top
. Die 1 gibt den Abschnitt der Manpages an, in dem gesucht werden soll. In dieser Frage finden Sie eine Erläuterung der Abschnitte: Was bedeuten die Zahlen in einer Manpage?
[1] Wenn Sie die man
Auslagerungsdatei in einem Texteditor öffnen , wird die unformatierte man
Seite angezeigt, die nicht zum einfachen Lesen formatiert ist. Die Rohseite man
ist in einer Auszeichnungssprache namens geschrieben troff
. Weitere Informationen troff
zum Schreiben einer man
Seite finden Sie unter: https://liw.fi/manpages/ .
man 1 top
?? Ich meine, es sollte so etwas sein, ps 1 top
weil ich den Link auf der Manpage für gefunden habe ps
. "man 1 top" macht für mich keinen sinn. Bitte klären Sie.
top(1)
"Link" folgen möchten , müssen Sie die top
Handbuchseite aus dem 1. Abschnitt öffnen . Weitere Informationen zu Abschnitten finden Sie unter man (1). ps 1 top
macht keinen sinn, da du nur ps
befehl mit ein paar dazu komischen params ausführst.
readlink
in Abschnitt 1 und Abschnitt 2 sowie printf
in den Abschnitten 1 und 3 man command
angezeigt . Wenn Sie nur tippen , werden die Abschnitte in numerischer Reihenfolge durchsucht und der erste gefundene Abschnitt wird angezeigt, oder Sie können genau festlegen man # command
, was Sie tun müssen, um die Dokumentation abzurufen für den readlink
Systemaufruf
Dies ist eine sehr späte Antwort, aber benutze w3mman. w3mman ist der manuelle Pager des Systems von w3m.
https://linux.die.net/man/1/w3mman
Sie können es versuchen, indem Sie das w3m-Paket installieren. Ich glaube, dieses Paket ist in den Software-Repositories der meisten großen Linux / UNIX-Distributionen und von Cygwin registriert.
w3mman
wird auch mit der Standardinstallation von Macports geliefert w3m
. Es ist toll :) Danke!
Lassen Sie mich versuchen, Ihre Frage etwas genauer zu interpretieren, so dass ich versuche, Ihrem Workflow zu folgen. Was Sie wahrscheinlich gerne hätten, ist eine Tastenkombination auf einer man
Seite, die Sie direkt zu den unterstrichenen Befehlen führt, über die Sie gerade lesen. Sie müssen also weder etwas anderes installieren, noch eine andere Konsole öffnen und beispielsweise die genaue Syntax vergessen.
Diese einfachste Lösung ist das Ausrufezeichen (wenn Sie less
zum Anzeigen der Manpages verwenden) und Sie möchten zur unterstrichenen Seite wechseln top
:
!man top
Oder
!man 1 top
Sie müssen sie alle schließen, indem Sie q
mehrmals drücken . Beachten Sie auch, dass dies nicht funktioniert, wenn LESSSECURE=1
als Umgebungsvariable festgelegt wird, die less
im sicheren Modus ausgeführt wird und die Verwendung nicht zulässt !
. Es wird Ihnen so etwas wie "Befehl nicht verfügbar" anzeigen.
Obwohl w3mman eine Lösung ist, um Links zu folgen, wird nicht der gesamte Bildschirm verwendet (zumindest unter Ubuntu 12.10)
Ich bevorzuge zu verwenden:
$ sudo su -
# apt-get install w3m man2html
# exit
$ alias man=' hman -P w3m'
Fügen Sie den letzten Befehl zu ~ / .bash_aliases oder einem ähnlichen Startskript hinzu , um ihn in jeder Sitzung abzurufen .
Das -P w3m ist, weil der erste Browser für hman Luchs oder vernünftiger Browser ist, aber ich bevorzuge w3m
hman ist ein Tool, das auf html2man gebündelt ist. Sieh das
Wenn Ausfahrt mit der Bestätigung ist ärgerlich für Sie, wie für mich nutzen diese
Speziell für Ubuntu gibt es Yelp. Es ist standardmäßig installiert und kann standardmäßig Manualpages anzeigen, obwohl der Aufruf dazu nicht mit dem des man
Befehls identisch ist . Ein Alias oder eine Shell-Funktion kann den letzten Punkt umgehen (hängt von Ihrer Shell ab).
yelp 'man:exit'
Es wird standardmäßig ein Abschnitt angezeigt, den ich nicht kenne. Erinnerung: Um die Abschnittsliste für ein manuelles Thema abzurufen, verwenden Sie whatis
wie in whatis exit
.
Um Yelp aufzufordern, eine Handbuchseite aus einem bestimmten Abschnitt anzuzeigen, sagen Sie 2:
yelp 'man:exit(2)'
Probleme: yelp hat Fehler und kann beim Aufrufen über die Befehlszeile mehrere Fehler ausgeben. Dort kann auch ein Alias oder eine benutzerdefinierte Shell-Funktion helfen, alle Fehler an umzuleiten/dev/null
Wie sie sagten, war es nicht dafür ausgelegt.
Sie können verwenden info man
und dann die Eingabetaste drücken, wenn Sie sich im Abschnitt AUCH SEHEN Ihres Artikels befinden.
info - Infodokumente lesen
Ich habe ein paar Hack (s).
Fügen Sie dies in Ihre ~ / .bashrc oder Ihre ~ / .zshrc ein
function man(){
for arg in "$@"; do
vim -c 'execute "normal! :let no_man_maps = 1\<cr>:runtime ftplugin/man.vim\<cr>:Man '"${arg}"'\<cr>:wincmd o\<cr>"'
done
}
Bildschirmfoto..
Asciinema ..
https://asciinema.org/a/130131
Jetzt..
Wenn Sie man vim
beispielsweise eingeben, wird diese Manpage in vim geöffnet
man man vim
beispielsweise man
Folgendes eingeben, wird zuerst das Handbuch geöffnet , und nach dem Beenden von vim wird vim
das Handbuch geöffnetwenn Sie die Taste K(das Kapital k
) , wenn Sie auf einem anderen Mann Seite am Boden (die sind SIEHE AUCH Abschnitt), werden Sie zu diesem Handbuch springen (leider innerhalb von weniger Pager - das ist , weil wir let no_man_maps = 1
, wenn Sie nicht tun Wenn Sie dies tun, wird vim gezwungen q
zu sein, :q
und Sie können ein Makro nicht einfach aufzeichnen, und vim kann sich auf andere Weise verhalten.
Sie erhalten sehr schöne Syntax-Hervorhebungen, da Sie ftplugin / man.vim geladen haben und ft (automatisch) auf gesetzt ist man
.
Sie können kopieren und einfügen, in vim frei navigieren und sogar den Puffer und ändern :w ~/usefulfile
. Sie können alles tun, was Sie normalerweise in vim tun würden, einschließlich Aufzeichnungsmakros, Ablegen in die Zwischenablage mit "+y
(falls vorhanden +clipboard
) usw. usw.
Ich finde es viel schöner als weniger .
Der einzige kleine Nachteil, den ich festgestellt habe (der immer noch besteht, wenn Sie weniger als Pager verwenden), besteht darin, dass Sie mehrere Handbücher in einer vim-Sitzung öffnen möchten. Ich sehe keinen Weg, dies zu tun.
Ein paar Anmerkungen:
Wenn Sie versuchen, den Puffer zu speichern, erhalten Sie E382: Cannot write, 'buftype' option is set
du kannst trotzdem gerne sparen :w /tmp/man.man
.man
Erweiterung speichern , wird durch das Öffnen der Erweiterung der Dateityp man
für Sie festgelegt.man
Erweiterung speichern , können Sie den ft einfach man
durch Ausführen festlegen:set ft=man
Wenn Sie Dinge tun müssen, um Manpages zu öffnen, können Sie diese autocmd VimEnter *.~ echom 'hooray, we are using vim for man pages!'
beispielsweise verwenden.
Ich habe Folgendes in mein vimrc eingefügt, damit ich auf drücken kann K, um das Handbuch zu öffnen, und dann Gauf, um zum vorherigen Handbuch zurückzukehren:
augroup man
autocmd!
autocmd VimEnter *.~ nnoremap B :execute "normal! `Z"<cr>
autocmd VimEnter *.~ nnoremap <buffer> K :execute "normal! mZyiw:Man \<lt>c-r>\"\<lt>cr>"<cr>
augroup END
Fügen Sie dies in Ihr ~ / .bashrc oder ~ / .zshrc ein
function man(){
declare -a args
for arg in "$@"; do
command man "$arg" > "/tmp/${arg}.man"
args+=("/tmp/${arg}.man")
done
vim "${args[@]}"
}
Bildschirmfoto..
Asciinema ..
https://asciinema.org/a/9Q6Si90Pi46cDVUknxFxfIwsv
Dies löst das Problem, dass Hack 1 und weniger Gesicht (jetzt können Sie mehrere Handbücher in einem Puffer anzeigen), aber es ist weniger elegant.
Anmerkungen:
WICHTIG, wenn Sie wollen, dass Hack2 funktioniert, müssen Sie :let no_man_maps = 1
Ihre ~/.vimrc
. Dies ist darauf zurückzuführen, dass vim als Quelle dient .../vim80/man.vim
und q
zwangsweise neu zugeordnet wird :q
.
Es sind weitere Aufräumarbeiten erforderlich (jetzt speichern Sie jedes Handbuch in /tmp/*.man ).
Sie können jetzt jedoch, wie oben erwähnt, mehrere Manpages in einer Sitzung anzeigen
Wenn Sie auf drücken K, wird dennoch eine neue VIM-Sitzung geöffnet
autocmd VimEnter man.~ nnoremap <buffer> K :execute "normal! Byt(:silent !man \<c-r>\" > /tmp/\<c-r>\".man\<cr>:edit /tmp/\<c-r>\".man\<cr>"
oder so etwas Verrücktes zu tun ( ungetestet ).Ich konnte das --html
Argument man
verwenden, um es in dem durch die Umgebungsvariable $ BROWSER definierten Browser zu öffnen.
BROWSER=google-chrome man ps --help
Ich benutze Fedora. Nicht sicher, ob dies für Ihre Distribution funktioniert, bitte testen und in Kommentaren melden.
groff
muss installiert werden. Der groff
Befehl ist möglicherweise vorhanden, während das gleichnamige Paket nicht vorhanden ist (der Befehl wird mit groff-base
und nicht mit dem vollständigen groff
Paket geliefert). Das tue ich man --html="surf file%c//%s" <command>
und es ist in Ordnung. Es gibt jedoch nur einen sehr begrenzten Hypertext: - /.
man is an interface to the on-line reference manuals
dies (wenn ich mich nicht irre) bedeutet, dass alle Informationen von einer Webseite im Internet abgerufen werden sollten, richtig? Also, jemand hat eine Ahnung, was der http: // Link ist?