「less」は、端末で直ちに再描画を実行せずにエディタを開きます。

「less」は、端末で直ちに再描画を実行せずにエディタを開きます。

less主にコードを読みたいときに使い、ドキュメントvを編集したいときはエディタに切り替えるワークフローに切り替えたいと思います。これはOS XではGNU-lessですが、他のシステムでも一般化できると思います。

初期化ファイルを読み取らないようにVISUALvimを設定したり、すぐに起動する他のエディタ(vimやvimなど)を使用している場合は、押下とファイルがエディタに表示される間に目立つ一時停止はありません。vim -u NONEnanojoenev


たとえば、次はうまくいきます。

$ previous-command > foo.txt
$ VISUAL='vim -u NONE' less foo.txt

ファイルを表示するには、less目的の行までスクロールし、をタップするとvすぐにファイルが内部に表示されますvim


これを説明するために設定すると、VISUAL次のことが発生しますsleep 1; vim

$ another-previous-command > foo.txt
$ VISUAL='sleep 1; vim -u NONE' less foo.txt

これで、ファイルを表示してv編集をクリックしています。

シェルセッションはしばらくの間再び表示されるので、次のことがわかります。

$ another-previous-command > foo.txt
$ VISUAL='sleep 1; vim -u NONE' less foo.txt

foo.txt2番目のステップが経過すると、vimの内部の内容を見ることができます。


vim追加のコマンドライン引数なしで単独でファイルを読み込み、いくつかの初期化操作を実行できます。これは1秒もかかりませんがsleep 1; <VIM COMMAND>

lessコントロールをからに送信して、デフォルトのvimシェルセッションを見えないようにするか、部分的に見えないようにする方法はありますか?

ベストアンサー1

Less オプションは、-X端末の初期化と初期化解除をオフにして点滅を引き起こします。less端末エミュレータの代替画面機能を使用している可能性が高いです。それがMac OS XのTerminal.appであれば明らかにすることができます。代替画面間で手動で前後に切り替える。 (XTermでは手動で切り替えることもできます)。

さて、バックアップ画面とは何ですか?なぜそれほど頻繁に使用されないのですか?実際に歴史的な理由があります。ターミナルエミュレータはコンピューティングの初期から使用されてきましたが、現在は非常にまれに使用されている実際のハードウェアディスプレイデバイスであるターミナルとして偽装されています。プログラムは文字を出力し、ほぼ完全に端末エミュレータと通信します。特定の特殊文字は制御文字として指定され、カーソルの移動、画面の消去、色の変更などの操作を実行できます。現代のフレームバッファとは異なり難しいか不可能端末が現在表示している内容を把握するプログラムです。 (実際には、端末がユーザーが答えを入力したかのように答えを再送信するように制御シーケンスを送信して実行する必要があります。端末からプログラムにデータを送信する他の方法は実際にはありません。)。

したがって、他のコンテンツを表示した後(入力したコマンドを表示するためなど)、画面を復元するにはこれを行う端末が必要です。ほとんどの端末エミュレータでは、代替画面に切り替えて1つ以上の画面を保存できます。たとえば、echo hello | lesslessを閉じてから実行すると、変更されていない状態でbash画面に戻ります。これは、Lessが代替画面に切り替わり、そこに「hello」を表示してから終了すると再び切り替えられるためです。実行するとecho hello | less -X動作が大きく異なります(initの画面消去部分もスキップされるため、プロンプト後にファイルが実行されます。画面を強制的に消去して再描画するには、control-Lを使用してみてください)。 less を終了すると、シェル履歴は表示されなくなります。

ランダムサイドノートはless -FX便利な組み合わせです。

とにかく、あなたが見ているフラッシュは次のとおりです。 lessがエディタを起動したら、まず端末を「通常」状態に戻す必要があります。そのうちのいくつかは代替画面を切り替えることです。これがあなたが見るものです。 (vimが起動するとすぐに代替画面に戻りますが、lessはこれを知る方法がありません。)

また見なさい:端末でスクリーンリカバリを設定するには?

おすすめ記事