荔园在线
荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀
[回到开始]
[上一篇][下一篇]
发信人: georgehill (清风浮云 人生), 信区: Linux
标 题: Emacs 速成(fwd)
发信站: BBS 荔园晨风站 (Wed Oct 4 12:30:13 2000), 站内信件
【 以下文字转载自 georgehill 的信箱 】
【 原文由 georgehill.bbs@smth.org 所发表 】
发信人: fkbch (心魔@笨愚斋), 信区: Linux
标 题: Emacs 速成(fwd)
发信站: BBS 水木清华站 (Thu Apr 22 19:22:47 1999)
这篇文章, 希望能有更多人喜欢 emacs.
------------------------------------
Emacs 启动:
直接打emacs, 如果有X-windows就会开视窗. 如果不想用X 的版本,
就用 emacs -nw (No windows)起动.
符号说明
C-X 表示按住CTRL键, 然後按X, 再把CTRL, X一起放开.
M-X META META
在没有META键的电脑上, M-X 等於先按 ESC键, 接著按 X键.
Sun上面META键就是菱形的那个键.
有些系统META键就是ALT键.(或者某一边的ALT键)
C-X或 M-X的X没有大小写分别.
Emacs按键命令基本上是一串C-<chr>和M-<chr>组成的.
超过两个以上的按键命令, Emacs会在萤幕最下面一行显示你按过什麽.
这一行叫作mini buffer
结束Emacs按 C-x C-c
取消执行 C-g
有些Emacs命令会跑很久, 可以用C-g中断之. 按错键也可以按C-g取消.
上下移动 C-p 向上 (previous line) C-n向下(next line)
左右移动 C-f 向右 (forward) C-b 向左 (backward)
其实Emacs内部没有行的概念, 把一篇文章放在一个大buffer
里面,
(defun NAME (ARGS-LIST)
"注解" ; optional
(interactive) ; optional
BODY)
定义一个叫NAME的函式. BODY 是一堆expression.
注解是用来给C-h f显示的.
(interactive) 表示这个函示会和user/buffer作用.
(interactive "B") 表示执行此函式先问user一个buffer的名字,
然後当作参数传给它. (如, 当user透过key-binding
或者 M-x 呼叫此函式时)
(interactive "BAppend to buffer: \nr")
问user buffer name时, 提示号 Append to buffer:
此function有两个引数,第一个是B, 就是buffer
第二个是r, region
用\n 隔开.
(interactive "p") 用C-u 设的prefix 把它当作参数传给我.
预设值==4. C-u C-f 向右移四个字
一些lisp 函式:
(list 1 2 3 4) 产生 '(1 2 3 4)
(car '(1 2 3 4) 1
(cdr '(1 2 3 4) '(2 3 4)
(cons 1 '(2 3 4)) '(1 2 3 4)
(cons 1 2) (1 . 2)
(cons 0 (cons 1 (cons 2 nil)))
等於 '(0 1 2)
{list 是用 pair 串起来的,
用C 表示:
pair: {Object *first, Object *second};
*(pair[i].first) == i;
pair[i].second == pair[i+1]; }
(cons '(1 2) '(3 4)) '((1 2) 3 4)
(setq a 1)
(1+ a) ; a+1
(+ 2 a) ; a+2
(* 1 2 3 4)
(current-buffer) ; 传回目前buffer的资料物件
(switch-to-buffer (other-buffer))
(set-buffer)
(buffer-size)
(setq current-pos (point))
(point-min)
(point-max)
(message "Hello") ; 在minibuffer显示Hello
(if (test)
(then-part)
(else-part))
(cond ((test1) BODY1)
((test2) BODY2)
(t OTHER-WISE)
(let ((var1 value) ; local variable
var2 ; no value
(var3 value)
...)
BODY ...)
(lambda (ARG-LIST) ...) 同 defun, 但是没有名字 (anonymous).
可以存到变数去:
(setq hello (lambda () (message "Hello,World")))
(funcall hello)
(goto-char (point-max))
(defvar VAR VALUE "*注解") 如果VAR 不存在才定义. 有注解可以用
C-h v 看. 注解打*号表是使用者可以直接改/ 这个变数本来就是
给使用者设定用的.
可以用 M-x edit-options 来线上设定 (emacs结束就没有了,
不过edit-options可以给你所有可修改的变数的列表,你可以
放到.emacs档内.
(directory-files "./" t "\\..*")
return a list of files under directory X
(load "xxxx.el") 同#include <stdio.h>
给使用者设定用的.
可以用 M-x edit-options 来线上设定 (emacs结束就没有了,
不过edit-options可以给你所有可修改的变数的列表,你可以
放到.emacs档内.
(directory-files "./" t "\\..*")
return a list of files under directory X
(load "xxxx.el") 同#include <stdio.h>
(setq load-path (cons "~/emacs" load-path)) ; load的search path.
--
看着她笑,他忽然觉得她好寂寞好寂寞。
她静静的看了他半天,才柔柔慢慢的:「 你好像已经找到了。」
※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 202.112.103.235]
--
※ 转载:·BBS 荔园晨风站 bbs.szu.edu.cn·[FROM: 192.168.1.115]
[回到开始]
[上一篇][下一篇]
荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店