タグ

lispとEmacsに関するk1LoWのブックマーク (7)

  • Emacsユーザのためのadvice - Journal InTime(2009-12-24)

    _ Emacsユーザのためのadvice Emacs Advent Calendar jp: 2009の参加記事。昨日はid:hayamizさん。 明日は他に参加する人がいなければid:authorNariさん。 最近はVimを使うことが多いけど、shiroさんのお話を聞いてやっぱりLispは強力だなあとか思ったりしたので参加してみた。 知ってる人も多いと思うけど、Emacs Lispのadviceという機能を簡単に紹介しよう。 adviceとは、簡単に言うとCLOSのmethod combinationみたいなものだ。あるいは、Railsのbefore/after/aroundフィルタみたいなものと言った方がいいだろうか。要は、既存の関数(正確にはマクロや特殊フォームを含む)の実行の前(before)あるいは後(after)、前後両方(around)で実行したいコードを定義する機能である

  • Lisp はわからないけどEmacs で選択範囲に対してごにょごにょしたい | ブログが続かないわけ

    Emacs を使っていると、選択範囲に対してなにか処理したいということはよくある。それなのに、Lisp がわからないからということで、あきらめてしまってはいないだろうか。Emacs でいろいろなことをやるにはLisp は必須だけど、「選択範囲に対して何か処理を施す」というだけであれば、Lisp はほとんど知らなくても実現できてしまう。 要は、選択範囲を引数として自作のスクリプトに渡して、それの戻り値を受取ることができればいいわけだ。選択範囲をスクリプトに渡すという部分はLisp で書かなければいけないんだけど、そこはここで示すテンプレートをコピーして使うだけで問題ない。 それでは、例として、選択範囲の小文字を全て大文字に変換するというものを作ってみよう。 (これ自体はEmacs の標準のコマンドでできるけど、ここは例としてこれを作る) まず、雛形となるLisp のテンプレート my-fun

    Lisp はわからないけどEmacs で選択範囲に対してごにょごにょしたい | ブログが続かないわけ
  • Iterators in elisp

    A long time ago, before I knew elisp, someone told me to never use lexical-let. I've ignored their "advice" and have written this: (require 'cl) (defun get-iterator-over-words-in (buffer) (lexical-let ((buf buffer)(pos 1)) (lambda () (save-excursion (let ((cur (current-buffer)) result) (switch-to-buffer buf) (goto-char pos) (forward-word) (let ((pt (point))) (if (not (eq pos pt)) (progn (setq res

  • ㊣十大正规足球外围app-bsport体育娱乐官网入口

  • vim に lisp 機能をつける — ありえるえりあ

    emacs ユーザーが当り前のようにコマンドラインから lisp 式を評価している姿がこの上なく羨ましかったので、vim から直接式を評価して返す機能を作ってみた。 lisp コンパイラを自作するのは大変なので gnu common lisp を呼び出し、結果を返す事にする。 ~/.vimrc に以下の行を追加する。 let g:global_value = "/tmp/.tmp.txt" vmap <C-L> :w! /tmp/.tmp.txt<CR> nmap <C-L> :cal Mylispeval()<CR> function Mylispeval() execute "r !gcl -f < ".g:global_value endfunction 3行目では、ビジュアルモードにおいて Ctrl_L に '< から '> までの領域を適当なファイル(/tmp/.tmp.txt)

  • Emacs Lisp勉強会(基礎編) ― ありえるえりあ

    Emacsをまだインストールしていない人は、インストールしてから、この先を読んでください。 可能な限り、Javaとの対比をしながら説明します。 目次 Emacs Lispとは 開発環境 Emacs Lispの雰囲気(Javaとの比較) 関数型言語 Emacs Lisp;言語の基礎 なんでもオブジェクト シンボル コンスセル(リスト) 関数 その他(連想リスト、ベクタ、ハッシュテーブル) Emacs特有の型(バッファ、マーカ、etc.) 実践 ループ使ったら負け? 変数に代入したら負け? Emacs Lispとは マーケティング要素無しの、「write once, run anywhere」な言語です。 Javaの場合、次の欠点があります。 マシンにインストールされている保証が無い 他人のマシンに勝手にインストールするのは迷惑 Emacs Lispの場合、上の問題がありません。

  • ウノウラボ Unoh Labs: Emacsを自分で拡張する際のTips

    ウノウでは少数派なEmacsユーザのbokkoです。 今回は自分でEmacsLisp(以下、elisp)を書いてEmacsを拡張する際のTipsについて紹介します。 拡張する際に気に留めておくこと Emacsを拡張する上で覚えておくべきなのはEmacs上で行える対話的な動作は「M-x 関数名」で実現できるということです。例えば、C-bはカーソルを1文字分左へ戻しますが、これは「M-x backward-char」とタイプすることと同じです。もしC-bが押しにくい(多分私だけです)のであれば、以下のようなelispを評価してキーバインドを変更することができます。 (global-set-key "\C-l" 'backward-char) Emacsではこのようなキーバインドに限らず、あらゆる操作をelispを使って変更したり、新たに定義することができます。関数名もしくはキーバインドの一方し

  • 1