A Django site.
4月 29, 2008
» Carbon Emacsをフルスクリーンで使う

Desktop (Coding) Apr, 2008

以前、Emacsをフルスクリーンで使っている人のスクリーンショットを見かけたことがあり、WriteRoom的でちょっといいなあと思っていたのだけど、その時点ではタイトルバーやメニューバーまで非表示にするのはCarbon Emacsでは難しいということだったので諦めていました。

が、いつの間にかCarbon Emacsで完全なフルスクリーン表示を可能にするパッチを作成された方がいて([carbon-emacs:622] Re: “True” full-screen (patch announcement))、Carbon Emacs (2008年春版)では無事に取り込まれていました。

追加されたのは、フルスクリーン表示と通常表示をトグルするmac-toggle-max-window関数と、フルスクリーン時にメニューバーを隠すかどうかを表すmac-autohide-menubar-on-maximizeという変数。mac-autohide-menubar-on-maximizeが非nilの場合は(デフォルト値はt)、フルスクリーンにした際にメニューバーが隠れます。

;;フルスクリーン時にメニューバーを隠さない場合は以下を有効にする
;;(setq mac-autohide-menubar-on-maximize nil)
(mac-toggle-max-window)

そんなわけで、先週から仮想デスクトップの1番をCarbon Emacsが占有するようになりました。いやー、このストイックな感じがいいなあ。

1月 31, 2008
» Emacs Uptime

今週はなかなか忙しく、gauche.nightのチケット発券も期限ギリギリになる始末。Emacs.appを終了する暇もないくらい。今日で起動5日目です。

忙しいのに、ふと「Emacsのuptimeを知れたらいいな」と思ってしまい、現実逃避に検索してみるとuptime.elというよさそうなものを発見。Linuxの場合は/proc/uptimeを参照してくれ、それ以外のOSの場合は.emacsで一度uptime-initを読んでおく必要がありますが、面白そうなのでしばらく.emacsに仕込んでみることにしました。

uptime.el

1月 19, 2008
» markdown-mode

ブログのポストや普段のメモ書きはMarkdownで書いています。プロセッサにはテーブルや定義リストといった拡張文法を持つPHP Markdown Extraを使っていて、Wordpressのプラグインディレクトリに放り込みつつ、以下のように変更したものを手元でも使っています。

--- markdown.org.php	2008-01-20 17:15:08.000000000 +0900
+++ markdown.php	2008-01-20 17:16:21.000000000 +0900
@@ -1,3 +1,4 @@
+#!/usr/bin/env php
 <?php
 #
 # Markdown Extra  -  A text-to-HTML conversion tool for web writers
@@ -2633,4 +2634,11 @@
 software, even if advised of the possibility of such damage.
 
 */
-?>
\ No newline at end of file
+
+if ($argc < 2) {
+    $src = 'php://stdin';
+} else {
+    $src = $argv[1];
+}
+echo Markdown(file_get_contents($src));
+?>

実際に、ローカルのテキストファイルをHTML化する時には以下のような関数を使ってEmacsから呼び出しています。

;; リージョンの内容をMarkdownExtraで変換する関数
(defun markdown-region (from to)
  (interactive "r")
  (if (> from to)
      (rotatef from to))
  (let ((buffer-output (get-buffer-create "*markdown*")))
    (with-current-buffer buffer-output
      (erase-buffer))
    (call-process-region from
                         to
                         "markdown.php"
                         nil
                         buffer-output
                         nil)
    (switch-to-buffer-other-window buffer-output)))

このままでも結構満足していたのですが、昨日になってEmacs markdown-modeという素晴らしいものを見つけてしまいました。

markdown-modeは、Markdownで書かれたテキストのSyntax Highlightingとhtml-helper-modeライクなキーバインドでのマークアップを支援してくれ、ブラウザでのプレビュー(C-c C-c p)やバッファ内容のHTML化(C-c C-c m)もできる優れもの。.emacsでは以下のように書いて、変換に使用するコマンドを指定しています。

;; markdown-mode
;; http://jblevins.org/projects/markdown-mode/
(autoload 'markdown-mode "markdown-mode.el"
  "Major mode for editing Markdown files" t)
(setq auto-mode-alist
      (cons '("\\.mdml$" . markdown-mode) auto-mode-alist))
 
;; markdown-modeで利用するコマンド
(setq markdown-command "markdown.php")

markdown-modeにはリージョンの内容をHTML化する機能はなさそうなので前述のmarkdown-regionも併用していますが、これでかなり便利になりました。

10月 23, 2007
» エディタに求めるもの

シンタックスハイライトとかコード補完とかEmacsキーバインドとか色々ありますが、究極的には賢いインデント。これにつきる。Emacsから離れられない一番の理由がこれ。いちいち行頭に戻ってTABなんか押してられません。