水木-EMACS 速成

    技术2022-05-11  50

    水木-EMACS 速成

    清华水木FreeBSD 讨论区 pure 〖 返回〗〖转发〗

    【 以下文字转载自 FreeBSD 讨论区 】 【 原文由 pure 所发表 】 这篇文章, 希望能有更多人喜欢 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: r")               问user buffer name时, 提示号 Append to buffer:                                 此function有两个引数,第一个是B, 就是buffer                                    第二个是r, region                                                             用 隔开.                                                        (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.                   -- iamafan@linuxaid.com.cn

    责任编辑:知识库管理员(2001-01-03 16:57)

    最新回复(0)