[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3. e-パイプによるシェルとEmacsの統合

Onelinerはe-パイプという機能でシェルとEmacsを統合します。

3.1 e-パイプ  e-パイプとパイプバッフ 
3.2.1 e-パイプのシンタックス  シンタックス


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.1 e-パイプ

通常 UNIXシェルでは、コマンド間の入出力をパイプ`|' 記号で接続できます。

一方、Onelinerはパイプ`|' 記号を使って、コマンドの標準出力を Emacsバッファに接続したり、Emacsバッファをコマンドの標準入力に接続したりできます。 これを e-パイプと呼びます。下記の図はイメージ図です。

 
(Emacs Buffer) -> | commands | -> (Emacs Buffer)


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.2 パイプバッフ 

Onelinerではパイプバッファを頻繁に使います。

パイプバッファは `|'(e-パイプ)を使って コマンドと接続できます。

以下のような単純な操作で 自動的にパイプバッファが用意されます。

 
commands |

また、パイプバッファは番号を持っており、 複数のパイプバッファから番号で選択することができます。

用語を次のように定義します。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.2.1 e-パイプのシンタックス


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.2.1.1 e-パイプシンタックスについて解説します。[]内は省略可能です。

 
[buf-spec]| commands [+]|[buf-spec][!]

[]内のシンタックスについて解説します。

`buf-spec'
`省略時'
デフォルトパイプバッファの指定を意味します。
`番号指定時'
指定番号のパイプバッファの指定を意味します。
`@バッファ名'
この形式ではパイプバッファではなく既存のEmacsバッファの指定を意味します。 バッファ名の前後には余分な空白などを入れないように注意してください。

`+'
出力バッファに対しての追記を意味します。

`!'
出力後のバッファ全体をS式として評価します。

実際の記述例は以下のようになります。:
 
 find ./ -name \*.c | 
 | wc 
 | sort | 
 1| awk '{print $1}' | grep 10 | sort -n |9 
 cat file +| 
 cat file +|@*scratch* 
 @sample.c| wc 
 echo "(emacs-version)" |! 
 echo "(find-file \"a.c\")" |! 


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by Kiyoka Nishiyama on December, 7 2003 using texi2html