联机手册页manpages是*NIX用户必不可少的参考文档,apropos(1)可以用于查找手册页的名字和介绍;或者通过导入脚本/etc/bash_completion,可以使用制表键的自动补全功能来列出手册页清单。
这里我自己也写了个比较山寨的索引工具来查找man手册。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #!/bin/bash TMP1="/tmp/manindex1.$$" TMP2="/tmp/manindex2.$$" echo "# Online Reference Manuals Index" >> $TMP1 echo "# type Enter to see the manual of entry you selected" >> $TMP1 echo "# type q to quit" >> $TMP1 SEC=`echo $1 | grep "^[1-9]$"` for DIR in `manpath | sed 's/:/ /g'`;do case $1 in [1-9]) ls $DIR/man$1 2>/dev/null ;; '') ls $DIR/man* | grep -v "/" ;; *) find $DIR -regex .*$1[^$/]+$ -exec basename {} ;;; esac | sed 's/.gz$//g;s/.[n0-9][a-z]*$//g' >> $TMP2 done cat $TMP2 | grep -v '^[s]*$' | sort | uniq >> $TMP1 vim "+syntax on" "+set filetype=conf nonu noma" "+map q :q!<CR>" "+map <CR> :!man $SEC <cWORD><CR><CR>" $TMP1 rm -f $TMP1 $TMP2 |
程序用vim显示匹配的man手册条目列表,移动光标到相应条目,键入回车即可跳转到对应的man命令查看页,键入q退出程序。
用法:
manindex [正则表达式 或者 章节号]
把上面的脚本以manindex为名字保存放到你的PATH中并设置执行属性后,可以在你的vimrc中加入
set keywordprg=manindex
这样在使用vim时,就可以随时用K查看对应的关键字看都有可供参考的联机手册了。
下图为执行"manindex 7"的结果,它显示了man手册第7章节所能找到的所有条目:
 - VIM.png)
说明:
- 不带参数直接执行此脚本,显示所有条目;
- 参数为1-9之间的数字,显示系统中对应章节的所有条目;
- 参数数为正则表达式,显示匹配的条目(不支持^和$);
不完善的地方:
未知章节号时,按默认方式执行man。例如我执行"manindex mkdir"的话,显示的mkdir条目只能跳转到"man mkdir"。而实际上有mkdir(1)和mkdir(2)两个不同章节的条目。以后会提供条目对应的章节。可以选择使用"man 1 mkdir"还是"man 2 mkdir"




发表评论