Hatena::ブログ(Diary)

すにぺっと

2011-03-26

eLispメモ-関数定義

| 11:13 | eLispメモ-関数定義 - すにぺっと を含むブックマーク

lispでの関数定義。

(defun 関数名:1 (引数:2)
  "説明文字列...":3
  (interactive 引数情報) ; :4
  関数本体 :5)

(defun add(x y)
"引数xとyを足した値を返す"
(interactive "nx= \nny=")
(message "result=%d" (+ x y ))
)

1:関数定義が付けられるシンボル名

2:関数に渡される引数リスト。一つも引数をつけない場合は空リスト () にする

3:関数説明のためのコメント

4:省略可能。この関数インタラクティブにする

5:関数定義本体


M-x addとして、

数値を入力するとそれをたした結果が表示される。

また、C-h f 関数

でその関数のヘルプがみれる。

eLispメモ-バッファ

| 10:26 | eLispメモ-バッファ - すにぺっと を含むブックマーク

バッファに対する操作

;バッファ名
(buffer-name)
;ファイル名
;*scratch*でやったらnil
(buffer-file-name)

;バッファそのものを返す
(current-buffer)
;今のバッファを除き、最も最近選択したバッファを返す
(other-buffer) 

;C-x bと同じ動きをする
(switch-to-buffer (other-buffer))

;現在のバッファの大きさ
(buffer-size)
;バッファのはじまりからポイントまでの文字数を返す
(point)

eLispメモ-基礎の基礎

| 09:57 | eLispメモ-基礎の基礎 - すにぺっと を含むブックマーク

ちょっとだけふれる機会があったので。


・シンボルにリストをセット

(set 'fluits '(apple orange banana))

fluits

fluitsでC-x,C-e→(apple orange banana)

set を利用する時は引数に 必ず引用符を付ける必要がある。

(それ自身を評価する場合をのぞく)


・setqをつかって変数にlistをセット

(setq macos '(lion tiger leopard))
macos

1番目の式を評価したあとmacosを評価するとリスト内容表示


・カウンタ

;初期化
(setq counter 0)

;インクリメント
(setq counter (+ counter 1)) 

;値を確認
counter 

;if文
(if 真偽テスト
    テストが真である場合に実行する動作)

(if (> 3 2) ; if-part
    (message "3 is greater than 2!"))  

;if-else文
(if 真偽テスト
    テストが真の場合に実行する動作)
  テストが偽の場合に実行する動作)
 	
(if (> 2 3) 
    (message "3 is greater than 2!")  
  (message "2 is not greater than 3!"))


;whileループ
(setq fluits '(apple orange banana))

(defun print-list (list)
  "show list."
  (while list
    (print (car list))
    (setq list (cdr list))))

(print-list fluits)


参考

http://www.math.s.chiba-u.ac.jp/~matsu/lisp/

2011-03-14

emacsでgrep-find

| 10:38 | emacsでgrep-find - すにぺっと を含むブックマーク

いまさらながらemacsでサブディレクトリ含めてgrepする方法を調べたので。

M-x grep-find

でミニバッファ

find . -type f -exec grep -nH -e  <キーワード>{} /dev/null \;

カレントディレクトリから再帰的なgrepができる。


また、

find . -type f ! -path '*/.svn/*' -exec grep -nH -e  <キーワード>{} /dev/null \;

とすれば、svnディレクトリを除いたgrep.


find . -type f ! -path '\.*' ! -path '*/\.*' -exec grep -nH -e  <キーワード>{} /dev/null \;

とすれば頭に.がついたディレクトリをすべて除いたgrep.