Answers:
手册页追溯到Unix的第一版。虽然超文本已经发明,但仍处于起步阶段。网络距我们只有二十年的路程,而手册是一本实际的印刷书籍,如果适合的话,通常每页一个命令(这就是为什么将其称为页面)。
自那时以来,用于手动页面的格式已经有所发展,但是大多数页面并不是真正为超文本设计的,并且默认man
程序不支持它(它只是纯文本查看器,带有支持某些基本格式的技巧)。然而,有那一些重建人的超链接页面观看节目,主要是链接到其他人的页面,这是传统的书面形式man(1)
哪里man
是男人页面的名称,1
是款号:
您可以man2html
在许多在线站点上浏览几种操作系统的手册页,这些手册已通过或类似工具转换为HTML ,例如:
在man页面成为UNIX上已建立的文档格式之后的某个时间,以及在Web发明之前的一段时间,GNU项目引入了信息文档格式,该信息文档格式比man更高级,同时坚持了为文本终端设计的简单标记。与人相比,信息的主要创新是拥有多页文档,以及指向其他页面的超链接。尽管大多数Info页面是从Texinfo源(或有时是其他格式)生成的,但该Info页面也可以生成HTML ,但Info仍然是GNU项目首选的文档格式。当存在程序的信息文档时,它通常是主要的手册,而手册页仅包含有关命令行参数的基本信息。
b
。对于哪种界面范例的用户来说,这可能很直观?
page(N)
链接转换为超链接。令吉尔斯在回答中没有提到那样的品质感到非常惊讶。
首先,它不是链接。这只是一个下划线。手册页只是文本文档,终端可以处理一些简单的格式。下划线仅是重点,不涉及“链接”。
普通man
命令只是一个文本格式化程序。实际上,该man
命令甚至不显示文本,man
只是格式化存储在手册页文件[1]中的信息,并将格式化的输出发送到另一个程序(通常是less
),该程序将格式化的输出显示在屏幕上。这些显示程序没有链接的概念。
有一些特殊的文档阅读器,他们可能能够看到这样的格式并做出有根据的猜测,这样的突出显示可能表明存在可以拉起并创建链接的相关手册页,但我不知道哪个做。也许pinfo
吧?
如果您希望通过超链接进行类似于Web的格式设置,则几乎可以在线找到任何带有链接的UNIX手册页。尝试输入man [anything]
google,几乎肯定会在第一批点击中获得成功。
在您的示例中,视觉高亮显示了一个线索,那就是另一个程序名称具有自己的手册页,您可以轻松地将其调出。尝试man 1 top
。1表示要查看的手册页部分。有关此部分的说明,请参见此问题:手册页中的数字是什么意思?
[1]如果man
在文本编辑器中打开页面文件,您将看到man
未格式化的原始页面,以便于阅读。原始man
页面是使用称为的标记语言编写的troff
。有关troff
如何编写man
页面以及如何编写页面的更多信息,请参见:https : //liw.fi/manpages/。
man 1 top
吗?? 我的意思是应该这样,ps 1 top
因为我在的手册页上找到了链接ps
。“男人1顶”对我来说没有意义。请澄清。
top(1)
“链接”,则需要top
从第一部分打开手册页。有关各节的更多信息,请参见man(1)。ps 1 top
没有任何意义,因为您只需要ps
使用一些奇怪的参数来运行命令即可。
readlink
出现在第1节和第2节以及printf
第1和3节中。如果您仅键入man command
,man会以数字顺序尝试各部分并显示找到的第一个部分,或者您可以特定于man # command
,这是获取文档所必须要做的对于readlink
系统调用。
这是很晚的回复,但请使用w3mman。w3mman是w3m的系统手册寻呼机。
https://linux.die.net/man/1/w3mman
您可以通过安装w3m软件包来尝试。我相信此软件包已在大多数主要Linux / UNIX发行版和Cygwin的软件存储库中注册。
w3mman
Macports的默认w3m
安装中还提供了该工具。太好了:)谢谢!
在尝试遵循您的工作流程的意义上,让我尝试多解释一下您的问题。您可能想要的是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的工具。看到这个
如果退出确认对您来说很烦,对我来说就是这样
我有(一对)黑客。
把它放在你的〜/ .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
}
截图..
腹水..
https://asciinema.org/a/130131
现在..
man vim
例如,当您键入时,它将在vim中打开此手册页。
man man vim
例如,如果键入,它将首先打开man
的手册,退出vim之后,它将打开vim
的手册。当您在底部的另一手册页(另请参阅部分)上按K(大写k
)时,您将跳到本手册(不幸的是在一个较小的寻呼机内) –这是因为我们有;如果您没有这样做,那么vim将被迫成为,并且您将无法轻松地记录宏,并且vim可能会以其他方式异常运行。let no_man_maps = 1
q
:q
因为已经加载了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
的扩展,你可以设置英尺到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[@]}"
}
截图..
腹水..
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
参数to 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://链接是什么吗?