
私には、Emacs Lisp によるウェブアプリケーション開発シーンを盛り上げていきたいという熱い想いがあります。 最近、「次に来る大物Web言語」と称され Elixir などが注目されている様子が伺えますが、ウェブアプリケーションのサーバーサイド実装において次に来る言語というのであれば、個人的には Emacs Lisp こそを推していきたいと思います。なぜなら Emacs Lisp には、インタプリタでありそして同時にプログラミング環境でもある Emacs というソフトウェアが存在するからです。Emacs と最も親和性が高く、最もプラグインが豊富な言語こそが Emacs Lisp です。これを単なる Emacs の設定やプラグインを記述するための言語に留めておくには惜しいと言えるでしょう。 残念ながら現状 Emacs Lisp でのウェブアプリケーション開発は全くといって注目されていない
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Emacsは「拡張可能なテキストエディタ」と呼ばれ1、エディタとしての基本的な機能ですらユーザーが柔軟にカスタマイズできます。 最初から同梱されてるライブラリだけではなくWebにあるEmacs Lispパッケージを導入することで、べんりなインターフェイスや強力な編集機能、追加の言語サポートを取り入れることができます。 さて、そのEmacs Lispパッケージの管理方法については大きく変化があるので、この記事では近年の潮流について紹介します。 読むのがめんどくさいひとのために結論 Emacsを最新版にして、Caskを入れよう!!!! Ca
このブログはEmacs Lispで書かれていて、CoreOSが入ったマシンにDockerコンテナとしてデプロイされ、動いてる。あなたがこのブログのページをロードする度に、Dockerコンテナ内で走っているEmacsがリクエストをハンドリングして、org-modeで書かれた記事ファイルをhtmlに変換し、用意されたviewに差し込み、レスポンスを返している。elnode というEmacsをウェブサーバー化するプロダクト見つけて、気持ちが高まってしまったのが動機。 記事はorg-modeで書けて、いい感じ。ソースコードは github.com/supermomonga/darui.io にあります。Emacs Lispによるウェブアプリケーション開発、ある程度知見が貯まったので次はSinatra風ウェブアプリケーション作って、その後ドッグフーディングしてちゃんとしたブログエンジンとして書きなお
edebugとはソースコードデバッガedebugとは、Emacs Lispのソースコードデバッガです。 これを使うと、Emacs Lispがどのように実行されているのかをステップバイステップで見ることができます。 前の記事で紹介した trace-function では不十分な場合は、edebugで本格的にデバッグします。 edebugは状態がころころ変化するので、実際に手を動かしてみましょう。 edebugを有効・無効にするC-u C-M-xで関数をedebug対象にするedebugは基本的には関数単位でedebug対象にします。 特定の関数をedebug対象にするのは簡単です。 通常、関数フォームを評価する、すなわち関数を定義するには、defun中あるいは、defunの直後でC-M-xを使います。 それに対し、関数フォームをedebug対象にするには数引数をつけ、C-u C-M-xを使い
elisp のデバッグ方法について以下の3つの方法を説明します. - printf デバッグ - backtrace - edebug ■■■ printf デバッグ elisp で printf デバッグを行なうには message 関数を使います.message 関数の結果は *Messages* バッファに出力されます. 例えば以下の<リスト1>のように使います. ---------------- <リスト1> message 関数を使った printf デバッグ (defun message-sample () (let (list) (dotimes (i 10) (push i list) (message "%s" list)))) ---------------- 実行中に目視したい場合は sit-for と message の組み合わせか y-or-n-p を使うのが良い
The value of variable ‘load-path’ is a list of directories to search, in order, for EmacsLisp libraries that you load. If you do not alter it (directly or indirectly), by default it contains the Lisp source directories for the Emacs distribution. If you install an Emacs package using the package manager (see InstallingPackages), it automatically configures ‘load-path’ to handle the packages you in
始めに 大抵 Debian package を使っているわけですが, auto-install が Debian package 化されたのを機に auto-install を結構使うように なりました. とは言え, 枯れたソフトウェアはどんどん Debian パッケージ化したいと思っています. ここでは ~/.emacs に書かれている基本設定をメモしておきます. ファイルそのものは末尾に載せておきます. Local Variables でのモード設定 ;; -*- mode: emacs-lisp; coding: euc-jp-unix; indent-tabs-mode: nil -*- ;;; $Id: $ 基本的に UTF-8 で作業をしたい所ですが, emacs 22 以前だと UTF-8 を利用するのに muse-ucs が必要なので, ~/.emacs 自体は euc-j
An extensible, customizable, free/libre text editor — and more. At its core is an interpreter for Emacs Lisp, a dialect of the Lisp programming language with extensions to support text editing. The features of GNU Emacs include Content-aware editing modes, including syntax coloring, for many file types. Complete built-in documentation, including a tutorial for new users. Full Unicode support for n
[大きい画像はここをクリック] Riece は Emacs で動作する IRC (Internet Relay Chat) クライアントです。 特長 複数の IRC サーバに同時に接続できます。 アドオンとして提供される様々な拡張機能を利用できます。 他の elisp パッケージに依存しないのでインストールが容易です。 設定が簡単です。また、前回起動時の設定を記録・復元する仕組みがあります。 ユーザやチャンネルの一覧に別々のウィンドウを利用します。ウィンドウ構成(レイアウト)を動的に変更できます。 段階的な操作説明書が附属しています。 最新の IRC のクライアントプロトコル (RFC2812) に大方準拠しています。 ダウンロード 最新版は riece-8.0.0.tar.gz です。 (PGP 署名) 過去の版は http://dl.sv.gnu.org/releases/riece/
久々に Emacs の設定をした。普段は vim をつかっているのだが、日本語の長 文を vim で書くのはつらいので Emacs 環境を整備したかったのだ。 (Emacs ですべてを書くと左手の小指が死ぬので、日本語のときだけにつかう ことにしている) Emacs の設定は最近は MELPA だか package.el だか el-get だかでやるのが ナウいらしいのだが、どうちがうのかよくわからない。いろいろと日本語の情 報があるのだが、「そもそもどれがなんなのか」というところをあんま説明し てくれてなくて辛い。 いろいろと調べた結果、僕は以下のような結論にたっした。 package.el インストーラ。tar ball とか file を指定すると、それをインストールして くれる。便利。 MELPA レポジトリから定期的にフェッチしてきて、いいかんじに package.el 対応の
長ーい歴史をもつEmacsでも、いまだ解決できてない問題はいろいろあるわけで、その一つにパッケージ管理があると思います。 これには、すでにいろいろな試みがあります。 EmacsWiki: ELPA auto-install.elでEmacsLispパッケージを自動インストール→anything.el関連を一括インストール – (rubikitch loves (Emacs Ruby CUI Books)) el-get.elでEmacs Lispパッケージをインストール・アップグレードする – (rubikitch loves (Emacs Ruby CUI Books)) 他のプログラミング言語やLinuxディストロに目を向けてみますと、それぞれ独自のパッケージ管理方法があるわけですがCRAN、CPAN、PyPIのようなELPAに当たるサイトで集約的に管理されているものがほとんどです。
非同期のプログラミングの解説の中にはよく「継続(渡し)」が良く出てきます。継続といえば Scheme の call/cc ですが、やっぱり JSDeferred のサンプルのページにも出てきます。直感的にはあんまり関係ないような気がしますが、関係があるようです。 さらに、非同期と遅延評価の関係も気になります。非同期は「結果が後で来る」感じですが、遅延評価は「必要になるまで結果を計算しない」ということで、後回しにする感じが似ています。 今回、deferred.el を作った後にこれらについて考えてみたところ、なんとなく自分の中で実用的な結論に達したのでまとめてみました。以下、その過程とまとめです。 あらすじ 継続渡し(CPS)と非同期 CPS変換から非同期化 Deferredで非同期化 遅延評価と非同期 遅延関数のCPS変換から非同期化 Deferredで非同期化 明示的形式と暗黙的形式 継
Emacs を使っていると、選択範囲に対してなにか処理したいということはよくある。それなのに、Lisp がわからないからということで、あきらめてしまってはいないだろうか。Emacs でいろいろなことをやるにはLisp は必須だけど、「選択範囲に対して何か処理を施す」というだけであれば、Lisp はほとんど知らなくても実現できてしまう。 要は、選択範囲を引数として自作のスクリプトに渡して、それの戻り値を受取ることができればいいわけだ。選択範囲をスクリプトに渡すという部分はLisp で書かなければいけないんだけど、そこはここで示すテンプレートをコピーして使うだけで問題ない。 それでは、例として、選択範囲の小文字を全て大文字に変換するというものを作ってみよう。 (これ自体はEmacs の標準のコマンドでできるけど、ここは例としてこれを作る) まず、雛形となるLisp のテンプレート my-fun
Emacsの特徴の1つに、柔軟にカスタマイズが可能な点がある。本記事ではフォントの変更や外観の変更、キーバインディングの変更と行った基本的なカスタマイズと、定番のカスタマイズを紹介する。 Emacsは「Editor Macros」の略から命名されたことからも分かるように、柔軟にその動作をカスタマイズすることができる。EmacsのカスタマイズにはEmacs Lisp(elisp)と呼ばれる、Lispベースの専用マクロ言語を利用するのが一般的だが、Emacsに備えられているカスタマイズ機能を用いたカスタマイズも可能だ。elispによるカスタマイズは柔軟性に優れるものの、elispの文法はCなどの手続き型言語とは異なるため、取っつきにくさを感じる人も多いだろう。そのため、まずはカスタマイズメニューを用いたカスタマイズや、定番のカスタマイズ例をコピー&ペーストで利用する方法を覚えておくとよいだろう
You are here: Home → 原稿・資料 → Software Design 2008年2月号 「Emacsマスターへの道」 原稿
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く