Чи є спосіб перейти за посиланнями, згаданими на сторінці чоловіка? Наприклад, ось сторінка man для ps
; як я можу отримати доступ до посилання, позначеного червоним кольором?
Чи є спосіб перейти за посиланнями, згаданими на сторінці чоловіка? Наприклад, ось сторінка man для ps
; як я можу отримати доступ до посилання, позначеного червоним кольором?
Відповіді:
Сторінки чоловіка датуються першим виданням Unix . Поки був винайдений гіпертекст , він ще був у немовляті; Інтернету було два десятиліття, а посібник - це фактична друкована книга, часто з однією командою на сторінку, якщо вони підходять (тому їх називали сторінками).
Формат, використовуваний для сторінок вручну, дещо розвинувся з тих пір, але більшість сторінок насправді не розроблені для гіпертексту, і man
програма за замовчуванням не підтримує його (це просто звичайний переглядач тексту, з хаками для підтримки базового форматування). Однак існують програми перегляду чоловічої сторінки, які реконструюють деякі гіперпосилання, в основному посилання на інші основні сторінки, які традиційно записуються у формі, man(1)
де man
є назва довідкової сторінки та 1
номер розділу :
Ви можете переглядати сторінки керівництва декількох операційних систем, перетворених у HTML за допомогою man2html
подібних інструментів, на кількох веб-сайтах в Інтернеті, наприклад:
Через деякий час після того, як сторінки man набули встановленого формату документації на unix і за деякий час до винайдення мережі, проект GNU запровадив формат інформаційної документації, більш досконалий, ніж man, дотримуючись простої розмітки, призначеної для текстових терміналів. Основним нововведенням інформації порівняно з людиною було створення багатосторінкової документації із гіперпосиланнями на інші сторінки. Інформація залишається кращим форматом документації для проектів GNU, хоча більшість інформаційних сторінок створюються з джерела Texinfo (або іноді інших форматів), який також може генерувати HTML. Коли інформаційна документація для програми існує, це часто є головним посібником, тоді як довідкові сторінки містять лише основну інформацію про аргументи командного рядка.
M-x man
(і C-h v mode-name
є Man
): принаймні в одному аспекті він є кращим, WoMan
оскільки відображає таблиці ( скріншот ). Звичайно, це також гіперпосилання.
b
, таким чином. Користувачеві якої парадигми інтерфейсу це може бути інтуїтивно зрозумілим?
page(N)
посилання на гіперпосилання. Був досить здивований, що у відповіді Джилса в цій якості не згадується.
Перш за все, це не посилання. Це просто підкреслення. Сторінки "man" - це лише текстові документи з невеликим простим форматуванням, з яким може працювати термінал. Підкреслення - це лише родзинка, жодного "посилання" немає.
Звичайна man
команда - це просто текстовий формат. Насправді man
команда навіть не відображає текст, а man
просто форматує інформацію, що зберігається у файлі довідної сторінки [1], і відсилає відформатований вихід в іншу програму (як правило less
), яка відображає відформатований вихід на екран. Ці програми відображення не мають поняття посилань.
Є деякі читачі спеціальної документації, які могли б переглядати подібне форматування і зробити так, щоб освічена здогадка про те, що така підсвітка може означати, що є пов’язана сторінка, яка може бути витягнута і створити посилання, але я не знаю які роблять. Можливо pinfo
?
Якщо ви хочете в Інтернеті, як форматування за допомогою гіперпосилань, ви можете знайти майже будь-яку сторінку користувача UNIX в Інтернеті із доданими посиланнями. Спробуйте ввести man [anything]
Google, і ви майже напевно отримаєте її в першій кількості звернень.
Що стосується вашого прикладу, то візуальне виділення - це підказка, що це ще одна назва програми, яка має власну сторінку man, яку ви можете легко підтягнути. Спробуйте man 1 top
. 1 позначає розділ підручних сторінок, на який слід ознайомитися. Див. Це запитання для пояснення розділів: Що означають цифри на довільній сторінці?
[1] Якщо ви відкриєте man
файл сторінки у текстовому редакторі, ви побачите необроблену man
сторінку, яка не відформатована для зручного читання. Неопрацьована man
сторінка написана мовою розмітки під назвою troff
. Для отримання додаткової інформації про troff
те, як писати man
сторінку, див. Https://liw.fi/manpages/ .
man 1 top
?? Я маю на увазі, що це має бути щось на кшталт, ps 1 top
тому що я знайшов посилання на сторінці людини ps
. "man 1 top" для мене не має сенсу. Будь ласка, поясніть.
top(1)
посиланням, вам потрібно відкрити top
сторінку керівництва з 1-го розділу. Більше інформації про розділи див. У людині (1). ps 1 top
це не має ніякого сенсу, оскільки ви просто запускаєте ps
команду якимись дивними їй парамами.
readlink
з’являється у розділі 1 та розділі 2 та printf
у розділах 1 та 3. Якщо ви просто введете man command
, людина випробовує розділи у цифровому порядку та відображає перше, що знайде, або ви можете конкретизувати man # command
, що вам потрібно зробити, щоб отримати документацію для readlink
системного дзвінка
Це дуже пізня відповідь, але використовуйте w3mman. w3mman - це ручне пейджер системи від w3m.
https://linux.die.net/man/1/w3mman
Ви можете спробувати, встановивши пакет w3m. Я вважаю, що цей пакет зареєстрований у сховищах програмного забезпечення більшості основних дистрибутивів Linux / UNIX та Cygwin.
w3mman
також передбачена w3m
установка Macports за замовчуванням . Чудово :) Дякую!
Дозвольте мені спробувати трохи більше тлумачити ваше запитання в тому сенсі, в якому я намагаюся слідкувати за вашим робочим процесом. Можливо, ви хочете мати комбінацію клавіш на man
сторінці, яка веде вас безпосередньо до підкреслених команд, про які ви читаєте. Отже, не потрібно встановлювати щось інше, ні відкривати іншу консоль і не забувати, наприклад, точний синтаксис.
Це найпростіше рішення - знак оклику (якщо ви використовуєте less
для відображення довідкових сторінок), і ви хочете перейти до підкресленого top
:
!man top
Або
!man 1 top
Їх вам доведеться закрити, натискаючи q
кілька разів. Зауважте також, що це не працюватиме, якщо LESSSECURE=1
встановлено як змінну навколишнього середовища, яка б запустила less
в захищеному режимі і не дозволила використовувати !
. Він підкаже вам щось на кшталт "Команда недоступна".
Хоча w3mman - це рішення для переходу за посиланнями, він використовує не весь екран (принаймні, на ubuntu 12.10)
Я вважаю за краще використовувати:
$ sudo su -
# apt-get install w3m man2html
# exit
$ alias man=' hman -P w3m'
додайте останню команду до ~ / .bash_aliases або подібний сценарій запуску, щоб отримати її на кожному сеансі.
-P w3m тому , що перший браузер HMan є рись або чуттєво-браузер , але я віддаю перевагу w3m
hman - це інструмент, що постачається на html2man. Дивіться це
Якщо вихід з підтвердженням дратує вас, як мені це використовувати цей
Спеціально для Ubuntu є Yelp. Він встановлений за замовчуванням і за замовчуванням може відображати сторінки вручну, хоча виклик для цього не такий, як у man
команди; псевдонім або функція оболонки можуть працювати навколо останньої точки (залежить від вашої оболонки).
yelp 'man:exit'
Він буде за замовчуванням для розділу так, як я не знаю. Нагадування: щоб отримати список розділів для ручної теми, використовуйте whatis
, як у whatis exit
.
Щоб попросити Yelp відобразити сторінку керівництва з певного розділу, скажімо, 2:
yelp 'man:exit(2)'
Проблеми: yelp має помилки, і будьте готові отримати декілька помилок під час виклику його з командного рядка. Також псевдонім або спеціальна функція оболонки можуть допомогти перенаправити всі помилки на/dev/null
Як вони сказали, це не було призначено для цього.
Ви можете використовувати, info man
а потім натиснути клавішу Enter, перебуваючи під розділом ДИВІТЬСЯ ТАКОЖ на своєму предметі.
info - читайте Інформаційні документи
У мене є (пару) хак (и).
Помістіть це у своєму ~ / .bashrc або у вашому ~ / .zshrc
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
}
Знімок екрана ..
Asciinema ..
https://asciinema.org/a/130131
Тепер ..
коли ви введете man vim
, наприклад, він відкриє цю сторінку чоловіка in vim
man man vim
, наприклад, він спершу відкриє man
посібник, а після виходу з vim - відкриє vim
посібникколи ви натискаєте K(це капітал k
), коли ви знаходитесь на іншій сторінці чоловіка внизу ( ВИДІТЬСЯ ТАКОЖ ), ви перейдете до цього посібника (на жаль, всередині менш пейджера - це тому, що у нас є let no_man_maps = 1
; якщо ви цього не зробите зробіть це, тоді vim змусить q
бути, :q
і ви не зможете легко записувати макрос, а vim може вести себе химерно по-іншому).
ви отримуєте дуже гарне підсвічування синтаксису, оскільки ви завантажили ftplugin / man.vim і ft (автоматично) встановлено на man
.
Ви можете копіювати та вставляти, вільно переміщуватися в vim, і навіть змінювати буфер і :w ~/usefulfile
. Ви можете робити все, що зазвичай робите в програмі vim, включаючи записи макросів, перебирати в буфер обміну "+y
(якщо у вас є +clipboard
) тощо, тощо.
Я вважаю це набагато приємніше, ніж менше .
Єдина незначна помилка, яку я знайшов (яка все ще існує, якщо ви використовуєте менше в якості пейджера), це якщо ви хочете, щоб за один сеанс vim було відкрито кілька посібників. Я не бачу способу зробити це.
Кілька приміток:
якщо ви спробуєте зберегти буфер, ви отримаєте E382: Cannot write, 'buftype' option is set
ви все одно можете зберегти як :w /tmp/man.man
.man
розширенням, то його відкриття встановить тип файлу man
для вас.man
розширення, ви можете просто встановити функцію ft man
, запустивши:set ft=man
якщо вам потрібно робити щось під час відкриття довідкових сторінок, якими ви можете скористатися autocmd VimEnter *.~ echom 'hooray, we are using vim for man pages!'
, наприклад.
Я помістив у свій vimrc наступне, щоб я міг натиснути, Kщоб спробувати відкрити керівництво, а потім натисніть, Gщоб повернутися до попередньої інструкції:
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
помістіть це у свій ~ / .bashrc або ~ / .zshrc
function man(){
declare -a args
for arg in "$@"; do
command man "$arg" > "/tmp/${arg}.man"
args+=("/tmp/${arg}.man")
done
vim "${args[@]}"
}
Знімок екрана ..
Asciinema ..
https://asciinema.org/a/9Q6Si90Pi46cDVUknxFxfIwsv
Це вирішує проблему, яка зламає обличчя 1 і менше (тепер ви можете переглянути кілька посібників в одному буфері), але це менш елегантно.
Примітки:
ВАЖЛИВО, якщо ви хочете, щоб hack2 працював, тоді ви повинні ввести :let no_man_maps = 1
своє ~/.vimrc
. Це тому, що vim буде джерелом .../vim80/man.vim
і q
буде примусово перероблений :q
.
є більше прибирання (зараз ви зберігаєте кожну інструкцію до /tmp/*.man )
однак ви можете переглядати декілька чоловічих сторінок за один сеанс, як зазначено вище
якщо натиснути K, все одно ви відкриєте новий сеанс vim
autocmd VimEnter man.~ nnoremap <buffer> K :execute "normal! Byt(:silent !man \<c-r>\" > /tmp/\<c-r>\".man\<cr>:edit /tmp/\<c-r>\".man\<cr>"
або щось таке божевільне ( неперевірене )Я зміг використати --html
аргумент для man
того, щоб відкрити його у браузері, визначеному змінною середовища $ BROWSER, так:
BROWSER=google-chrome man ps --help
Я використовую Fedora. Не впевнені, чи працює це для вашого дистрибутива, будь ласка, протестуйте та повідомте у коментарях.
groff
потрібно встановити. groff
Команда може бути там в той час як пакет з тим же ім'ям не є (команда поставляється з groff-base
, не повними groff
пакетом). Я це роблю man --html="surf file%c//%s" <command>
, і це добре. Хоча гіпертекст є дуже обмеженим: - /.
man is an interface to the on-line reference manuals
що (якщо я не помиляюся) означає, що воно повинно перетягувати всю інформацію з якоїсь веб-сторінки в Інтернеті, правда? Отже, хтось має підказку щодо того, що таке http: // посилання?