私は最近、私のファイルにページ付けを使用すると、Emacsでバッファを押して開くことがless
できることを学びました。これは、環境変数を正しく設定する限りv
機能します。私の場合は、次のように設定しました。$EDITOR
export EDITOR='env TERM=xterm-256color emacs -nw'
上記を使用して、実行中の端末にemacsをロードできますless
。
ただし、上記のトリックは次の状況では機能しません。管路これless
を行うと、less
次のメッセージが表示されます。
Cannot edit standard input (press RETURN)
私の質問は、なぜこれが起こるのかです。しかし、最も重要なことは、解決策はありますか??
答え1
良い解決策は、lessの出力をエディタにパイプすることです。たとえば、「echo foo | less」の後、次のことができます。
g|$vim -
g
ファイル/入力の最初の行にジャンプし、マーカー ("end") である "|
パイプ" 操作が呼び出され、範囲を次にパイプするコマンドが続きます (この場合 "-" は意味する)。 stdinから入力を受け取って読みます)。$
vim -
答え2
すでに述べたように、入力ストリームを編集することはできません。
解決策は非常に明白です。内部的にストリームをファイルに保存less
し、保存したファイルを開く。視聴中にこれを行うにはs
そしてファイル名を教えてください。その後、less
ファイルを終了して手動で開くか、内部でless
入力し続けます。:e
保存したばかりのファイル名を入力してください。
答え3
これは、ディスク上のファイルのみを編集できることを意味しますless
。プロセスの出力をパイプするとforSTDOUT
に移動し、編集するファイルはありません。STDIN
less