に出力をシェル、私は次のように入力することができるようにしたいです。パイプEmacsは例えば新しいバッファ
答えて
M-! - シェルバッファと同じcwd内でコマンドを実行し、その結果を*Shell Command Output*
バッファに出力します。
結果が短い場合、そのバッファは生成されず、出力はエコー領域にコピーされます。しかし、バッファはまだ使用され利用可能なです。 Chのshell-command
F RETは、「簡単な」出力を構成するものの詳細を持っています
出力が非
resize-mini-windows
場合、変数max-mini-window-height
によって決定エコー領域 (に表示するのに十分短い場合-nil)、そこに表示されます。 それ以外の場合は、出力を含むバッファが表示されます。
eshell
を使用すると、出力をバッファにリダイレクトすることができます。
print foo > #<buffer bar>
コンテンツ 'foo'を持つ新しいバッファbar
を作成します。詳細については、Emacswiki(http://www.emacswiki.org/emacs/EshellRedirection)を参照してください。
ありがとう。それはeshellのために働く。しかし、私は通常のシェル(すなわちM-xシェル)を使用しています。 –
eshellがオプションではない場合、出力をemacsclientにパイプすることができます。これにはスクリプトやシェル関数が必要です。出発点としてhttp://www.emacswiki.org/emacs/EmacsClient#toc43を参照してください。 –
これはTRAMPを使うときには本当に便利です。 "foo/ssh:user @ machine:/ some/remote/file>#
残念ながら、emacsclient
は標準入力を読み取っていないため、何らかの種類のラッパーが必要です。ここで私の作品Bashシェルの機能があります:
tempbuffer() {
perl -MFile::Temp -MFile::Copy -e \
'copy *STDIN, $file = File::Temp->new; system "emacsclient", $file';
}
ご意見ありがとうございます。申し訳ありませんが、私はちょっとばかげています。私はbashファイルにこの関数を入れて、コンソールから呼び出すことができます。しかし、私は実際に実行したいコマンドを渡す方法を理解していません(つまり、 'git diff')。 –
元の投稿と同じように、つまり。 'git diff | tempbuffer 'と呼ばれる。 – Sean
ああ、それを得た。どうもありがとう。 –
私は出発点としてのEmacsのwikiからの情報を使用してパッケージ(e-sink)を作りました。これはあなたが説明したように機能し、プロセスがすべてを表示するまで待つのではなく、出力を「尾引き」します。バッシュは、一時ファイルを削除する前に、バッファを終了させるために
git diff | (f=$(mktemp); cat > $f; emacsclient $f; rm -v $f)
のemacsclientを待って:
私の個人的な好みは何かのためにあなたが任意のファイルを管理することなく、バッシュを入力することができます。
私はM-!シェルのコマンドを最初から開始していた場合には(シェルの答えに似ています)、これをEmacsにパイプしたいと決めました。
- 1. Emacsバッファのマークダウン
- 2. 更新モデルは、例えば
- 3. R:新しいデータフレーム例えば
- 4. バッファ上のEmacsシェルコマンド
- 5. Emacsには、Lisp:ローカルスコープで(例えば関数スコープ)
- 6. 更新例えばレール
- 7. パイプのバッファをフラッシュする
- 8. EmacsバッファをCに渡す
- 9. emacs isearchバッファ全体のレイジーハイライト
- 10. 「新しい」表現の中括弧は? (例えば、 "new MyClass(){...}")
- 11. バージョンinotifyは動的例えばインデックス新しいフォルダ
- 12. Emacsバッファでgitコミットを行うには
- 13. emacsでipythonバッファをクリアするには?
- 14. は、例えば、互いに
- 15. は、例えば
- 16. は、例えば
- 17. は、例えば
- 18. 私は配列を以下している。例えば新しいアレイ
- 19. のJava:ファイルを読み込み、新しいラインコンテキスト例えば
- 20. Emacsでファイルをバッファにロードし、起動時にバッファに切り替える方法
- 21. angular2パイプと新しいデータ
- 22. 新しいフレームのEmacsフック
- 23. Emacs - 拡張子を入力してバッファに切り替え、ファイル名を
- 24. Javaは:例えば
- 25. は、例えば、IIS
- 26. JMeterは例えば
- 27. JavaScriptは例えば
- 28. は、例えばメモリ
- 29. は、例えば、NULL
- 30. は、例えば行
私が提案している場合は、magitを試してみてください。それはあなたが望むものとまったく同じではないかもしれません。しかし、私はそれがあなたの必要性に合っているのを見ますhttps://github.com/magit/magit – kindahero