LoginSignup
6
6

More than 5 years have passed since last update.

shell-command 入力を補助する shelldoc

Last updated at Posted at 2014-12-05

Qiita には初投稿です。
Emacs Advent Calendar 2014 昨日は kenoss さんでした。
vim のカーソル移動には昔から興味があるのですが、Emacs に引きこもってしまいなかなか全力で試すことができません。

概要

shell-command などで shell を実行する際に man ページを表示して、コマンドオプションの確認をし易くします。
Unix な shell からコマンドを頻繁に使う人の記憶を man ページで呼び醒ますことを意図しています。
elisp 関数の概要を minibuffer に表示する eldoc をイメージすると良いです。

Github
Melpa

実行環境

こんな感じの環境で主に試してますが、Windows でも cygwin の shell を使ってれば動くと思います。

Linux **** 3.2.0-4-amd64 #1 SMP Debian 3.2.63-2+deb7u1 x86_64 GNU/Linux
GNU Emacs 24.4.1
GNU bash, version 4.2.37(1)-release (x86_64-pc-linux-gnu)

Install

M-x list-packages で MELPA からインストールしてください。すでに登録、反映されています。

summary 表示

M-x shell-command (M-!) から以下のようなコマンドを実行する場合を考えてみます。

sudo ls --all /var/log

カーソルが sudo 直後のときには sudo の man を

shelldoc1.png

カーソルが ls 直後のときには ls の man を window 分割で表示します。

shelldoc2.png

カーソル位置によって初期状態で表示するページの位置も変化します。
man のなかから option 引数と思われる記載をできるだけ強調表示します。(残念ながらずれることも)

shelldoc3.png

C-v M-v で help の window をスクロールします。
表示されている man 内の検索には C-c C-s, C-c C-r を試してください。isearch が起動します。

completion

man ページの情報を元にした option 引数の completion もサポートします。
shelldoc の window が表示されてる状態のときに - (ハイフン)を入力してから C-i を試してみてください。

shelldoc4.png

今後の課題

日本語 man ページも切り替えながら表示できるようになればいいなーと思っています。
それから tramp 対応が必要ですね。サーバサイドにいるときはサーバの man を表示したいところです。

明日は Emacs Advent Calendar 2014 7 日目 @kai2nenobu さんです。

6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6