使用 vim 作为寻呼机时,“man ascii”未对齐

使用 vim 作为寻呼机时,“man ascii”未对齐

使用 Vim 作为 man 的寻呼机我有

export MANPAGER="/usr/share/vim/vim73/macros/manpager.sh"

在我的个人资料中。现在,手册页的颜色和内容看起来非常好。然而,当尝试man ascii查看 ASCII 表时,我注意到该表未对齐,如下面的屏幕截图所示:

ASCII 表混乱

默认寻呼机不会出现此问题。当我设置export MANPAGER="view -"表时也是正确的,所以脚本一定有问题manpager.sh

#!/bin/sh
sed -e 's/\x1B\[[[:digit:]]\+m//g' | col -b | \
vim \
    -c 'let no_plugin_maps = 1' \
    -c 'set nolist nomod ft=man' \
    -c 'let g:showmarks_enable=0' \
    -c 'runtime! macros/less.vim' -

我怎样才能解决这个问题?

答案1

当我尝试使用以下脚本时,一切正常:

#!/bin/sh
sed -e 's/\x1B\[[[:digit:]]\+m//g' | \
vim \
    -c 'let no_plugin_maps = 1' \
    -c 'set nolist nomod ft=man' \
    -c 'let g:showmarks_enable=0' \
    -c 'runtime! macros/less.vim' -

我不确定col在序列中扮演什么角色,但它肯定弄乱了空间。在有人给出更好的解决方案之前,这将是我的解决方案。

编辑col问题也是如此,因为它“在可能的情况下用制表符替换空白字符”。要解决此问题,col请在选项中使用空格而不是制表符-x。最终配置如下(归功于 Gilles)。

#!/bin/sh
sed -e 's/\x1B\[[[:digit:]]\+m//g' | col -bx | \
vim \
    -c 'let no_plugin_maps = 1' \
    -c 'set nolist nomod ft=man' \
    -c 'let g:showmarks_enable=0' \
    -c 'runtime! macros/less.vim' -

相关内容