<?xml version="1.0" encoding="utf-8"?>

<rdf:RDF
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
  xmlns:admin="http://webns.net/mvcb/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:cc="http://web.resource.org/cc/"
  xmlns="http://purl.org/rss/1.0/">

  <channel rdf:about="http://unknownplace.org/memo/">
    <title>unknownplace.org - Tags: emacs</title>
    <description>powered by CLON 0.2</description>
    <link>http://unknownplace.org/memo/</link>
    <dc:language>ja</dc:language>
    <dc:creator>typester</dc:creator>    <dc:date>2008-11-06T13:58:00+09:00</dc:date>
    <admin:generatorAgent rdf:resource="http://unknownplace.org/apps/clon?v=0.2" />

    <items>
      <rdf:Seq>
	<rdf:li rdf:resource="http://unknownplace.org/memo/2008/11/06#e001" />
 	<rdf:li rdf:resource="http://unknownplace.org/memo/2008/04/04#e001" />
 	<rdf:li rdf:resource="http://unknownplace.org/memo/2008/03/18#e001" />
 	<rdf:li rdf:resource="http://unknownplace.org/memo/2008/02/21#e001" />
 	<rdf:li rdf:resource="http://unknownplace.org/memo/2008/01/08#e001" />
 	<rdf:li rdf:resource="http://unknownplace.org/memo/2007/12/21#e001" />
 	<rdf:li rdf:resource="http://unknownplace.org/memo/2007/12/10#e001" />
 	<rdf:li rdf:resource="http://unknownplace.org/memo/2007/10/18#e001" />
 	<rdf:li rdf:resource="http://unknownplace.org/memo/2007/10/17#e001" />
 	<rdf:li rdf:resource="http://unknownplace.org/memo/2007/10/05#e002" />
 	<rdf:li rdf:resource="http://unknownplace.org/memo/2007/10/05#e001" />
 	<rdf:li rdf:resource="http://unknownplace.org/memo/2007/02/12#e001" />
 	<rdf:li rdf:resource="http://unknownplace.org/memo/2006/12/14#e002" />
 	<rdf:li rdf:resource="http://unknownplace.org/memo/2006/10/04#e005" />
 	<rdf:li rdf:resource="http://unknownplace.org/memo/2006/09/21#e006" />
       </rdf:Seq>
    </items>
  </channel>

  <item rdf:about="http://unknownplace.org/memo/2008/11/06#e001">
    <title>13:58  emacs23をつかってみた</title>
    <description />
    <link>http://unknownplace.org/memo/2008/11/06#e001</link>
    <content:encoded><![CDATA[<p>昨日のエントリで CarbonEmacs を使えばいいのかもと思ってちょっとためしてみようと思ったのだけど、どうせなら MultiTTY 使いたいなーなどという気持ちが出てきてしまった。</p>

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

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

<p>とかで co してきて</p>

<pre><code>./configure --with-ns
make
make install
</code></pre>

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

<p>CLI で起動したい場合は</p>

<pre><code>Emacs.app/Contents/MacOS/Emacs -nw
</code></pre>

<p>でおｋ。emacsclient は</p>

<pre><code>Emacs.app/Content/MacOS/bin/emacsclient
</code></pre>

<p>にある。etags とかもここにある。</p>

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

<pre><code>emacsclient -t /path/to/file
</code></pre>

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

<p>これで徐々に GUI な emacs に移行できるかなー。</p>
]]></content:encoded>
    <dc:subject>osx, emacs</dc:subject>
    <dc:creator>typester</dc:creator>
    <dc:date>2008-11-06T13:58:00+09:00</dc:date>
  </item>
  <item rdf:about="http://unknownplace.org/memo/2008/04/04#e001">
    <title>17:18  vc-annotate</title>
    <description />
    <link>http://unknownplace.org/memo/2008/04/04#e001</link>
    <content:encoded><![CDATA[<blockquote>
  <p><a href="http://d.hatena.ne.jp/naoya/20080404/1207294998">Emacs の vc-annotate - naoyaのはてなダイアリー</a></p>
</blockquote>

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

<p><a href="http://www.flickr.com/photos/typester/2386414551/" title="Untitled by typester, on Flickr"><img src="http://farm3.static.flickr.com/2265/2386414551_150b942f0f_o.png" width="820" height="562" alt="untitled" /></a></p>

<p>設定はこんなんで</p>

<blockquote>
  <p><a href="http://svn.coderepos.org/share/dotfiles/emacs/typester/.emacs.d/conf/50_git.el">http://svn.coderepos.org/share/dotfiles/emacs/typester/.emacs.d/conf/50_git.el</a></p>
</blockquote>

<p>elファイルはgit自体についてくる。</p>
]]></content:encoded>
    <dc:subject>emacs, git</dc:subject>
    <dc:creator>typester</dc:creator>
    <dc:date>2008-04-04T17:18:00+09:00</dc:date>
  </item>
  <item rdf:about="http://unknownplace.org/memo/2008/03/18#e001">
    <title>02:34  .emacsを公開した！</title>
    <description />
    <link>http://unknownplace.org/memo/2008/03/18#e001</link>
    <content:encoded><![CDATA[<p>kentaroさんが最近やたらemacsづいてるので影響を受けて先週末に.emacsを整理したのでついでにcodereposにあげてみました。</p>

<blockquote>
  <p><a href="http://coderepos.org/share/browser/dotfiles/emacs/typester">http://coderepos.org/share/browser/dotfiles/emacs/typester</a></p>
</blockquote>

<p>整理したら300行ちょっとしかなくなってしょんぼり。まぁまだ今までやってた設定全部は移せてないのだけども。</p>

<p>あとmmm-modeに再挑戦したがやっぱりむりだった＞＜ javascript.elでコメントアウトしたりしてるのがその名残。</p>

<p>nxml-mode + css-mode はうまくいくんだが javascript-mode とだとうまくうごかんなぁ。</p>
]]></content:encoded>
    <dc:subject>emacs</dc:subject>
    <dc:creator>typester</dc:creator>
    <dc:date>2008-03-18T02:34:00+09:00</dc:date>
  </item>
  <item rdf:about="http://unknownplace.org/memo/2008/02/21#e001">
    <title>15:44  TDD支援elisp</title>
    <description />
    <link>http://unknownplace.org/memo/2008/02/21#e001</link>
    <content:encoded><![CDATA[<blockquote>
  <p><a href="http://d.hatena.ne.jp/aike/20080217">TDDの勘所とTDD支援超簡易Emacs Lisp - aikeの日記</a></p>
</blockquote>

<p>が面白いなーと思ったので自分用に改造してみた。</p>

<p>モードラインの色を変えるようにしただけだけど。</p>

<p><a href="http://www.flickr.com/photos/typester/2281395034/" title="2008-02-21_1542 by typester, on Flickr"><img src="http://farm3.static.flickr.com/2328/2281395034_e528694896_o.png" width="460" height="458" alt="2008-02-21_1542" /></a></p>

<pre><code>;; C-c m でTDDのモード切替え

(defvar tdd-bgcolor-alist
      '(("Think"      ."snow")
        ("Red"        ."#ff4444")
        ("Green"      ."#44dd44")
        ("Refactoring"."#ffaa44")))

(defvar tdd-bgcolor-mode 3)
(defvar tdd-bgcolor-mode-name "")
(let (
      (cell (or (memq 'mode-line-position mode-line-format)
                (memq 'mode-line-buffer-identification mode-line-format)))
      (newcdr 'tdd-bgcolor-mode-name))
  (unless (member newcdr mode-line-format)
    (setcdr cell (cons newcdr (cdr cell)))))

(defun tdd-bgcolor-rotate ()
  (interactive)
  (let (pair)
    (if (&gt;= tdd-bgcolor-mode 3)
        (setq tdd-bgcolor-mode 0)
      (setq tdd-bgcolor-mode
                (+ tdd-bgcolor-mode 1)))
    (setq pair
      (nth tdd-bgcolor-mode tdd-bgcolor-alist))
    (setq tdd-bgcolor-mode-name (format "[%s]" (car pair)))
    (message tdd-bgcolor-mode-name)
    (set-face-foreground 'mode-line (cdr pair))))

(global-set-key "\C-cm" 'tdd-bgcolor-rotate)
</code></pre>
]]></content:encoded>
    <dc:subject>emacs</dc:subject>
    <dc:creator>typester</dc:creator>
    <dc:date>2008-02-21T15:44:00+09:00</dc:date>
  </item>
  <item rdf:about="http://unknownplace.org/memo/2008/01/08#e001">
    <title>01:53  mmm-mode</title>
    <description />
    <link>http://unknownplace.org/memo/2008/01/08#e001</link>
    <content:encoded><![CDATA[<blockquote>
  <p><a href="http://d.hatena.ne.jp/ZIGOROu/20080107/1199720692">mmm-mode and nxml-mode - Yet Another Hackadelic</a></p>
</blockquote>

<p>mmm-mode はいままで3回くらい挑戦してると思うけどうまく使えたためしがないのであきらめている。</p>

<p>今度社内でemacs自慢大会やるつもりなのでそのときにだれかやってくれないかな。</p>
]]></content:encoded>
    <dc:subject>emacs</dc:subject>
    <dc:creator>typester</dc:creator>
    <dc:date>2008-01-08T01:53:00+09:00</dc:date>
  </item>
  <item rdf:about="http://unknownplace.org/memo/2007/12/21#e001">
    <title>13:47  こうしたいflymake</title>
    <description />
    <link>http://unknownplace.org/memo/2007/12/21#e001</link>
    <content:encoded><![CDATA[<blockquote>
  <p><a href="http://dev.ariel-networks.com/Members/matsuyama/flymake-for-javascript">Emacs で JavaScript のシンタックスエラーを検出する</a></p>
</blockquote>

<p>これ読んですぐ導入したflymake。上記サイトのを少し改造したらperlでもできたのでいまはjsとperlでリアルタイムでシンタックスエラーチェックができている。</p>

<p>僕はすごくtypoがおおいと思うのだけどこれを導入してからtypoではまることがずいぶん減った。もうないとこまるelispのひとつになってる。</p>

<p>ちなみにperl版はこんな感じにしている。</p>

<pre><code>(require 'flymake)

;; flymake for perl
(defvar flymake-perl-err-line-patterns '(("\\(.*\\) at \\([^ \n]+\\) line \\([0-9]+\\)[,.\n]" 2 3 nil 1)))
(defconst flymake-allowed-perl-file-name-masks '(("\\.pl$" flymake-perl-init)
                                               ("\\.pm$" flymake-perl-init)
                                               ("\\.t$" flymake-perl-init)))

(defun flymake-perl-init ()
  (let* ((temp-file (flymake-init-create-temp-buffer-copy
                     'flymake-create-temp-inplace))
         (local-file (file-relative-name
                      temp-file
                      (file-name-directory buffer-file-name))))
    (list "perl" (list "-wc" local-file))))

(defun flymake-perl-load ()
  (interactive)
  (defadvice flymake-post-syntax-check (before flymake-force-check-was-interrupted)
    (setq flymake-check-was-interrupted t))
  (ad-activate 'flymake-post-syntax-check)
  (setq flymake-allowed-file-name-masks (append flymake-allowed-file-name-masks flymake-allowed-perl-file-name-masks))
  (setq flymake-err-line-patterns flymake-perl-err-line-patterns)
  (flymake-mode t))

(add-hook 'cperl-mode-hook '(lambda () (flymake-perl-load)))
</code></pre>

<p>でも、これだと単純に <code>perl -wc</code> しているだけで編集中の lib パスなどを @INC につっこまないため、その lib 以下にあるモジュールを use したりするとそこでエラーになってしまう。</p>

<p>なので今はモジュールやCatalystアプリの開発するときはいちいち emacs 上で <code>M-x setenv</code> してその lib パスを PERL5LIB にセットしている。。ちょうめんどくさい。。</p>

<p>そんでこれを自動化したいわけだがどうすればいいのかなぁ。</p>
]]></content:encoded>
    <dc:subject>emacs</dc:subject>
    <dc:creator>typester</dc:creator>
    <dc:date>2007-12-21T13:47:00+09:00</dc:date>
  </item>
  <item rdf:about="http://unknownplace.org/memo/2007/12/10#e001">
    <title>14:24  auto-save-buffers-enhancedでsvkのcoパス更新</title>
    <description />
    <link>http://unknownplace.org/memo/2007/12/10#e001</link>
    <content:encoded><![CDATA[<p><code>~/.svk/config</code> を起動時にしか見に行かないということで、emacs起動後にcoパスが増えた場合などリロードしたいとおもったら</p>

<pre><code>M-: (auto-save-buffers-enhanced-add-svk-checkout-path-into-include-regexps)
</code></pre>

<p>とすればいいらしい。メモメモ。</p>
]]></content:encoded>
    <dc:subject>emacs</dc:subject>
    <dc:creator>typester</dc:creator>
    <dc:date>2007-12-10T14:24:00+09:00</dc:date>
  </item>
  <item rdf:about="http://unknownplace.org/memo/2007/10/18#e001">
    <title>13:32  こうだったらいいのに auto-save-buffers</title>
    <description />
    <link>http://unknownplace.org/memo/2007/10/18#e001</link>
    <content:encoded><![CDATA[<p>開いてるファイルが svn(k) の copath だったらON、それ以外だったらOFFって自動でなるといいのになー。</p>

<p>今は</p>

<pre><code>(run-with-idle-timer 0.5 t 'auto-save-buffers "^/home/typester/dev/" "^$")
</code></pre>

<p>とかしてるけれど、その領域でもたまにsvn管理じゃないファイルつかったりするし、それで自動保存されると困るし。</p>
]]></content:encoded>
    <dc:subject>emacs</dc:subject>
    <dc:creator>typester</dc:creator>
    <dc:date>2007-10-18T13:32:00+09:00</dc:date>
  </item>
  <item rdf:about="http://unknownplace.org/memo/2007/10/17#e001">
    <title>10:42  bm.el</title>
    <description />
    <link>http://unknownplace.org/memo/2007/10/17#e001</link>
    <content:encoded><![CDATA[<pre><code>(global-set-key "\M-1" 'bm-toggle)
(global-set-key "\M-3" 'bm-next)
(global-set-key "\M-2" 'bm-previous)
</code></pre>

<p>とかで設定してるけどまったく使ってない。</p>
]]></content:encoded>
    <dc:subject>emacs</dc:subject>
    <dc:creator>typester</dc:creator>
    <dc:date>2007-10-17T10:42:00+09:00</dc:date>
  </item>
  <item rdf:about="http://unknownplace.org/memo/2007/10/05#e002">
    <title>16:46  できた</title>
    <description />
    <link>http://unknownplace.org/memo/2007/10/05#e002</link>
    <content:encoded><![CDATA[<pre><code>(remove-hook 'kill-buffer-query-functions 'server-kill-buffer-query-function)
</code></pre>

<ul>
<li>ref: <a href="http://aki.issp.u-tokyo.ac.jp/itoh/hiChangeLog/html/2007-04.html#2007-04-09-1">hiChangeLog / 2007-04</a></li>
</ul>
]]></content:encoded>
    <dc:subject>emacs</dc:subject>
    <dc:creator>typester</dc:creator>
    <dc:date>2007-10-05T16:46:00+09:00</dc:date>
  </item>
  <item rdf:about="http://unknownplace.org/memo/2007/10/05#e001">
    <title>16:19  emacsclient で開いたバッファを閉じるときに</title>
    <description />
    <link>http://unknownplace.org/memo/2007/10/05#e001</link>
    <content:encoded><![CDATA[<blockquote>
  <p>Buffer `svk-commitvP9pW.tmp' still has clients; kill it? (yes or no)</p>
</blockquote>

<p>などといわれるのをなくしたいのだが、どうすればいいのか！ 強制yesでいいんだけど。</p>

<p>それとも <code>C-x #</code> 的なもので保存せずに閉じるものあるのかな。</p>
]]></content:encoded>
    <dc:subject>life, emacs</dc:subject>
    <dc:creator>typester</dc:creator>
    <dc:date>2007-10-05T16:19:00+09:00</dc:date>
  </item>
  <item rdf:about="http://unknownplace.org/memo/2007/02/12#e001">
    <title>15:24  snippet.el いれた</title>
    <description />
    <link>http://unknownplace.org/memo/2007/02/12#e001</link>
    <content:encoded><![CDATA[<blockquote>
  <p><a href="http://www.goodpic.com/mt/archives2/2007/02/emacs_snippetel_html.html">emacs + snippet.el の定型文補完（スニペット）で楽々HTML編集：Goodpic</a></p>
</blockquote>

<p>を見て便利そうなので導入。</p>

<p>elisp よくわかんねーので、<code>psgml-mode</code> と <code>cperl-mode</code> で動かしたかっただけなのにものすごい時間かかった。。</p>

<pre><code>; snippet.el
(require 'snippet)
(require 'psgml)
(snippet-with-abbrev-table 'xml-mode-abbrev-table
  ("ahref" .  "&lt;a href=\"$${url}\" title=\"$${title}\"&gt;$${title}&lt;/a&gt;"))

(defvar cperl-mode-abbrev-table nil
  "Abbrev table in use in CPerl mode.")
(define-abbrev-table 'cperl-mode-abbrev-table ())
(snippet-with-abbrev-table 'cperl-mode-abbrev-table
  ("formy" .  "for my $${item} ($${items}) {\n}")
  ("cataction"  .  "sub $${fn} :$${attribute} {\n$&gt;my ($self, $c) = @_;\n}"))
</code></pre>

<p>こんなんでいけた。</p>

<p>psgmlのxml-modeは普通にやったら <code>xml-mode-abbrev-table</code> なんてねーよっておこられるので、先に <code>(require 'psgml)</code> しておいたらいけた。</p>

<p>cperl-mode も同じ方法でやろうとしたらなんかエラーになったのでソース見たら、<code>cperl-mode-abbrev-table</code> がすでに定義されてあったら cperl-mode 側では上書きしないっぽい感じになっていたのでてけとうに定義してやったらいけた。うむ、よくわからん。</p>

<p>まぁつかえたからいいや的な。</p>

<p>あとはabbrev-tableふやすだけ~。</p>
]]></content:encoded>
    <dc:subject>emacs</dc:subject>
    <dc:creator>typester</dc:creator>
    <dc:date>2007-02-12T15:24:00+09:00</dc:date>
  </item>
  <item rdf:about="http://unknownplace.org/memo/2006/12/14#e002">
    <title>16:37  ido-mode</title>
    <description />
    <link>http://unknownplace.org/memo/2006/12/14#e002</link>
    <content:encoded><![CDATA[<pre><code>(iswitchb-mode 1)
</code></pre>

<p>をやめて</p>

<pre><code>(ido-mode t)
</code></pre>

<p>をためしてみてる。</p>

<blockquote>
  <p><a href="http://platypope.org/blog/2006/9/8/i-need-a-cool-european-accent">platypope.org / blog / I need a cool European accent</a></p>
</blockquote>

<p>より。</p>

<p>iswitchbライクなバッファ切り替えと同じようなのをfind-fileでも使える。あとfind-file中にC-bするとバッファ切り替えに切り替わるのは人によっては便利かな。逆も可(バッファ切り替えじにC-fでfind-file)</p>

<p>どうなんだろうなこれは。すぐ戻すかもしれない。</p>

<p>あとnXML-modeもいれてみたけど、まだ使ってみていない。</p>
]]></content:encoded>
    <dc:subject>emacs</dc:subject>
    <dc:creator>typester</dc:creator>
    <dc:date>2006-12-14T16:37:00+09:00</dc:date>
  </item>
  <item rdf:about="http://unknownplace.org/memo/2006/10/04#e005">
    <title>11:38  Local variables on Recent emacs</title>
    <description />
    <link>http://unknownplace.org/memo/2006/10/04#e005</link>
    <content:encoded><![CDATA[<p>最近のemacsではLocal variablesがあるファイルを開こうとすると</p>

<pre><code>The local variables list in clmemo.txt
contains values that may not be safe (*).

Do you want to apply it?  You can type
y  -- to apply the local variables list.
n  -- to ignore the local variables list.
!  -- to apply the local variables list, and permanently mark these
      values (*) as safe (in the future, they will be set automatically.)

    mode : change-log
  * clmemo-mode : t
    tab-width : 4
    left-margin : 4
</code></pre>

<p>とかでるようになったらしい。へぇ、いいね。</p>
]]></content:encoded>
    <dc:subject>emacs</dc:subject>
    <dc:creator>typester</dc:creator>
    <dc:date>2006-10-04T11:38:00+09:00</dc:date>
  </item>
  <item rdf:about="http://unknownplace.org/memo/2006/09/21#e006">
    <title>23:36  emacs マニュアル</title>
    <description />
    <link>http://unknownplace.org/memo/2006/09/21#e006</link>
    <content:encoded><![CDATA[<p>はてのくんの真似してemacsマニュアルをひまなとき眺めてみることにしてみるかもしれない。</p>

<p>iswitchbとかuniquifyとかもemacsマニュアルに載ってたんだなぁ。ちゃんと読んだらだいぶ違いそうだ。</p>
]]></content:encoded>
    <dc:subject>life, emacs</dc:subject>
    <dc:creator>typester</dc:creator>
    <dc:date>2006-09-21T23:36:00+09:00</dc:date>
  </item>
</rdf:RDF>
