2007/01/03
Emacsからシェルを有効活用する
vim の ! には負けないぞ!
M-! の出力先が minibuffer なのがむかつくときは C-u M-! としましょう。出力先が current-buffer になります。例えば C-u M-! date RET とすれば現在時刻を current-buffer に書きこむことができます。
region を stdin にしたいときは M-| を使いましょう。例えば csv ファイルの一部を選択して M-| awk -F ',' '{ print $2 }' RET とすると2列目だけを抜きだしたテキストを minibuffer に出力してくれます。 C-u M-| とすれば vim の ! と同じ動作が得られます。つまりコマンドの出力が region に置きかわります。
eshell 使えという話に終始するネタなのですが、個人的に eshell が嫌い(設定がだるい)なのと、プリミティブなシェルが使いたいじゃんということで投下した次第であります。ちなみに eshell で vim を起動して ! するという変態な方法は大好きです。頭悪いうえに無駄が多くてすばらしいですね。
蛇足ですが僕はこの方法を知るまでは screen の copy-mode を使ったり、一度ファイルに保存してシェルで処理したのちに M-x revert-buffer RET するとかアホなことをしていました。シェルの活用はなかなか気付きにくいのが難点ですが、気付きさえすればハッカー気分を十分に味わえるのでなかなか興味深いですね。
- The URL to Trackback this entry is:
- http://dev.ariel-networks.com/Members/matsuyama/emacs-shell-command/tbping