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?
Außerdem sehe ich, dass man is an interface to the on-line reference manualsdies (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?
its_me
10
Hier bedeutet "online" "auf dem Computer" (im Gegensatz zu "auf Papier"), nicht "im Internet".
Gilles
1
"Online": Vielleicht erinnern Sie sich an die "Adventure" -Quest-Spiele für den PC, die von einer Firma namens Sierra On-Line herausgebracht wurden. Manpages: Die beste Methode zum Durchsuchen von Manpages ist die Verwendung Ihres Editors. Auf diese Weise wird das Navigieren, Durchsuchen (usw.) des Textes so reibungslos wie jede Verknüpfung in Ihrem Muskelgedächtnis seit langem. Angenommen, Sie arbeiten an einem Programmierprojekt - Sie könnten von Manpages in Ihren Code kopieren. Nichts weniger als nahtlose Interaktion. Schauen Sie sich dies und meinen Kommentar zu @ Gilles Antwort an .
Emanuel Berg
Antworten:
52
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 manunterstü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 mander Name des Mannes Seite ist und 1die Abschnittsnummer :
man2html , ein Konverter von Mann zu HTML (plus einen Webbrowser, um das Ergebnis zu lesen)
Sie können die Handbuchseiten mehrerer Betriebssysteme, die von man2htmloder ä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.
Gute Antwort! Erwähnenswert ist auch, dass es in Emacs einen anderen Modus für Manpages gibt, den (zumindest ich) einfach M-x man(und C-h v mode-nameist Man): Zumindest in einem Aspekt ist er dem überlegen, WoManweil er Tabellen anzeigt ( Screenshot ). Natürlich ist es auch verlinkt.
Emanuel Berg
1
Die Benutzeroberfläche des Info-Programms fühlt sich einfach falsch und nicht intuitiv an. Ich habe niemanden gesehen, der das benutzt.
Pavel Šimerda
@ PavelŠimerda> Die Benutzeroberfläche des Info-Programms fühlt sich einfach falsch und nicht intuitiv an. <Emm, verglichen mit was? To less (1) (das ist der Standard-Pager für man (1) in GNU) - das Ding, bei dem man sich daran erinnern muss, wie man zurückscrollt , da <backspace> nicht gebunden ist (und <pgup> möglicherweise überhaupt nicht funktioniert) ? Der Primärschlüssel ist bauf diese Weise. Für einen Benutzer welches Schnittstellenparadigmas mag dies intuitiv sein?
Dmitry Alexandrov
@ PavelŠimerda> Ich habe noch niemanden gesehen, der das benutzt hat. <Verwenden Sie immer info (1) zum Lesen von Manpages , wenn in einem Text - Terminal für den genauen Grund gesperrt wurde, dass im Gegensatz zu weniger (1) es nicht stumm konvertiert page(N)Links in Hyperlinks. War ziemlich überrascht, dass in Gilles 'Antwort in dieser Qualität nicht erwähnt wurde.
Dmitry Alexandrov
37
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 manBefehl ist nur ein Textformatierer. Tatsächlich zeigt der manBefehl nicht einmal den Text an, sondern manformatiert 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 manAuslagerungsdatei in einem Texteditor öffnen , wird die unformatierte manSeite angezeigt, die nicht zum einfachen Lesen formatiert ist. Die Rohseite manist in einer Auszeichnungssprache namens geschrieben troff. Weitere Informationen troffzum Schreiben einer manSeite finden Sie unter: https://liw.fi/manpages/ .
Irgendeine Idee warum das so ist man 1 top?? Ich meine, es sollte so etwas sein, ps 1 topweil ich den Link auf der Manpage für gefunden habe ps. "man 1 top" macht für mich keinen sinn. Bitte klären Sie.
its_me
Es gibt auch einige Ressourcen, die Manpages im Internet verfügbar machen, wobei Verweise durch hrefs ersetzt werden, auf die geklickt werden kann.
gabe.
1
Wenn Sie dem top(1)"Link" folgen möchten , müssen Sie die topHandbuchseite aus dem 1. Abschnitt öffnen . Weitere Informationen zu Abschnitten finden Sie unter man (1). ps 1 topmacht keinen sinn, da du nur psbefehl mit ein paar dazu komischen params ausführst.
RS
2
@Aahan, es ist Mann 1 oben, weil Sie die Handbuchseite für den Befehl top im ersten Abschnitt der Online-Handbuchseiten anzeigen möchten. Die Referenz top (1) bedeutet genau das, oben im 1. Abschnitt der Manualseiten. Um dies zu sehen, geben Sie an der Eingabeaufforderung "man 1 top" ein. Siehe "man man"
gabe.
1
@Aaran: Die "Abschnitte des Handbuchs behandeln verschiedene Themen. Abschnitt 1 sind Benutzerbefehle (Dinge, die Sie an der Eingabeaufforderung eingeben), Abschnitt 2 sind Systemaufrufe und so weiter. Einige Zeichenfolgen werden in mehr als einem Abschnitt angezeigt. Auf dem Computer, auf dem ich mich befinde Wird jetzt readlinkin Abschnitt 1 und Abschnitt 2 sowie printfin den Abschnitten 1 und 3 man commandangezeigt . 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 readlinkSystemaufruf
dmckee
12
Dies ist eine sehr späte Antwort, aber benutze w3mman. w3mman ist der manuelle Pager des Systems von w3m.
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.
Eine verspätete Antwort, die eine Antwort auf die noch nicht erwähnte Frage gibt, es ist nie ein Problem! Willkommen bei Unix & Linux StackExchange!
Bernhard
w3mmanwird auch mit der Standardinstallation von Macports geliefert w3m. Es ist toll :) Danke!
Sampablokuper
8
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 manSeite, 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 lesszum 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 qmehrmals drücken . Beachten Sie auch, dass dies nicht funktioniert, wenn LESSSECURE=1als Umgebungsvariable festgelegt wird, die lessim sicheren Modus ausgeführt wird und die Verwendung nicht zulässt !. Es wird Ihnen so etwas wie "Befehl nicht verfügbar" anzeigen.
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 manBefehls 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 whatiswie 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
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
}
Wenn Sie man vimbeispielsweise eingeben, wird diese Manpage in vim geöffnet
Wenn Sie man man vimbeispielsweise manFolgendes eingeben, wird zuerst das Handbuch geöffnet , und nach dem Beenden von vim wird vimdas Handbuch geöffnet
wenn 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 qzu sein, :qund Sie können ein Makro nicht einfach aufzeichnen, und vim kann sich auf andere Weise verhalten.
Wenn Sie dieses zweite eingegebene Handbuch verlassen, kehren Sie zum vorherigen Handbuch zurück, das Sie gerade angezeigt haben
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
Ich mag, dass Sie nicht speichern können, da es verhindert, dass es versehentlich gespeichert wird
du kannst trotzdem gerne sparen :w /tmp/man.man
Wenn Sie es mit einer .manErweiterung speichern , wird durch das Öffnen der Erweiterung der Dateityp manfür Sie festgelegt
Wenn Sie es nicht mit einer .manErweiterung speichern , können Sie den ft einfach mandurch 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
Hack 2
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[@]}"
}
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 = 1Ihre ~/.vimrc. Dies ist darauf zurückzuführen, dass vim als Quelle dient .../vim80/man.vimund qzwangsweise 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
Wenn Sie möchten, können Sie ein Autocmd (mit einem Autocmd wie dem oben genannten) binden, um so etwas 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 ).
Die Option scheint unter Ubuntu 12.04 erkannt zu werden, schlägt jedoch fehl.
Hibou57
OK, das Paket groffmuss installiert werden. Der groffBefehl ist möglicherweise vorhanden, während das gleichnamige Paket nicht vorhanden ist (der Befehl wird mit groff-baseund nicht mit dem vollständigen groffPaket 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?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)
woman
der Name des Mannes Seite ist und1
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.
quelle
M-x man
(undC-h v mode-name
istMan
): 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 derman
Befehl nicht einmal den Text an, sondernman
formatiert lediglich die in der Manpage-Datei [1] gespeicherten Informationen und sendet die formatierte Ausgabe an ein anderes Programm (normalerweiseless
), 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 unformatierteman
Seite angezeigt, die nicht zum einfachen Lesen formatiert ist. Die Rohseiteman
ist in einer Auszeichnungssprache namens geschriebentroff
. Weitere Informationentroff
zum Schreiben einerman
Seite finden Sie unter: https://liw.fi/manpages/ .quelle
man 1 top
?? Ich meine, es sollte so etwas sein,ps 1 top
weil ich den Link auf der Manpage für gefunden habeps
. "man 1 top" macht für mich keinen sinn. Bitte klären Sie.top(1)
"Link" folgen möchten , müssen Sie dietop
Handbuchseite aus dem 1. Abschnitt öffnen . Weitere Informationen zu Abschnitten finden Sie unter man (1).ps 1 top
macht keinen sinn, da du nurps
befehl mit ein paar dazu komischen params ausführst.readlink
in Abschnitt 1 und Abschnitt 2 sowieprintf
in den Abschnitten 1 und 3man 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 festlegenman # command
, was Sie tun müssen, um die Dokumentation abzurufen für denreadlink
SystemaufrufDies 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.
quelle
w3mman
wird auch mit der Standardinstallation von Macports geliefertw3m
. 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 wechselntop
:Oder
Sie müssen sie alle schließen, indem Sie
q
mehrmals drücken . Beachten Sie auch, dass dies nicht funktioniert, wennLESSSECURE=1
als Umgebungsvariable festgelegt wird, dieless
im sicheren Modus ausgeführt wird und die Verwendung nicht zulässt!
. Es wird Ihnen so etwas wie "Befehl nicht verfügbar" anzeigen.quelle
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:
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
quelle
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).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 inwhatis exit
.Um Yelp aufzufordern, eine Handbuchseite aus einem bestimmten Abschnitt anzuzeigen, sagen Sie 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
quelle
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.quelle
Ich habe ein paar Hack (s).
Hack 1
Fügen Sie dies in Ihre ~ / .bashrc oder Ihre ~ / .zshrc ein
Bildschirmfoto..
Asciinema ..
https://asciinema.org/a/130131
Jetzt..
Wenn Sie
man vim
beispielsweise eingeben, wird diese Manpage in vim geöffnetman man vim
beispielsweiseman
Folgendes eingeben, wird zuerst das Handbuch geöffnet , und nach dem Beenden von vim wirdvim
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 wirlet no_man_maps = 1
, wenn Sie nicht tun Wenn Sie dies tun, wird vim gezwungenq
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 Dateitypman
für Sie festgelegt.man
Erweiterung speichern , können Sie den ft einfachman
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:
Hack 2
Fügen Sie dies in Ihr ~ / .bashrc oder ~ / .zshrc ein
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
undq
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 ).quelle
Ich konnte das
--html
Argumentman
verwenden, um es in dem durch die Umgebungsvariable $ BROWSER definierten Browser zu öffnen.Ich benutze Fedora. Nicht sicher, ob dies für Ihre Distribution funktioniert, bitte testen und in Kommentaren melden.
quelle
groff
muss installiert werden. Dergroff
Befehl ist möglicherweise vorhanden, während das gleichnamige Paket nicht vorhanden ist (der Befehl wird mitgroff-base
und nicht mit dem vollständigengroff
Paket geliefert). Das tue ichman --html="surf file%c//%s" <command>
und es ist in Ordnung. Es gibt jedoch nur einen sehr begrenzten Hypertext: - /.