Qiita には初投稿です。
Emacs Advent Calendar 2014 昨日は kenoss さんでした。
vim のカーソル移動には昔から興味があるのですが、Emacs に引きこもってしまいなかなか全力で試すことができません。
概要
shell-command などで shell を実行する際に man ページを表示して、コマンドオプションの確認をし易くします。
Unix な shell からコマンドを頻繁に使う人の記憶を man ページで呼び醒ますことを意図しています。
elisp 関数の概要を minibuffer に表示する eldoc をイメージすると良いです。
実行環境
こんな感じの環境で主に試してますが、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 を
カーソルが ls 直後のときには ls の man を window 分割で表示します。
カーソル位置によって初期状態で表示するページの位置も変化します。
man のなかから option 引数と思われる記載をできるだけ強調表示します。(残念ながらずれることも)
C-v M-v で help の window をスクロールします。
表示されている man 内の検索には C-c C-s, C-c C-r を試してください。isearch が起動します。
completion
man ページの情報を元にした option 引数の completion もサポートします。
shelldoc の window が表示されてる状態のときに -
(ハイフン)を入力してから C-i を試してみてください。
今後の課題
日本語 man ページも切り替えながら表示できるようになればいいなーと思っています。
それから tramp 対応が必要ですね。サーバサイドにいるときはサーバの man を表示したいところです。
明日は Emacs Advent Calendar 2014 7 日目 @kai2nenobu さんです。