アクトインディ開発者ブログ

子供とお出かけ情報「いこーよ」を運営する、アクトインディ株式会社の開発者ブログです

マニュアル/ソースを良く読もう!

こんにちは、chibaです!
完全にネタ切れなので、中途半端に失敗談を書きます。
skype.elは非常に便利なのですが、自分のEmacsの操作が鈍い所為かチャットの切り換えにいつも、もたもたしておりました。
このままではいけないと思った私は、便利elispを書いて対応することに。
社内のSkypeの利用形態としては、グループチャットが主で使われる部屋も2つ位と少ないので、このチャットをキー一発で開ければOKであろうと思われました。
ということで、skype.elをちらちら見つつ、

(require 'cl)

(defun *skype-find-ai-chat (name)
  (let ((chat (find-if (lambda (x)
                         (search name
                                 (aref x 2)))
                       (skype--chat-get-recent-objects))))
    (when chat
      (switch-to-buffer
       (skype--open-chat-buffer chat)))))

(defun skype-open-konnichiwa-chat ()
  (interactive)
  (*skype-find-ai-chat "こんにちは"))

(defun skype-open-kombanwa-chat ()
  (interactive)
  (*skype-find-ai-chat "こんばんは"))

(defun skype-open-oyasuminasai-chat ()
  (interactive)
  (*skype-find-ai-chat "おやすみなさい"))

(define-key global-map [(super ?1)] 'skype-open-konnichiwa-chat)
(define-key global-map [(super ?2)] 'skype-open-kombanwa-chat)
(define-key global-map [(super ?3)] 'skype-open-oyasuminasai-chat)

のような物を書いてみました。
これで、Super-1〜2で目的の部屋を一発で開くことができます。
これは割と便利だなーと思いつつ、改めて、skype.elを眺めたところ、

(global-set-key (kbd "M-9") 'skype--anything-command)

とするとanything.elと連携できて良いよ!との解説が。
試してみたところ、断然こっちの方が便利でした。
やはりREADME的なものはちゃんと読もう、と思った次第です。