扩大@SamiLaine关于使用man的评论 – 我不喜欢它的一个原因是因为我预计它的设置会很乏味,我认为这篇文章将证明这一点;但是,它似乎工作.首先,可以在这里找到一些介绍:
首先让我们创建目录并将其添加到MANPATH:
mkdir ~/myreminderhelp
echo 'MANPATH=$MANPATH:'$(echo ~/myreminderhelp) >> ~/.bashrc
让我们测试是否找到:关闭终端,打开一个新终端;然后:
manpath -d 2>&1 | grep myrem
不幸的是,这对我没有报道;即使echo $MANPATH说:?/ myreminderhelp.
尝试使用全局/etc/bash.bashrc(删除本地?/ .bashrc中的行,然后重新启动终端):
sudo bash -c "echo 'MANPATH=$MANPATH:'$(echo ~/myreminderhelp)" # check home dir printout
sudo bash -c "echo 'MANPATH=$MANPATH:'$(echo ~/myreminderhelp) >> /etc/bash.bashrc"
重启终端;仍然manpath不报告此目录.我们现在试试这个:
sudo bash -c "echo 'MANDATORY_MANPATH '$(echo ~/myreminderhelp) >> /etc/manpath.config"
关闭并重新打开终端;最后,我们得到:
$manpath
/usr/local/man:/usr/local/share/man:/usr/share/man:/media/extern/texlive/2011/bin/i386-linux/man:~/myreminderhelp
事实上,在找到这个之后,我从/etc/bash.bashrc删除了这行,manpath仍然报告了该目录.所以,我想编辑/etc/manpath.config就是所需要的.
好的,我们在这里创建一个示例自定义提醒文件:
echo "Just a bit of a reminder...
Use nmcli con --help" >> ~/myreminderhelp/nmcli-reminder.txt
然后使用txt2man获取一个man格式的文件,并将其gzip:
cat ~/myreminderhelp/nmcli-reminder.txt | txt2man > ~/myreminderhelp/nmcli-reminder.1
gzip ~/myreminderhelp/nmcli-reminder.1
再次重启终端,尝试输入man nm并按TAB键 – 自动完成显示找不到nmcli-reminder …
所以让我们尝试将我们的文件放在man section子文件夹中;上述链接表明第7节是适当的;所以:
mkdir ~/myreminderhelp/man7
mv ~/myreminderhelp/nmcli-reminder.* ~/myreminderhelp/man7/
tree ~/myreminderhelp # to check - ok
重新启动终端;尝试键入man nm并按TAB – 自动完成最终工作:
$man nmcli # and here press TAB:
nmcli nmcli-reminder
…但现在我们遇到了这个问题:
$man nmcli-reminder
No manual entry for nmcli-reminder
该死的.可能是目前,我们的文件是nmcli-reminder.1.gz,表示第1部分 – 让我们重命名它:
mv ~/myreminderhelp/man7/nmcli-reminder.1.gz ~/myreminderhelp/man7/nmcli-reminder.7.gz
man nmcli-reminder
……最后man命令有效!
因此对于这个用例,可能最好将源.txt文件直接保存在?/ myreminderhelp /中,然后在相应的子文件夹中生成手册页 – 如下所示:
$tree ~/myreminderhelp/
~/myreminderhelp/
├── man7
│?? └── nmcli-reminder.7.gz
└── nmcli-reminder.txt
…这个适当的生成命令:
cat ~/myreminderhelp/nmcli-reminder.txt | txt2man > ~/myreminderhelp/man7/nmcli-reminder.7
gzip ~/myreminderhelp/man7/nmcli-reminder.7
这是一个?/ myreminderhelp / buildreminders.sh脚本:
#!/usr/bin/env bash
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
for ix in $DIR/*.txt; do
bx=$(basename $ix)
isn=${bx%%.txt}
echo Processing $isn;
set -x
# txt2man -t "$isn" -s 7 $ix > $DIR/man7/${isn}.7
pandoc -f markdown -t man -s -o $DIR/man7/${isn}.7 $ix
gzip --force $DIR/man7/${isn}.7
{ set +x; } 2>/dev/null
done
tree -a $DIR
编辑:事实证明,很难让txt2man保留未格式化的文字源代码,因为它倾向于自动提取人(子)部分等信息.我已经修改了上面的脚本而不是使用pandoc(通过WritingManPages – HerzbubeWiki) – 至少使用带有Markdown输入的pandoc,你可以控制什么是文字预格式文本,什么不是…
但是,这两个工具都会缩进内容,这对于手册页来说是典型的(因为在那里,章节标题是非缩进的,其余的文本内容如段落中所示).而且我不确定我最终还是喜欢这么多……