[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Onelinerにはelというperlスクリプトが付属しています。よりshellとEmacsを深く統合します。
4.1 elコマンドとは? 4.2 elコマンドマニュアル 4.3 elコマンドを使ってみよう
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
elコマンドを使えばOneliner専用のshellコマンドを簡単に作ることができます。 elコマンドはshellバッファからS式をEmacsに送ったり、そのS式の実行を依頼したりできます。 つまり、shellコマンドからEmacsの機能を起動できます。 また、お好みのshellコマンドと Emacsの動作を連係させることができます。
例えば、以下のような芸当もできます。(shellバッファで以下のように入力するとEmacsがa.cというファイルを自動的にオープンします。)
$ find-file a.c |
さて、それを実現するためにはどうやれば良いのでしょうか?elを利用して次のようなaliasを定義します。 (bash,zshを想定しています。)
alias find-file="el -x -f '(display-buffer (find-file-noselect \"%s\"))'" |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
ここでは、elコマンドの詳細を解説します。 ここでの動作例は全てデフォルトパイプバッファに以下のデータが入っているものとします。
1 2 3 4 |
基本的な動作は、与えられたコマンドライン引数や標準入出力のデータからS式を組み立てて表示するものです。 以下に例を示します。
$ el 1 2 3 4 (1 "2" "3" "4") $ echo 1 2 3 4 | el (1 "2" "3" "4") $ echo 1 2 | el 3 4 (3 "4") $ | el (1 "2") (3 "4") |
elコマンドは多くのコマンドラインスイッチを持っています。 各スイッチの解説を行ないます。
$ | el -c elisp-func (elisp-func "1" "2") (elisp-func "3" "4") |
$ | el -a 1 -c elisp-func (elisp-func "1") (elisp-func "2") (elisp-func "3") (elisp-func "4") |
$ | el -f '(elisp-func "%s")' (elisp-func "1") (elisp-func "2") (elisp-func "3") (elisp-func "4") $ | el -f '(elisp-func "%s" "%s")' (elisp-func "1" "2") (elisp-func "3" "4") |
$ | el -s -c elisp-func (elisp-func "1" "2" "3" "4") $ | el -s -a 3 -c elisp-func (elisp-func "1" "2" "3") (elisp-func "4") |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
alias find-file="el -x -f '(display-buffer (find-file-noselect \"%s\"))'"
|
find-dired="el -x -f '(find-dired \"%s\" \"-name %s\")'"
|
alias dired='el -x -a 1 -c dired'
|
alias ediff-files='el -x -s -a 2 -c ediff-files'
|
alias w3m-find-file='el -x -a 1 -c w3m-find-file'
|
alias cvs-update="el -x -f '(cvs-update \"%s\" nil)'"
|
alias google="echo nil | el -x -f '(w3m \"http://www.google.co.jp/\" %s)'"
|
[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |