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是光标当前位点计数。包括空格。
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))
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.....