Hatena::ブログ(Diary)

ぺっくブログミラー@peccul このページをアンテナに追加 RSSフィード

2014/09/28

= *-mode-mapのキーバインド一覧を出力する

[2014-09-28 10:42:09]

あるモードにキーバインドを追加したいけど、どのキーがあいているのかわからなかったので一覧表示できないか調べました。

たとえばBuffer-menu-mode-mapに設定されているキーバインドを出力するのはこんな感じです。

     (insert "\n" (substitute-command-keys "\\{Buffer-menu-mode-map}"))

2012/01/05

= etags.elのアドバイスがzshだとうまく動いてなかった

[2012-01-05 15:17:44]

Objective-CはGtagsが対応してないっぽいので,etagsを使うことにした.

昔find-tagsでTAGSファイルがなかったらetagsを実行するアドバイスを書いてたみたいだが,zshだとうまく動かなかったのでshell-file-nameで切り替えるようにした.

あと,objc-modeでgtags-modeをオフにしてキーバインドを戻すとか,c系のモードではgtags-modeがオンになる設定とかはこんな感じ.

2012/01/02

= #EmacsAdventJP まとめ

[2011-12-26 01:03:01]

メールクリスプマス*1でした.そしてあけましておめでとうございます.

ことしもつたないEmacs記事を書いていこうと思います.ブログもCommonLispネタかけたらいいな.

ということでEmacsAdventCalendarが無事に終わりましたので,まとめてみました.

ATND Emacs Advent Calendar jp: 2011 : ATND

あと,記事を公開した後から内容が更新されてるのがいくつかあるので,もう一回一通り眺めるのもおすすめです.

すみません,後半が疲れてます.私よりもsyohexさんのまとめの方がいい感じだと思います.

1日目 quickrun.elで開発効率アップ - syohex’s diary

トップバッターは「気になったEmacs記事」でおなじみsyohexさんです.quickrun.elの紹介でした.

バッファで開いてるのを実行して結果をポップアップするんです.ちょっとしたコード書くのに便利でopen-junk-file.elとの相性がバツグンです.

そういえば実行結果の最後にカーソルがあって,それがwindowの一番上に来ちゃうので一瞬出力が無いのかと思ってました.なんかの設定と競合してるのか仕様なのか…

2日目 = MewでiCloudのメールを読み書き - ぺっくブログミラー@peccul

2日目はpeccuで,iCloudのメールがMewで読めるよっていうだけの話でした.複数Caseの話はコメントで教えてくださった,

Mew で新規作成や返信時に case を自動的に切り替える方法 / マスタカの ChangeLog メモ

も参考になると思います.

3日目 no title

org-modeのドキュメント翻訳を指揮していらっしゃる@takaxpさんの記事でした.

org-modeからそのままプレゼンできちゃうなんてまるで就活で使ってくださいと言ってるようなもんですよね.

ちょっとがんばってみようと思います.

個人的にエフェクトが気に入ってます.@r_takaishiさんのorg-simple-presentation-mode.elも導入してたんで迷うところですね.

4日目 パスをまとめよう (Emacs Advent Calendar jp: 2011) | less ~/.emacs.d/init.el

HKe7さんの記事でした.path/to/ほげ っていう関数変数を作ってくれるっていうのがおもしろかったです.

あとinit.el自身のパスを使って設定するっていうのもなるほど思いつかなかったです.

5日目 Emacs は外部 elisp がなくても強い (Emacs Advent Calendar jp: 2011 5日目) - 備忘録

kbkbkbkb1さんの記事です.マークがリストに保存されてるのは知らなかった.C-u C-SPCで戻れるのは便利そうです.

プレフィックスキーを増やすのも便利ですよね.パスをディレクトリ単位で消すのは欲しいようなきもするけどもM-backspaceですましちゃうなぁ

カーソルが残るスクロールもいい感じですね.

6日目 no title

何よりも優先してキーバインドを設定したい.っていうのはorg-modeで強く感じてました.これがあるとうまくいくかもしれません.

7日目 Emacs で IPC や RPC (Emacs Advent Calendar jp: 2011) - 技術日記@kiwanami

EmacsFPSだったりcacoo.elだったりe2wmだったりcalfwだったりを作ってらっしゃる@kiwanamiさんです.

Emacsと外部との連携方法がいい感じにまとめられていて,きわなみさんの次のプロダクトが気になる一方で,何か作る時の参考にする道しるべになっていていい感じでした.

8日目 key-comboを使って読みやすいコードを書く (Emacs Advent Calendar 8日目) - むしゃくしゃしてやった

smartchr.elのかゆいところに手が届いた感じです.marmaladeからインストールできるのもいいですね.

9日目 Emacsをちょっとだけ自分色に染める (Emacs Advent Calendar jp: 2011) - 適当めも

自分好みの色の設定を作る方法を紹介しています.ここの色がきに食わない!という時に使えそうです.

10日目 input_output – That Detroit Flavor

マークアップに便利なモードを紹介しています.使っていないとわからない感じなので気が向いたら使ってみようと思います.

11日目 集中力5倍!小よく大を制するミニマリストEmacs - http://rubikitch.com/に移転しました

最近あやしい感じのるびきちさんです.

直前のバッファを一発で呼び出したり,view-modeをいい感じに使い分ける設定でした.

12日目 align設定用例集 - handlename's blog

alignを自分で設定できるのは知りませんでした.これはあとあとまた参照したい内容ですね.

13日目 Emacsの設定ファイルをorgで書く

Emacsの設定をorg-modeで書けるとは.移行するのは大変そうなので,新しいのをこれで書き始める.とかやるとそのうち移行できるかも.

14日目 Emacs で画像のスライドショーとカタログ表示 - まにっき

Emacs自炊した画像を見るっていう発想がありませんでした.たしかに見ながらメモとか取り始めると便利になりそうです.

15日目 multiple-value-blog1: Emacs Lispで式単位のコメントアウト

これは便利です.いつも使ってます.知らなかった人は絶対使った方がいいです.

16日目 点数付けの導入でタスク管理を楽しくする[Emacs拡張] - 悩めるなにか

私がめっきりタスク管理できないひとなので,いいかげんこれを導入してみようかと思います.org-modetodo管理が楽しくなればいいな.

17日目 私の.emacsからピックアップした設定3つ #EmacsAdventJP / マスタカの ChangeLog メモ

Diredで今日いじったのを色付け,いい感じです.あとはてぶ検索は便利だと思います.deliciousで便利だったので.

18日目 elispでカップリングするcoupling.el - Oh! Can Not Diary

新しい連載もたのしみなおきゃんさんです.Emacsでかけざんしちゃうなんてさすがです.

19日目 no title

smartrep,長いやつを短くできるとかすごいよ.うまく動かなかったからあとで要確認.

20日目 Emacs で Excel のオートフィルのようなことをする

オートフィルとか直感的でわかりやすくていいですね.さいごのネタもおもしろかったです.

21日目 アーティストモードでメリークリスマス

まさかartist-modeが出てくるとは.これはまじ芸術でした.

22日目 Emacs で SL - とりあえず暇だったし何となく始めたブログ

slが走るのをみてるとつぎは猫を走らせたくなります.catコマンドでそういうの作った人がいたので,移植を楽しみにしています.

23日目 404 Not Found

たしかにハッシュテーブルは知りませんでした.点字のやつハッシュテーブルにしてみようかしら.

24日目 Emacsで日常に彩りを〜普段使いのEmacs入門〜 - 意識の高いLISPマシン

Emacsユーザーを増やそうと思ったときにこのページを紹介するといいかもしれません.きれいにまとまってて,つまづきそうなところをいい感じにフォローしています.

25日目 [Emacs] リモートサーバで開発するときの Emacs 設定まとめ - daimatzメモ

そういえば私も気づいたらリモートでEmacs起動.というのに落ち着きました.やっぱり手間と(転送)時間を考えるとこうなるんですかねぇ

26日目 [:title]

体調不良でスキップ→31日へ

27日目 Anything-BibTeX を作りました - そんなことないよ

これ便利ですね.論文書くとき楽になりそう.RefTeXがなんとなく使いにくかった記憶があるので.

こんな感じで\ref{}入れるときに\labelをanythingで探したいですね.

anythingの情報源作る方法覚えるといろいろはかどりそうやし,やっぱEmacsLispテクニックバイブル買うべきかなぁ...積読が増えつづける...

28日目 空気のようなEmacs Lisp -2011 冬- - Emacs/Lisp/Drill - Emacsグループ

きました空気のようなEmacsLisp.

dmacroは便利ですね.私はf7に割り当ててて,空気のような存在であるが故にふと思い出したときに使えて便利です.

