emacs学习之elisp(二)求值实践

 

在表达式中()告诉lisp解释器当作函数处理,没有括号则当作变量。
我很高兴写这个系列笔记用的正是emacs编辑器。使得我在记笔记时时刻实践我的想法。
(buffer-name)"temp.biji" C-u C-x C-e 使得我可以把变量求值立刻显示到光标位置。
 
下边列举一些常用变量
(current-buffer)当前buffer,就像我说oio是指我这个人。(buffer-name)才是oio。。。。不要晕了哦~
相关函数
   other-buffer switch-to-buffer
(switch-to-buffer (other-buffer))求值后,切换到了我的另一个buffer
人与电脑的区别一:人有眼睛,电脑木有~
(set-buffer)是为电脑设计的,它把电脑工作切换到另一个buffer,但是没有显示给我们看。
(buffer-size) 396是当前缓冲区大小
(point) 416是光标当前位点计数。包括空格。

Posted by OlDman 2010年9月22日 23:27


emacs学习之elisp(一)列表处理

 

lisp
列表
   一个列表的样子like this:'(rose violet daisy buttercup);
在lisp中,数据和程序都以相同的方式表示;so,他们都是由空格分隔的,由括号括起来的单词
,数字或者其他列表的列表。
 
lisp原子
   想想物理世界的原子吧,列表中的空格无关紧要。
 
(+ 2 2)我刚才在这个括号后面C-x C-e了,然后minibuffer中出现4;
看了lisp如何成功执行,来看看失败的提示:如果函数找不到定义:Symbol's functiong definition is void: your symbol.
 
(fill-column)C-xe后值为70;啊~
下边介绍一系列函数:
(concat "abc" "def") 将两个字符串连接起来;
(substring "The quick brown fox jumped"  16 19) 将返回fox;
;;参量可以是符号也可是列表
(message "This message appears int the echo area")  打印消息;
(message "The name of this buffer is: %s. "(buffer-name))
将打印The name of this buffer is : *Info*
set let setq 给一个变量赋值
(set 'flower '(rose violet daisy buttercup))如果对flower求值,将显示花名的列表,如果
对'flower求值,将显示flower本身。
上面一句话相当于:(setq flower '(rose violet daisy buttercup))

Posted by OlDman 2010年9月22日 19:08


emacs学习笔记

很高兴用emacs学习系列开始我的is-programer之旅。

先记录一下oio对于emacs复制黏贴的一组设置。

记录在oio-cc-cv.el中。在.emacs里load--

;; -*- 自定义复制黏贴 -*-

    (defun copy-line (&optional arg)
     "Save current line into Kill-Ring without mark the line"
     (interactive "P")
     (let ((beg (line-beginning-position)) 
    	(end (line-end-position arg)))
     (copy-region-as-kill beg end))
    )


    (defun copy-word (&optional arg)
     "Copy words at point"
     (interactive "P")
     (let ((beg (progn (if (looking-back "[a-zA-Z0-9]" 1) (backward-word 1)) (point))) 
    	(end (progn (forward-word arg) (point))))
     (copy-region-as-kill beg end))
    )


    (defun copy-paragraph (&optional arg)
     "Copy paragraphes at point"
     (interactive "P")
     (let ((beg (progn (backward-paragraph 1) (point))) 
    	(end (progn (forward-paragraph arg) (point))))
     (copy-region-as-kill beg end))
    )

    (global-set-key (kbd "M-l") 'copy-line)
    (global-set-key (kbd "M-w") 'copy-word)
    (global-set-key (kbd "M-p") 'copy-paragraph)

    ;;codes ends here.....

Posted by OlDman 2010年9月21日 23:16