这里我自己也写了个比较山寨的索引工具来查找man手册。
#!/bin/bashTMP1="/tmp/manindex1.$$"TMP2="/tmp/manindex2.$$"echo "# Online Reference Manuals Index" >> $TMP1echo "# type Enter to see the manual of entry you selected" >> $TMP1echo "# type q to quit" >> $TMP1SEC=`echo $1 | grep "^[1-9]$"`for DIR in `manpath | sed 's/:/ /g'`;docase $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' >> $TMP2donecat $TMP2 | grep -v '^[\s]*$' | sort | uniq >> $TMP1vim "+syntax on" "+set filetype=conf nonu noma" "+map q :q!" "+map :!man $SEC " $TMP1 rm -f $TMP1 $TMP2
程序用vim显示匹配的man手册条目列表,移动光标到相应条目,键入回车即可跳转到对应的man命令查看页,键入q退出程序。
用法:
manindex [正则表达式 或者 章节号]
把上面的脚本以manindex为名字保存放到你的PATH中并设置执行属性后,可以在你的vimrc中加入
set keywordprg=manindex
这样在使用vim时,就可以随时用K查看对应的关键字看都有可供参考的联机手册了。
下图为执行"manindex 7"的结果,它显示了man手册第7章节所能找到的所有条目:
说明:
- 不带参数直接执行此脚本,显示所有条目;
- 参数为1-9之间的数字,显示系统中对应章节的所有条目;
- 参数为正则表达式,显示匹配的条目(不支持^和$);
不完善的地方:
未知章节号时,按默认方式执行man。例如我执行"manindex mkdir"的话,显示的mkdir条目只能跳转到"man mkdir"。而实际上有mkdir(1)和mkdir(2)两个不同章节的条目。以后会提供条目对应的章节。可以选择使用"man 1 mkdir"还是"man 2 mkdir"

没有评论:
发表评论