私はやめたいのですが、less
画面で見たものを振り返って残す場合が比較的よくありました。これを行う方法はありますか?解決策?
(現在の解決策は終了してから使用することです。したがって、それよりも良い解決策は大歓迎です。理想的には、シェル設定や一部のスクリプトを介してmore
一度入ると使用できます。)less
私のデスクトップはOSXですが、RHELとUbuntuサーバーを使用しています。
答え1
これは実際に使用している端末エミュレータ(xterm、gnome-terminal、konsole、screen)の機能です。プログラムを呼び出すless
か待機すると、代替画面または代替画面が実行されますvim
。この代替画面には履歴バッファがなく、プログラムを終了するとすぐに終了し、元の画面に戻り、前のウィンドウの内容の履歴と場所が復元されます。
less
「-X」引数を渡すと、代替画面で実行されないようにすることができます。
less -X /path/to/some/file
「-X」を環境変数として渡すこともできます。したがって、を使用している場合は、bash
次のように入力してください~/.bashrc
。
export LESS="-X"
ただし、これによりtermcap(ターミナル機能)の初期化と初期化解除が無効になり、less
それを使用すると他のビューが閉じられているように見える場合があります。
screen
別のオプションは、でaltscreen off
これを行うことです~/.screenrc
。less
これにより、画面が消去されずにカラーフォーマットが維持されます。おそらくtmux
同じ選択肢があります。
これブログエントリ問題を説明し、さまざまな成功事例でいくつかのソリューションを提供しますgnome-terminal
。
答え2
less -SEX
出力を画面にダンプする必要がありましたが、改行を望んでいなかったときだったことを覚えています。たとえば、docker ps | less -SEX
次のように動作します。
-S
- ラッピングの代わりにスクロール
- ドロップした場合は、
-E
矢印キーを使用してスクロールできます。
-E
- EOFに達すると終了
-X
- 用語交換/スペース防止
- 「記憶」部分はSとEが何をしているのかを知っているということなので、他の部分であるに違いありません。 (このコマンドをメモリにコミットする理由は、ラップされていない出力をダンプ(対話型セッションに入る代わりに)したいからです。
覚えていなければless -SEX
希望はあまりありません。私が推測するたびにもう一度Googleに検索してみてください。
答え3
Georgeの解決策は私には効果がありませんでしたが、この解決策はうまくいきました(fromブログエントリ彼の答えにつながっています)。
$ infocmp -I xterm > ~/xterm-noclear.src
~/xterm-noclear.src 編集
2行目の名前を「xterm」から「xterm-noclear」に変更するか、必要に応じて変更します(「xterm-debian」がある場合はそれも変更します)。
"smcup" および "rmcup" ディレクティブを削除します (例: "smcup=\E[?1049h," および "rmcup=\E[?1049l,"))
$ mkdir ~/.terminfo
$ tic ~/xterm-noclear.src
(x/xterm-noclear は ~/.terminfo ディレクトリになければなりません)$ export TERM=xterm-noclear
(これからlessの動作を確認して満足している場合は、〜/ .profileにエクスポートディレクティブ行を追加してください)
(@jahが編集を拒否したGeorgeの答えから直接この指示をコピーしました。)
答え4
より簡単な方法があります。 「cat」コマンドにコマンドを渡すだけです。
less blah.txt|cat
「less」だけでなく、出力を印刷するために「新しい」端末を生成する他の同様のコマンド(git logなど)でも機能します。