2011-12-06 17 views
12

UNIXには、プログラムが$ PAGER(通常はlessまたはいくつかの同様のコマンド)でプログラムに呼び出して何らかの出力を表示する場所がたくさんあります。最も一般的な使い方の多くがEmacsの置き換え(例えば、manの場合)を持っているのは確かですが、私はシステム全体のページャーとしてEmacsを使用する一般的な方法が好きです。理想的には、これは、PAGERへの呼び出しが* Help *に似たEmacsの一時バッファーに終わることを意味します。これは、あなたがナビゲートしたり、 "q"を押して閉じることができる読み取り専用バッファーです。

私は通常Mxシェルでシェルを実行するので、私の想定するユースケースは* shell *ウィンドウに "man foo"のようなコマンドを入力すると、マンページが別のウィンドウに表示されます。組み込みの* Help *システムが動作します。

+4

'less'は' more'ですが、 'most'はemacsのようなバインディングと素敵な色を持った別のページャです。 – Daimrod

答えて

5

$PAGERの一般的な使用については、e-sinkに興味があります。

manページの特定の場合は、Emacsの組み込みのmanモードを使用することをお勧めします。私は私の.bashrcでこれを持っている:

man() 
{ 
    if [ "$TERM" == "eterm-color" ]; then 
     emacsclient -e "(man \"$1\")"; 
    else 
     command man "[email protected]"; 
    fi 
} 

私はあなたがこの使用は、すべての時間をのemacsclient作る、またはあなたは切り替えることができますので、あなたの.emacsファイルに(setenv "WITHIN_EMACS" "1")ような何かをする必要がありますいずれかを実行ようにあなたがshell-modeではなくansi-term-modeを使用しているので代わりに$WITHIN_EMACSにあります。

+2

あなた自身の変数を設定する必要はありません。emacsは 'M-x shell 'に' INSIDE_EMACS'を設定します。 [マニュアル](https://www.gnu.org/s/libtool/manual/emacs/Interactive-Shell.html) – brontitall

+0

+1を参照してください。私は 'ansi-term-mode'を好むので、私はそれを認識しませんでした。 –

関連する問題