Emacs Shell

戻ってきました。Emacs再入門8日目です。
私はごりごりのVimmerですが、Emacs楽しくなってきました。やはり他のテキストエディタとは一線を画しているなあと分かってきた今日この頃。

さて、Vimでは、標準入力をVimに渡すことで、編集できます。

takk@deb9:~/tmp$ echo HELLO | vi -
Vim: 標準入力から読込中...

takk@deb9:~/tmp$ 

当然Emacsも同じようにできるのかなあと思い、やってみました。

takk@deb9:~/tmp$ echo HELLO | emacs -

真っ白な画面です。簡単にはいかないようです。
特別なオプションがあるのでしょうか。man emacs見てみます。

EMACS(1)              General Commands Manual             EMACS(1)

NAME
       emacs - GNU project Emacs

SYNOPSIS
       emacs [ command-line switches ] [ files ... ]

DESCRIPTION
       GNU  Emacs  is a version of Emacs, written by the author of
       the original (PDP-10) Emacs, Richard  Stallman.   The  user
       functionality  of  GNU  Emacs  encompasses everything other
       editors do, and it is easily extensible since  its  editing
       commands are written in Lisp.

~省略~

   Emacs Options
       The following options are of general interest:

Emacs Optionsから下の方を、いろいろ探しましたが、標準入力を受け取るオプションみたいなものは、ありませんでした。
しかしすぐにこの問いが、愚問であることを悟りました。
Emacs内でshellが動かせるので、M-x shellとやるだけで、

このようにプロンプトが起動し、

コマンドが実行できます。つまり、Shell上でEmacsを動かすのではなく、Emacs上でShellを動かせばいいんです。

もちろん、標準入力を渡す方法は、いくらでもあると思います。しかし、Vimでは-を指定するだけの簡単なオプションが備えてあるのに、Emacsに簡単なオプションが存在しないのは、そもそもそんな使い方を推奨していないってことです。VimとEmacsはそれぞれ相反する思想で設計されているのかもしれません。

さて、いきなりM-x shellってのが登場しましたが、もちろんネットを探す必要はなく、man emacsに書かれています。

EMACS(1)              General Commands Manual             EMACS(1)

NAME
       emacs - GNU project Emacs

SYNOPSIS
       emacs [ command-line switches ] [ files ... ]

DESCRIPTION

~省略~ 

       GNU  Emacs's  many  special  packages  handle  mail reading
       (RMail) and sending (Mail), outline editing (Outline), com‐
       piling  (Compile),  running  subshells within Emacs windows
       (Shell), running a Lisp read-eval-print loop (Lisp-Interac‐
       tion-Mode),  automated  psychotherapy  (Doctor),  and  much
       more.

   Emacs Options

man emacsのオプションの説明の上ぐらいに、いろんなツールについて書かれています。
M-x doctorってのを実行してみました。

寂しい時に会話してくれるツールでしょうか。

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA