我从 http://plplot.org/documentation.php 下载一个 Info 文档,想在 Emacs 里看,据我以前的了解,必须要安装 (info “(texinfo) Installing an Info File”),看起来就麻烦,但是 info
命令行能直接看:
~ $ info Downloads/plplot-info-5.15.0/plplotdoc.info
但是 Emacs 却没有 Info-find-file 这样的命令,大家有什么经验和建议?
我从 http://plplot.org/documentation.php 下载一个 Info 文档,想在 Emacs 里看,据我以前的了解,必须要安装 (info “(texinfo) Installing an Info File”),看起来就麻烦,但是 info
命令行能直接看:
~ $ info Downloads/plplot-info-5.15.0/plplotdoc.info
但是 Emacs 却没有 Info-find-file 这样的命令,大家有什么经验和建议?
sudo mv Downloads/plplot-info-5.15.0/plplotdoc.info /usr/share/info
cd /usr/share/info
sudo install-info plplotdoc.info dir
应该没有什么简单方法,文档写得很难懂,但操作起来是很容易的
下面这个试试看
(setq Info-default-directory-list (append
Info-default-directory-list
'("~/backup/src/emacs-24.4/info")))
"~/backup/src/emacs-24.4/info"
你下载的 info 文件位置
PS:刚刚看到一个名为 Info-additional-directory-list
的变量,可以直接试试看这个。
helm-info
OK,怎么安装已经会了。
应该能做到不安装也能用吧,像命令行 info 那样。我试了下用 Emacs 打开 .info
文件,此时是 fundamental 模式,然后 M-x Info-on-current-buffer
试图打开 Info Mode,不成功,然后 M-x revert-bufer
居然就是 Info 了,虽然会报个错,但可以使用。
helm-M-x-execute-command: No such node or anchor: Top
Revert info buffer? (y or n) y
Info-find-node-2: Wrong type argument: stringp, nil
我觉得安装了不用每次都输入路径,要方便点。
看了一下 info.el,是有个 find-info-file
函数,不过它的作用只是返回完整路径而已,真正起作用的是 Infon-on-buffer
。所以直接打开 info 是没有问题的,比普通的 适合查看散放的 info 文件:find-file
多一个步骤而已。
(add-to-list 'auto-mode-alist '("\\.info\\(\\.gz\\)?\\'" . Info-on-current-buffer))
集中存放的 info 文件还是像 helm-info
那样比较方便:先收集到 info 列表,然后从通过下菜单打开。
这点没错。但我想先看看这个 info 在 Emacs 中的效果如何,安装需要操作,要是效果不好,后续卸载也需要操作。
如我前面提到,这个命令会报错,revert-buffer 后可用,不知是不是只有我有这个问题
helm-M-x-execute-command: No such node or anchor: Top
我 -Q
测了没问题:
emacs -nw -Q \
--eval "(add-to-list 'auto-mode-alist '(\"\\\\.info\\\\(\\\\.gz\\\\)?\\\\'\" . Info-on-current-buffer))" \
--eval "(find-file \"/usr/share/info/diff.info\")"
原来info file还要“安装”,我说我怎么看不到我放文件夹里的info文件。
不是 C-u
就行么? C-u M-x info
是的。我也是这个用的。
完美,没注意到 info
可以这么用。
补充下,默认快捷键是 c-u c-h i
C-x C-f
find-file 难道不是方便吗?
这个例子没问题,但是 plplotdoc.info 就会报错
File mode specification error: (user-error No such node or anchor: Top)
提示找不到 Top 节点,估计是因为 diff.info 安装了,而 plplotdoc.info 没安装。但是 C-u M-x info 没问题。
果然没安装的会有问题。
把 info
函数摘出来,让 auto mode 传参数就可以了:
emacs -nw -Q \
--eval "(require 'info)" \
--eval "(add-to-list
'auto-mode-alist
'(\"\\\\.info\\\\(\\\\.gz\\\\)?\\\\'\"
. (lambda ()
(interactive)
(info-setup (buffer-file-name (current-buffer))
(current-buffer)))))" \
~/Downloads/plplot-info-5.15.0/plplotdoc.info