ちなみにS-f6がキーボードマクロ記録開始/終了,f6で実行に割り当ててるのでf6,7がマクロ関係にしてます.

こんな感じの設定です.

  ;; キーボードマクロの設定
  ;; cf.http://d.hatena.ne.jp/rubikitch/20080413/1208029571
  (defun start-or-end-macro (arg)
    (interactive "P")
    (if defining-kbd-macro
        (if arg
            (end-kbd-macro arg)
          (end-kbd-macro))
      (start-kbd-macro arg)))
  (define-key global-map [f6] 'call-last-kbd-macro)
  (define-key global-map [S-f6] 'start-or-end-macro)

  ;; dmacroの設定
  (defconst *dmacro-key* (kbd "<f7>") "繰返し指定キー")
  (require 'dmacro)
  (global-set-key *dmacro-key* 'dmacro-exec)

29日目 smartchrの設定例 - pogin’s blog

smartchrに関数も指定できたんですね.my-smartchr-semicolonとか便利そうです.

30日目 rc-vstudio.elで、VisualStudioをEmacsの手中に収める - ハンバーグステーキ -> BAKUNETSU VICTORY

VisualStudioEmacsから操作しちゃう.やっぱそうなっちゃいますよね.あと,

毎回Vimに似たような機能を作るのも大変だと思いますので、VimScriptを動作させるelispとかをパイプとして作ることができれば、すぐに取り込めるようになると思うんですけどね−。

rc-vstudio.elで、VisualStudioをEmacsの手中に収める - ハンバーグステーキ -> BAKUNETSU VICTORY

こういうのあったような.去年のEmacsAdventJPだったかなぁ…

31日目 bundle.el で Emacs でもぶんどる (Emacs Advent Calendar 31日目) - kozo2's blog

bundle.el,こういうのいいですね.リポジトリにある拡張はリポジトリクローンしたかったので,こういうの欲しかったです.でも自分でも作っちゃうかも

最後に

今年は30名の方に参加していただいて,また30個,Emacsについて詳しくなれた気がします.

毎年勉強になって,自分の無力さをしって,日々精進しないとな.と気づかされます.

Emacsの話題をブログに書き始めるきっかけになって,Emacsユーザーが増えたり,ブログ記事が増えたりして楽しいです.

また今年のアドベントカレンダーもよろしくお願いします.

2011/12/02

= MewでiCloudのメールを読み書き

[2011-12-01 02:08:32]

EmacsAdventCalendarJPの2日目です.

昨日はid:syohexさんの quickrun.elで開発効率アップ - syohex’s diaryでした.

明日は@takaxpさんのno titleです.

一時Mewを離れてMail.appに浮気していたのですが,やっぱりMewのauto-refileが強力なのでまたMewに戻ってきました.

最近iCloudのアカウントを作ったらメールアドレスもらえたので,Mewで複数アカウント切り替えたりiCloudのメール読み書きする設定をさらそうと思います.

SoftwareDesignのEmacs虎の巻とかぶってるかも..mew.elをとりあえず貼付けるとこんな感じ.実際は7アカウント分の設定あるけど2つだけ.

(setq mew-config-alist
      '(
        (default
          (name              "peccu")
          (user              "peccul")
          (mail-domain       "gmail.com")
          (ssl-verify-level  0)
          ;; setting for IMAP
          (proto             "%")
          (inbox-folder      "%inbox")     ;IMAPではinboxフォルダに固定されるので,意味が無い
          (imap-user         "peccul")
          (imap-server       "imap.gmail.com")
          (imap-ssl          t)
          (imap-ssl-port     993)
          (imap-delete       nil)
          (imap-auth         t)
          (imap-size         0)
          (imap-header-only  nil)
         ;; setting for SMTP
          (smtp-user         "peccul")
          (smtp-server       "smtp.gmail.com")
          (smtp-ssl          t)
          (use-smtp-auth     t)
          ;; (smtp-port         465)
          (smtp-ssl-port     587)
          (smtp-port         587)       ;サブミッションポート
          (use-submission    t)
          )
        (cloud
         (signature-file    "~/.emacs.d/.signature")
         (name              "peccu")
         (user              "peccu")
         (mail-domain       "me.com")
         (ssl-verify-level  0)
         ;; setting for IMAP
         (proto             "%")
         (fcc               "%Sent Messages")
         (inbox-folder      "%iCloud")     ;IMAPではinboxフォルダに固定されるので,意味が無い
         (imap-user         "peccu@me.com")
         (imap-server       "imap.mail.me.com")
         (imap-ssl          t)
         (imap-ssl-port     993)
         (imap-delete       nil)
         (imap-auth         t)
         (imap-size         0)
         (imap-header-only  nil)
         ;; setting for SMTP
         (smtp-user         "peccu@me.com")
         (smtp-server       "smtp.mail.me.com")
         (smtp-ssl          t)
         (use-smtp-auth     t)
         ;; (smtp-port         465)
         (smtp-ssl-port     587)
         (smtp-port         587)       ;サブミッションポート
         (use-submission    t)
         )
))

複数アカウントの設定

細かく見ていきます.まず二つのアカウントの設定がこんな風に分かれてます.default以外は2文字以上の好きな名前を付けられます.

最初は1文字にしててうまくいかずにはまりました.

(setq mew-config-alist
      '(
        (default
          ;; デフォルトの設定
          )
        (icloud
          ;; iCloud用の設定
         )
))

そんでiCloud用の設定項目はこんな感じ.

項目
IMAPサーバ imap.mail.me.com
IMAPポート 993
SMTPサーバ smtp.mail.me.com
SMTPポート 587
ユーザ名 user@me.com

設定できる項目はMewのドキュメントに詳しく載ってますが,基本的に設定用変数名からmew-を取ったものを指定できます.

signature-fileには署名を書いたテキストファイルを指定したり,nameがFromの表示名,userとmail-domainがFromのメールアドレスに使われて,fccが送信時にコピーを保存するフォルダ名です.

iPhoneからiCloudでメールを送信するとSent Messagesフォルダに保存されてたのでそれにあわせました.

複数アカウントの切り替えとか

メール読む時のアカウントの切り替えはSummaryの時にCキー(Case)を押すとアカウント名(設定でのdefault,icloudとか)を聞いてくるので入力してRETで切り替わります.

フォルダ名の取得(C-u Z)とかメールの受信(i)はアカウント一つでIMAP使ってる時と一緒です.

メールを書いてる時のアカウントの切り替えは,Draftの時にC-c C-oでSummaryの時と同じようにアカウントを聞いてくるので答えてあげると切り替わります.

操作 キーバインド
Summaryでアカウント切り替え C
Draftでアカウントきりかえ C-c C-o
フォルダ名取得 C-u Z
新着メールの受信(Summary) i

これであなたもiCloudEmacsを連携できまね.

2010/05/17

今日の思いつき

global-mode-line

- 全てのフレームに共通するモードライン

- そこにメールの受信状況,Readerのフィルターに引っかかった更新状況

- twtterのmention

- feed残unread

- など

API.el

- APIに対するelispを作りやすくするための機構

- 取得部

- 認証部

- 解析部

- 出力

- タイマーで自動更新

- キーバインドとかモード作成でいるやつ

- google readerとか,googleCalendar,twitterとか作りやすくなったらいいなと

stop-smartchr.el

- 89に()をsmartchrで割り当ててるんだけど,ことえりで7890と入力してF10など押そうものなら7()0となってしまうので,ことえりで全角入力してるかどうかを取得できれば何とかなりそうだけれども.知らない.誰か知らない?

- 参考資料 http://d.hatena.ne.jp/kitokitoki/20100506/p1

(defvar my-smartchr-minor-mode nil)

(defun my-smartchr-minor-mode ()

"指定した smartchr.el のキーバインドの有効/無効を切り替えるマイナーモード"

(interactive)

(setq my-smartchr-minor-mode (not my-smartchr-minor-mode))

(cond (my-smartchr-minor-mode

(global-set-key (kbd "F") 'self-insert-command)

(global-set-key (kbd ">") 'self-insert-command)

(global-set-key (kbd "=") 'self-insert-command)

)

(t

(global-set-key (kbd "F") (smartchr '("F" "$" "FF")))

(global-set-key (kbd ">") (smartchr '(">" ">>" ">|`!!'|")))

(global-set-key (kbd "=") (smartchr '("=" " = " " == " " === " "=> ")))

)))

(defadvice cua--deactivate-rectangle (before my-cua--deactivate-rectangle ())

(my-smartchr-minor-mode))

(defadvice cua--activate-rectangle (before my-cua--activate-rectangle ())

(my-smartchr-minor-mode))