如何从包中为 vim 插件创建帮助标签?

如何从包中为 vim 插件创建帮助标签?

我安装了vim-latexsuitevim-outliner软件包,它们是 vim 的插件。两者都带有文档文件,这些文件安装在 中/usr/share/vim/addons/doc directory。在 vim 中发出“help”命令,无法获取文档,因为它没有正确安装。这可能也适用于其他插件。

我如何为这些我希望由安装程序创建的附加组件创建帮助标签?

答案1

我能够通过两个步骤解决这个问题。

  1. 由于 vim 无法从压缩文档中生成所需的索引,因此我在重新运行索引器之前提取了这些文件。由于 vim 能够处理压缩文档,因此我删除了提取的文档并相应地调整了索引的文件名。
#!/bin/bash

#set -x
set -e

umask 077 
TMPTAGS=$(mktemp --tmpdir "`basename "$0"`.XXXXXXXXXXXX")
trap "rm -f '$TMPTAGS'" EXIT

declare -r AWK_SCRIPT='{ if( $2 in files ) $2=$2".gz"; print }'

helptags(){
        # extract zipped helpfiles and remember filenames
        local -i I=0 
        local -a TXT 
        for ZIP in `find . -xtype f \( -name '*.txt.gz' -o -name '*.??x.gz' \)`; do
                T=${ZIP%.gz}
                if [ -n "$T" ]; then
                        TXT[$((I++))]=$T
                        zcat "$ZIP" >"$T"
                fi
        done
        # generate tagfiles
        vim -c 'helptags .' +q
        # point tags to the zipped helpfiles
        local AWK_BEGIN="BEGIN { OFS=FS; "
        while [ $((I--)) -gt 0 ]; do
                AWK_BEGIN+="files[\"`basename "${TXT[$I]}"`\"]; "
        done
        AWK_BEGIN+='}'
        for T in `find . -xtype f \( -name 'tags' -o -name 'tags-??' \)`; do
                awk -F '\t' "$AWK_BEGIN $AWK_SCRIPT" "$T" >"$TMPTAGS"
                mv -f "$TMPTAGS" "$T"
        done
        # remove unzipped helpfiles
        for T in "${TXT[@]}"; do
                rm -f "$T"
        done
}

while [ $# -gt 0 ]; do
        if [ -d "$1" ]; then
                pushd "$1" >/dev/null
                helptags
                popd >/dev/null
        else
                printf '*** Invalid argument: %s\n' "$1" >&2 
        fi
        shift
done
  1. 最后,我把变量附加/usr/share/vim/addons到和中。runtimpath/usr/share/vim/vim74/debian.vim/etc/vim/vimrc.tiny

相关内容