を実行すると、マニュアルページファイルを開くのではなく(スクロール、検索などができるように)、マニュアルページのテキストが端末に出力されman [program]
ます(la、対話型機能を提供するポケットベルなし)。cat
less
➜ man git commit
GIT-COMMIT(1) Git Manual GIT-COMMIT(1)
NAME
git-commit - Record changes to the repository
SYNOPSIS
[...the rest of the man page]
echo $PAGER
return.runが通常どおりスクロールや検索などの機能を提供するのではなく、less
端末に出力を「実行」していることを確認しました。man -D -P less [program]
cat
less
デバッグフラグを使用すると、-d
" man
"using /usr/bin/less as pager
が表示されます。私は何が起きているのか恥ずかしかった。
その他の有用な情報:
➜ env | grep LESS
LESS=-R -M
LESS_TERMCAP_mb=
LESS_TERMCAP_md=
LESS_TERMCAP_me=
LESS_TERMCAP_so=
LESS_TERMCAP_se=
LESS_TERMCAP_us=
LESS_TERMCAP_ue=
➜ echo $TERM
xterm-256color
1つのプログラムでのみエラーが発生します。直接的な関係はないようですが、見てください。このGHの質問詳細。 tl;dr、発生するエラーは次のとおりです。troff: <standard input>:1: name expected (got '\ '): treated as missing
この内容は次回もクロスポストされます。万座郎のフォーラムはここにあります。
修正する:
問題はzpm-zsh/shading。これにより、\man
関数は無視され、\
エイリアスだけが無視されると思いました。このプラグインをアンインストールすると問題は解決しましたが、その理由を知りたいです。
答え1
私が経験している問題はenv
。
ああ、カラーマニュアルページenv
変数を設定するには、次のようにします。
function colored() {
env \
LESS_TERMCAP_mb=$(printf "\e[1;31m") \
LESS_TERMCAP_md=$(printf "\e[1;31m") \
LESS_TERMCAP_me=$(printf "\e[0m") \
LESS_TERMCAP_se=$(printf "\e[0m") \
LESS_TERMCAP_so=$(printf "\e[1;44;33m") \
LESS_TERMCAP_ue=$(printf "\e[0m") \
LESS_TERMCAP_us=$(printf "\e[1;32m") \
PAGER="${commands[less]:-$PAGER}" \
_NROFF_U=1 \
PATH="$HOME/bin:$PATH" \
"$@"
}
function man() {
colored man "$@"
}
他のプラグインも使用していますが、zpm-zsh/shadingそのパスenv
はgrv
(万能トナー)別の関数として呼び出すenv
:
function env () {
=grc --colour=auto env "$@"
}
理由が何であれ、あなたはgrc
あなたが好きではないことをします。man
解決策:
env
1) グローバルに定義された関数を使用してオーバーライドgrc
しない
2)env
次のコマンドを使用して、エイリアス/関数ではないことを確認してください。command
function colored() {
command env \
LESS_TERMCAP_mb=$(printf "\e[1;31m") \
[....]
}
function man() {
colored man "$@"
}