休日に私のUbuntuシステムでman
コマンドとgit log
コマンドの両方で何かがおかしくなりました。どちらも出力を生成せず、問題が何であるかについての手がかりはありませんが、どちらもページネーションされたコマンドを生成する必要があります。以下に例を示します。
いくつかのポイント
less
およびmore
は、他のgitコマンドを含め、私が試した他のすべてのものと同様に、正常に機能します。bash
とsh
の両方で持続します。どんな助けも大歓迎です!
>>> echo Hello world > Foo.txt
>>> git init
Initialised empty Git repository in /home/eoin/GitHub/Fake/.git/
>>> git add Foo.txt
>>> git commit -m "Init"
[master (root-commit) 9e53556] Init
1 file changed, 1 insertion(+)
create mode 100644 Foo.txt
>>> git log
>>> git status
On branch master
nothing to commit, working tree clean
>>> ls
Foo.txt
>>> man
What manual page do you want?
>>> man --version
man 2.7.6.1
>>> man man
>>> man git
>>> man ls
>>> which man
/usr/bin/man
>>> which git
/usr/bin/git
>>> which less
/usr/bin/less
>>> which more
/bin/more
(コメントしてくれた皆さんに感謝します)
git
またはman
の再インストールは機能しません。$MANPAGER
は新しいターミナルに設定されていません。MANPAGER=/usr/bin/less man man
を実行すると、期待どおりにマニュアルページが表示されます。すばらしいです!MANPAGER=/usr/bin/less git log
は何もしません。man man
が設定されていても、$MANPAGER
だけでは、これを実行した後でも何もしません。何らかの方法でMANPAGER
を永続化する必要があると思いますが、まだどのようになっているのかわかりません。良い進歩。Sudo update-alternatives --config pager
は次のオプションを表示します
There are 3 choices for the alternative pager (providing /usr/bin/pager).
Selection Path Priority Status
------------------------------------------------------------
* 0 /bin/less 77 auto mode
1 /bin/less 77 manual mode
2 /bin/more 50 manual mode
3 /usr/bin/w3m 25 manual mode
しかし、私はそれらをすべて試しましたが、man man
はまだ何もしません。
less
およびmore
は正常に機能します。
less
およびpager
は、私が知る限り、賢明なようです
>>> ls -l /usr/bin/less
lrwxrwxrwx 1 root root 9 Jul 18 2016 /usr/bin/less -> /bin/less
>>> eoin@eoin-SATELLITE-S50-B:~/GitHub/Fake$ ls -l /bin/less
-rwxr-xr-x 1 root root 170728 Mar 24 2017 /bin/less
>>> file /usr/bin/pager
/usr/bin/pager: symbolic link to /etc/alternatives/pager
>>> file /etc/alternatives/pager
/etc/alternatives/pager: symbolic link to /bin/less
man man | cat
はmanページを印刷します!
man man | less
も機能しますgit log | less
も同様です。Ubuntu 16.04を実行している職場のラップトップで、同じ問題に再び遭遇しました。私は主にpythonとRの科学計算にこのコンピューターを使用しているため、このプログラムのセットにはこの問題を引き起こす可能性があります。以下の解決策はまだそれを修正します。
代替システムが壊れているようです。次の方法で代替リンクを更新できるはずです。
Sudo update-alternatives --auto pager
その後、次の方法でお気に入りのページャーを選択します。
Sudo update-alternatives --config pager
それでうまくいかない場合は、たとえば.
export PAGER=/usr/bin/less
man
とgit log
の両方は、それを尊重して使用する必要があります(MANPAGER
は、すでに発見したように、man
のみで使用されます)。
変数の設定に関する短いクラッシュコース:
単一のコマンドだけに変数を設定します、例:
PAGER=/usr/bin/less man man
現在の端末に変数を設定します、例:
export PAGER=/usr/bin/less
新しい端末ごとに変数を設定します(ただし、既存の端末でも. ~/.bashrc
を使用してファイルを取得できます)。例:
PAGER=/usr/bin/less