在文件内,~/.zshenv
我导出环境变量的值MANSECT
(该值取自/etc/manpath.config
):
export MANSECT=1:n:l:8:3:2:3posix:3pm:3perl:5:4:9:6:7
$ man
当您未指定时,此变量似乎控制搜索联机帮助页的部分的顺序。
例如,此命令打开printf
手册第一部分中的联机帮助页:
$ MANSECT=1:2:3 man printf
因为我没有指定我感兴趣的节号,并且因为该节位于内的1
节之前。3
$MANSECT
相反,此命令打开printf
手册第三部分中的联机帮助页:
MANSECT=3:2:1 man printf
因为该部分位于中的3
部分之前。1
$MANSECT
现在,根据 Vim 的帮助 ( :help manpager.vim
),Vim 可以用作手册页:
export MANPAGER="vim -M +MANPAGER -"
如果我使用以下$ vim
命令启动 Vim,并询问 的值$MANSECT
,我会得到原始值(在 shell 中导出的值):
$ export MANSECT=1:2:3
$ export MANPAGER="vim -M +MANPAGER -"
$ vim
:echo $MANSECT
最后一个在 Vim 命令行上:echo
正确打印。1:2:3
但是如果我用以下$ man
命令启动 Vim:
$ export MANSECT=1:2:3
$ export MANPAGER="vim -M +MANPAGER -"
$ man man
:echo $MANSECT
最后一个:echo
仅在 Vim 的命令行上打印1
,而不是1:2:3
.
有关我的机器的一些信息:
vim --version
:VIM - Vi IMproved 8.1 包含的补丁:1-495man --version
:2.7.5- 操作系统:Ubuntu 16.04.5 LTS
- 终端模拟器:rxvt-unicode v9.22
- 终端多路复用器:tmux 2.8
$TERM
:tmux-256color- 外壳:zsh 5.6.2-dev-0 (x86_64-pc-linux-gnu)
使用 Vim 作为手册页时是否可以防止$MANSECT
被更改?
我之所以问这个问题是因为Neovim 人插件如果您将 Neovim 作为联机帮助页启动,则遇到以下问题:您无法打开手册第一部分之外的联机帮助页:
$ export MANSECT=1:n:l:8:3:2:3posix:3pm:3perl:5:4:9:6:7
$ export MANPAGER='nvim +Man!'
$ man man
:Man mount
最后一个命令引发以下错误:
man.vim: command error (11) man -w mount: No manual entry for mount
See 'man 7 undocumented' for help when manual pages are not available.
这是因为$MANSECT
已被截断为第一个节号 ( 1
),并且其联机帮助页$ mount
位于 节中8
。