
フォローするhttps://unix.stackexchange.com/a/43460/674:後ろに
$ locate -i linux | less
と入力しましたが、g|$emacs -
Emacsless
では何も開かずに端末に次のように表示されます。
emacs: standard input is not a tty
それはどういう意味ですか?
g|$emacs -nw -
いいえ。ところで、GUIではなく端末でemacsを使用したいと思います。
どうすればいいですか?
答え1
試してみlocate ... > file && emacs file
てlocate -i linux > file && emacs file
くださいtry locate -i linux > file && emacs file
。
emacs
一時ファイルの名前を「file」に指定するか、mx shell retに移動して実行し、-i linux retまたはmxlocate retを見つけようとします。
答え2
リンクしたスレッドに承認された回答そうです(このスレッドの他の答えと同様)。
Googleがこの投稿にアクセスしたすべての人をまとめるために、OPは次のように述べました。スレッド内のこの特定の回答へのリンクg|$vim -
内部コマンドを使用してless
すべてをチャネルにパイプします。less
vim
stdin
しかし、このスレッドへの回答、inでテキストを読むことは不可能です。したがって、この質問に対する答えはstdin
。代わりに使用時にemacs
一時ファイルとして出力することです。emacs
vim
答え3
StackOverflow で次の質問をご覧ください。Emacsで配管を減らします。- 特に回答を見るevent_jr、彼は自分が作ったパッケージに言及しています。電子シンク。簡単な説明は -Emacsclientを使用してシェルコマンドの出力をEmacsバッファに転送する。
私はこれがemacsclient
ターミナルバージョンで動作すると思いますemacs
私はe-sink
毎日使用していて(GUIバージョンで)気に入っています。しかし、使い方に合わせて呼び出すたびにバッファを消去するように少し修正しました。
答え4
Emacsを使用してstdからバッファを作成することはできません。 Emacs内で反対のタスクを実行し、LocateとLessを実行できますが、その逆の場合は不可能です。
それ以外の場合、Saulのアイデア(および参照された投稿の許可された回答)は正しいです。出力をファイルに保存し、emacsで開きます。