dan-perl.el 書いた

また無駄な物を書いてしまった。

http://gist.github.com/77312

参考:

by typester / at 2009-03-11T15:26:00 / perl · emacs / Comment

CarbonEmacsの背後のWindowを切り替える

そろそろ野球のシーズンですね。フルスクリーンEmacsの裏にメディアプレーヤーを置くとなかなか快適ということを発見しました。

watching wbc while coding

しかし、単純に裏に表示しているだけなため、Firefoxを開いたあとEmacsに戻ったりするとEmacsの裏の画面がFirefoxになってしまっていてイラッとします。

そこでこんな elisp で emacs の裏の画面を好きなアプリケーションにすぐに設定できるようにしてみました。

(do-applescript "activate application \"VLC\"
                 activate application \"Emacs\"")

快適。

ところで、これをもっと汎用的にして、VLC の部分を anything で選択きたら全画面 emacser にはものすごく便利なのかも。

by typester / at 2009-03-05T20:40:00 / osx · emacs / Comment

EmacsWiki のコードが冗長なので短くしてみた。

(setq erc-prompt (lambda ()
                   (let* ((buffer (buffer-name))
                          (channel (when (string-match "\\(#[^@]+\\)" buffer)
                                       (match-string 1 buffer))))
                     (erc-propertize
                      (concat
                       (or channel
                           (if (and (boundp 'erc-default-recipients) (erc-default-target))
                               (erc-default-target)
                             "ERC"))
                       ">")
                      'read-only t 'rear-nonsticky t 'front-nonsticky t))))

elisp的にはこういうのどうかくのが良いのかわからんけどとりあえず短くはなった。

by typester / at 2009-01-26T14:52:00 / emacs / Comment

id:IMAKADO さんにバッファ作らずに使わずに正規表現マッチする方法教えてもらったのでちょっと短くできた。

(setq erc-prompt (lambda ()
                   (let* ((buffer (buffer-name))
                          (channel (when (string-match "\\(#[^@]+\\)" buffer)
                                       (match-string 1 buffer))))
                     (if channel
                         (erc-propertize (concat channel ">") 'read-only t 'rear-nonsticky t 'front-nonsticky t)
                       (if (and (boundp 'erc-default-recipients) (erc-default-target))
                           (erc-propertize (concat (erc-default-target) ">") 'read-only t 'rear-nonsticky t 'front-nonsticky t)
                         (erc-propertize (concat "ERC>") 'read-only t 'rear-nonsticky t 'front-nonsticky t))))))
by typester / at 2009-01-26T14:41:00 / emacs / Comment

ERCのプロンプトにチャンネル名表示

というネタは EmacsWiki: Erc Configuration の Channel-specific prompts に書いてあるんだけど、そこにも書いてあるとおり、初回表示時にはチャンネル名にならないのでこんな感じにハック。

(setq erc-prompt (lambda ()
                   (let* ((buffer (buffer-name))
                          (channel (with-temp-buffer
                                     (insert buffer)
                                     (beginning-of-buffer)
                                     (when (re-search-forward "\\(#[^@]+\\)" nil t)
                                       (match-string 1)))))
                     (if channel
                         (erc-propertize (concat channel ">") 'read-only t 'rear-nonsticky t 'front-nonsticky t)
                       (if (and (boundp 'erc-default-recipients) (erc-default-target))
                           (erc-propertize (concat (erc-default-target) ">") 'read-only t 'rear-nonsticky t 'front-nonsticky t)
                         (erc-propertize (concat "ERC>") 'read-only t 'rear-nonsticky t 'front-nonsticky t))))))

バッファ名からチャンネル名部分とるようにした感じ。

1:1 トークとかどうなるかわからないのでとりあえず EmacsWiki のルーチンも書いておいた。

by typester / at 2009-01-26T11:41:00 / emacs / Comment

dopplr.el

最近 ERC つかって IRC も emacs でやるようにしたのだけど、昔 irssi 用に作った dopplr.pl とおなじことが emacs でもしたくなったのでちょっと書いてみたりした。

dopplr.el

使い方は dopplr.pl と同じで最初に

(setq dopplr-api-token "your api token") ; M-x customize-group RET dopplr でもできる

しておいて、あとは

M-x dopplr-local-clock RET miyagawa

するという感じになっています。

dopplr.el などとたいそうな名前ですがまだこれしか作ってません。

はじめて設定以外で elisp 書いたけどむずかしい。すごいぐちゃぐちゃになってしまった。絶対もっとうまく書けるはず。

by typester / at 2009-01-23T14:38:00 / emacs · elisp / Comment

CarbonEmacs + CodingFontTobi

フォント設定もさらしておく。

`~/.emacs.d/conf/carbon-emacs-05font.el

;; i <3 bitmap font
(setq mac-allow-anti-aliasing nil)

(create-fontset-from-fontset-spec
 (concat
  "-*-fixed-medium-r-normal--10-*-*-*-*-*-fontset-tobi"
  ",ascii:-apple-codingfonttobi-medium-r-normal--16-120-72-72-m-120-*-*"
  ",japanese-jisx0208:-apple-osaka-*"
  ",katakana-jisx0201:-apple-osaka-*"))

(create-fontset-from-fontset-spec
 (concat
  "-*-fixed-medium-r-normal--10-*-*-*-*-*-fontset-proggy"
  ",ascii:-apple-proggycleanttsz-medium-r-normal--16-120-72-72-m-120-*-*"
  ",japanese-jisx0208:-apple-osaka-*"
  ",katakana-jisx0201:-apple-osaka-*"))

(set-default-font "fontset-tobi")

CodingFontTobi と Proggy のフォントセットを定義して気分で使い分けてる。

デフォルトの Monaco+ヒラギノ も捨てがたく、たまに使いたくなったりするのでアンチエイリアスは

;; アンチエイリアストグル
(defun my-mac-toggle-antialias ()
  (interactive)
  (if mac-allow-anti-aliasing
      (setq mac-allow-anti-aliasing nil)
    (setq mac-allow-anti-aliasing t)))

こんなんでトグルできるようにしてる。この関数よびだしたあと画面が更新されると反映される。

こういう環境依存のコードは今までは自前で環境見てロードしていたのだけど、id:IMAKADO さんが公開してくれた init-loader 使うと carbon-emacs-* とか言うファイルは CarbonEmacs の時だけ読む、とかできて便利。

by typester / at 2009-01-20T16:06:00 / emacs / Comment

CarbonEmacsを使ってみる

先週 id:IMAKADO さんにあって、emacs 使いこなしててかっこよかったので影響されて僕も GUI な emacs が使いたくなったのでこの間書いた Cocoa Emacs を使い出そうとしたんだけど、なんかどうがんばってもバッファを縦分割したときのボーダーを表示させることが出来ないという理由であきらめた。(フリンジは消したかった)

なので CarbonEmacs を入れた。こっちはなんかボーダー出た。

Cocoa Emacs なら multitty で端末内でファイル開いちゃえばいいんだけど、CarbonEmacs にはそれがないので普通に emacsclient で開き、閉じたら端末にフォーカスが戻るという設定を書いた。

具体的には emacsclient で開いたときは勝手に CarbonEmacs がアクティブになるので、CarbonEmacs 側で閉じたときに端末に戻るように、

;; emacsclientで開いた端末をアクティブにする。とりあえずiTerm決めうち
(add-hook 'server-done-hook
          (lambda ()
            (do-applescript "tell application \"iTerm\"
                                activate
                             end")))

とするだけでOKだった。

by typester / at 2009-01-20T11:28:00 / emacs / Comment

emacs23をつかってみた

昨日のエントリで CarbonEmacs を使えばいいのかもと思ってちょっとためしてみようと思ったのだけど、どうせなら MultiTTY 使いたいなーなどという気持ちが出てきてしまった。

それで emacs23 ベースな CarbonEmacs 的なのがないかと探してみたら、いまの CVS の emacs は普通に Emacs.app を作ることができるみたい。

cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/emacs co emacs

とかで co してきて

./configure --with-ns
make
make install

で nextstep ディレクトリに Emacs.app ができている。

CLI で起動したい場合は

Emacs.app/Contents/MacOS/Emacs -nw

でおk。emacsclient は

Emacs.app/Content/MacOS/bin/emacsclient

にある。etags とかもここにある。

とりあえず multitty をためしてみるために Emacs.app と CLI (-nw) と両方立ち上げて

emacsclient -t /path/to/file

としてみたところ、ちゃんとどちらの emacs でも同じファイルを開き、編集内容も共有できた。

これで徐々に GUI な emacs に移行できるかなー。

by typester / at 2008-11-06T13:58:00 / osx · emacs / Comment

vc-annotate

Emacs の vc-annotate - naoyaのはてなダイアリー

そういえば設定したなとおもっておもむろに M-x vc-annotate してみたら git でもできた!

untitled

設定はこんなんで

http://svn.coderepos.org/share/dotfiles/emacs/typester/.emacs.d/conf/50_git.el

elファイルはgit自体についてくる。

by typester / at 2008-04-04T17:18:00 / emacs · git / Comment

1 2 3 4 5 6

(Page 2 of 6)