如何在Emacs中使用信息查看手册页?

如何在Emacs中使用信息查看手册页?,emacs,info,Emacs,Info,我可以使用终端中的info查看man页面: info pthread_创建 但是,在Emacs中使用info是不可能的,即使使用info apropos或info菜单也不可能 说伊曼: 使用InfoMode打开信息格式手册或使用 人模 它链接到作者的网站: 找到了M-x女性手册页RET从Emacs内部调用手册页的最方便方式。编辑: 似乎后退不在信息模式的概念中 下面是一个关于应用建议的工作。它不是完美的,而是围绕缺少的功能;-) 它定义了信息转到节点(在绑定到g的信息模式下)和信息菜单(在绑定到

我可以使用终端中的
info
查看
man
页面:

info pthread_创建

但是,在Emacs中使用
info
是不可能的,即使使用
info apropos
info菜单也不可能

说伊曼

使用InfoMode打开信息格式手册或使用 人模

它链接到作者的网站:

找到了
M-x女性手册页RET
从Emacs内部调用手册页的最方便方式。

编辑: 似乎后退不在
信息模式的概念中

下面是一个关于应用
建议的工作。它不是完美的,而是围绕缺少的功能;-)

它定义了
信息转到节点
(在绑定到g的
信息模式下)和
信息菜单
(在绑定到m的
信息模式下)的回退。
此外,它还为
信息apropos
添加了手动apropos

(要求“女性”)
(defun Info man completion(_调用者_Info字符串谓词操作)
“将人员条目添加到信息完成。”
;准备好女人:
(除非(和女人扩展目录路径女人主题全部完成)
(setq)扩展目录路径
(女人展开目录路径女人男人路径女人路径)
女性主题全部完成
(女性主题所有完成女性扩展目录路径)))
完成时:
(续)
((空操作);;尝试完成
最短的胜利
(让(_man(尝试完成字符串woman主题所有完成项)))
(续)
((等式信息t)
(t)
((方程式)
(t)
((和(stringp_信息)(stringp_人))
(如果(>(长度信息)(长度人))
_人
_信息(
((stringp_信息)
_信息)
(杜文)
)))
((等式作用t);;所有补全
(让(_man(所有补全字符串女性主题所有补全)))
(附加信息)
))
((均衡器动作‘lambda);;测试完成
(尝试完成字符串_调用者))
((eq操作的元数据);;当前完成状态
“(元数据);;无规范
)))
;; args:字符串谓词代码
(defadvice Info-read-node-name-1(人工激活周围)
“将人员条目添加到信息完成。”
(setq ad返回值(应用'Info man completion'Info-read-node-name-1 ad do it(ad get args 0)))
;;
(defadvice信息完整菜单项(人工激活周围)
“将人员条目添加到信息完成。”
(setq ad返回值(应用'Info man completion'信息完成菜单项ad do it(ad get args 0)))
(defadvice信息转到节点(人工激活周围)
“如果找不到用于字符串查找和显示人员输入的信息节点。”
(条件案例错误)
做它
(用户错误)
(让((err str(汽车安全(cdr err)))
(如果(和(stringp err str)
(字符串匹配“无此类节点或锚定:”err str)
(男子(ad get arg 0))
(信号“用户错误错误”str)
)))))
(defadvice信息菜单(人工激活周围)
“如果找不到用于字符串查找和显示人员输入的信息菜单项。”
(条件案例错误)
做它
(用户错误)
(让((err str(汽车安全(cdr err)))
(如果(和(stringp err str)
(字符串匹配“菜单中无此类项”err str)
(男子(ad get arg 0))
(信号“用户错误错误”str)
)))))
(关于查找节点的defadvice信息(在man激活后)
“将人员批准添加到信息批准。”
(项目)
(转到字符(最大点))
(let((禁止只读t))
(插入“\n由适当的人找到的匹配项\n\n”)
(让((求(点))
(节点信息(关于节点的关联节点名称信息)))
(如果是nodeinfo
(let((搜索字符串(第n个1节点信息)))
(调用过程“apropos”无搜索字符串)
(goto char beg)
(同时向前搜索“^\\(\(?:[:alnum:][]\\\\\\\\\\\\\\\\\\\\\)(?:[:blank:][]+\[\\\]\\\\\\\)([:blank:][]+\\\)[:blank:][blank:][blank:][blank:][]+\\(.\\)$”无)
(替换匹配(替换字符串“\\\”(格式“*%-38s.%s)”中的regexp)
(格式“%s:”(匹配字符串1))
(concat(匹配字符串1)(匹配字符串2))
(匹配字符串3‘‘‘‘‘‘)
(曼诺德内姆)
)))))

Info提供节点不可用的错误信息。此后,如果有手册页面,则会显示手册页面。

我认为这不是OP所要求的。在命令行上,如果您执行了
info something
操作,并且没有找到
something
info
页面,系统会返回到
something
man
页面,并使用
*manpages*
作为
信息
节点在
信息中显示该页面。这种回退不会发生在Emacs中。所以基本上
M-x人
@Chris我已经修改了答案,以反映OP问题的解决方案。谢谢你让我直截了当。
M-x man
提供了对手册页面的访问。因此在Emacs中没有办法对手册页面使用
Info
,所以当没有这样的信息文档存在时,我不必手动切换回
man
命令?这是一个小问题:-间接来自emacswiki。听起来它可能会做你想做的事情——如果它不做,可能还有其他事情可以做,因为你不太可能是第一个体验你正在经历的事情的人。@benrudgers如果这解决了问题,请将其作为答案写下来,以便Amunmu可以接受它,否则问题仍在开放列表中问题。@benrudgers好的,我正在使用
iman
,它实现了我的预期。你应该加上你的答案。无论如何,我仍然希望
info
能够在需要的时候回到
man
,所以我不必依赖第三方软件包来实现这一功能。这个答案与这个问题只有模糊的联系。@Tobias,除非是