vim을 호출기로 사용할 때 "man ascii"가 정렬되지 않습니다

vim을 호출기로 사용할 때 "man ascii"가 정렬되지 않습니다

Vim을 호출기로 사용하고 있습니다.

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

내 프로필에. 이제 매뉴얼 페이지의 색상과 내용이 매우 좋아 보입니다. 그러나 man asciiASCII 테이블을 보려고 할 때 아래 스크린샷과 같이 테이블이 잘못 정렬되어 있음을 발견했습니다.

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' -

관련 정보