Vine3.2 で Emacs Lisp
西広島ドットコムへようこそ!
|トップ|新着情報|検索|サイトマップ|
 パソコン
 ネット

現在のところ、最も内容が充実しています。

 プログラム
 地域
 学習指導
 哲学
 創作
 批評
 トレード
 リンク集

Emacs Lisp

マクロの基本

Emacs Lisp の特徴は全ての記述が二つの括弧 () に囲まれたリストとして書かれることです。 括弧中にはいくつかの要素が書かれますが、左端が手続名、その後に任意の個数の引数がきて、 このリスト全体が一つの値を持ちます。 例えば (+ 1 2)1 + 2 = 3 という値をもっています。

マクロを実行することを評価(Evaluation)ともいい、簡単な方法は、先ほどやったように、 ) の後ろにカーソルを持っていき、C-x C-e とすることです(Ctrl を押しながら x を押すのを C-x と書く)。

ログの一部を削除する例

以下は、NIFTY-Serve の過去ログの形式です。

 - FGALTS  MES(13):情報整理|パーソナル文書処理システム構築 96/07/19 -
 00045/00046 KFF03452  閑舎             Elispのお勉強
 (13)   96/07/18 20:09
 
    皆さん、こんにちは。
 ...
 
 00046/00046 KFF03452  閑舎             【住所録】を作る
 (13)   96/07/18 20:10
 
 ...
 
 00047/00049 GFC12345  ほげ太           Re:【住所録】を作る

記事のどれかを読んでいて、削除したい記事なら、その記事の任意の場所で、 以下のキイ M-n を押すと実行できます(Alt を押しながら n)。 やはり復活したいとなったら、すぐに C-x u を押します(C-x の後 Ctrl から手を離して u)。

 (global-set-key "\M-n" 'kill-nifty-comment)
 (defun kill-nifty-comment ()
   "Cut a current comment in a nifty global log."
   (interactive)
   (let ((str "^-.[FS][A-Z0-9]+.+MES\|^[0-9][0-9]+/[0-9]"))
     (end-of-line)
     (if (re-search-forward str (point-max) t)
        (beginning-of-line)
      (goto-char (point-max)))
     (push-mark)
     (if (re-search-backward str (point-min) t)
        (beginning-of-line)
      (goto-char (point-min)))
     (kill-region (region-beginning) (region-end)))
   )

登録して使えるようにするには、Emacs 内で、(global-set-key ...) の ) の後ろで C-x C-e とし(関数をアクセスキーに結びつける)、 最後の行の ) の後ろで C-x C-e とします(関数の登録)。

|サイトポリシー|プロフィール|地図|お問合せ|
2007- (C) Nishihiroshima.com RSS