;run elisp with C-x C-e
(+ 3 4)
;print message
(message "hi")
;print variable values
(message "this number is %d" 0)
;print string
(message "this string is %s" "jianghao")
;any expression
(message "what this variable ? %S " (list 1 2 3 4 5))
;Arithmetic Functions
(+ 4 5) ;9
(- 9 2) ;7
(- 9 2 3) ;4
(+ 4 5 (- 4 2)) ;11
(* 3 4) ;12
(* 2 3 2) ;12
(/ 2 4) ;0
(/ 2 4.0) ;0.5
(% 3 4) ;3
(expt 2 3);8
;t = ture nil = false
;;decimal number,must have a number after dot
;check expression is integer
(integerp 3.) ;t
;check expression is float
(floatp 3.) ;nil
(floatp 3.0) ;t
;Coventing String And number
(string-to-number "22")
(number-to-string 22)
;if
;false
(if nil "Oh Is ture" "false") ; false
(if () "Ture" "False") ;False
(if (list) "ture" "false") ;false
(if '() "One" "two") ;two
;ture
(if t "that`s ture" "you see")
(if 0 "Yes" "no")
(if [] "YU" "sorry") ; [] = 0
(if "" "Y" "N")
;elisp no boolean datatype just () and nil
(and t nil) ;&
(or t nil) ;|
;comparison functions
;number comparion
(< 3 5) ;less than
(> 1 2) ;great than
(<= 2 2) ;less or equal
(>= 1 9) ;greater or equal
(= 3 3) ;equal t
(= 1 1.0) ;equal t
(/= 2 2) ; not equal nil
;string comparion
(string-equal "YOU" "YOU") ;
;equal test datatype and values equal
(equal 1 1);t
(equal 1 1.0);t datattype not match
(equal "" "");
(equal '(1 2 3) '(1 2 3));comparion list
(not (= 3 4)) ; 3 not equal 4 t
(/= 2 4) ; /= compartion number only
(not (equal 1 3)) ; General way to test inequality
;;;; Global and Local Variables setq use to set variable
;;;; declared Global Variable
(setq f 7)
(message "as %d" f)
(setq a 1 b 3 c 4)
;;(let (‹var1› ‹var2› …) ‹body›) body last expressions is returnd
(let (a b)
(setq a 3)
(setq b 4)
(+ a b)
)
;;anothor (let ((‹var1› ‹val1›) (‹var2› ‹val2›) …) ‹body›)
(let ((a 3) (b 4))
(+ a b)
)
;;;; block of Expressions
(progn (message "hi a") (message "hi b"))
(if nil
(progn ;ture
(message "that ture")
)
(progn ;false
(message "false")
)
)
;;;; while
(setq i 0)
(while (< i 4)
(print (format "Num %d" i))
(setq i (+ 1 i))
)
;;Iteration
(let ((x 32))
(while (< x 127)
(ucs-insert x)
(setq x (+ x 1))))
;;;; Defining a Function
;; (defun ‹function name› (‹param1› ‹param2› …) "‹doc string›" ‹body›)
(defun yay ()
"Insert “Yay!” at cursor position."
(interactive)
(insert "/**\n * @param\n * @return\n */"))
(defun test (args)
"Prints the argument"
(interactive "p")
(message "You args is :%d " args))
;;
(defun se(start end)
"print star and end"
(interactive "r")
(message "Region begin at : %d ,end at : %d" start end)
)
;;;; Interactive 交互的意思
;; (interactive "p") p表示 数字前缓参量
;; r 表示位点
;; b 表示一个已经存在缓冲区的名字
;; f 表示一个已经存在的文件名字
;;
(defun see(buffer)
"buffer area print"
(interactive "b")
(message "buffer name is : %s" buffer)
)
;; 字符串连接
(concat "a" "b")
分享到:
相关推荐
Emacs Lisp Koans --通过测试驱动的开发学习elisp
Emacs Lisp(简称Elisp)是Emacs编辑器的核心编程语言,它允许用户自定义编辑器功能、编写脚本和扩展。...通过深入学习和实践,你可以创建出个性化的Emacs配置,提高工作效率,甚至开发出复杂的编辑器插件。
elisp-koans:Emacs Lisp Koans-通过测试驱动的开发学习elisp
但是对于很多人来说 elisp 学习是一个痛苦的历程,至少我是有这样一段经历。本文按我习惯的学习方式写的,水平有限,再加上表达能力比较差,词不达意在所难免。坚持写下来只是有一点希望,我想尽可能丰富一些 emacs ...
**Elisp:深入理解与应用** Elisp,全称Emacs Lisp...通过学习Elisp,不仅可以提升Emacs的使用效率,更能体验到编程与文本编辑的完美结合。从基础语法到高级特性,从简单配置到复杂插件,Elisp的世界等待着你去探索。
叶文彬 (wenbinye@gmail.com)写的,这就是水木清华中happierbee写的教程的pdf版。内容浅显易懂,适用于初学者。
emacs所用的解释语言elisp的chm格式的函数手册,非常实用。
Emacs,著名的集成开发环境和文本编辑器。Emacs被公认为是最受专业程序员喜爱的代码编辑器之一。 本文档为Emacs所使用的脚本语言(Elisp)的参考手册,使用Elisp可以扩展Emacs的功能。
本资源是专为初学者设计的中文教程,旨在帮助那些在学习Elisp过程中感到困扰的人找到一条更为清晰的学习路径。 Elisp是一种动态类型的语言,其语法与传统的Lisp非常相似,注重表达性和简洁性。在Emacs中,你可以用...
elisp-bug-hunter, 在elisp文件中,查找错误 Bug 猎人 自动调试和分割初始化(. emacs ) 文件 !Bug 是一个Emacs库,它查找elisp配置文件( 通常 init.el 或者 .emacs ) 中错误或者意外行为的来源。 用法示例自动错误...
叶文彬编写的《elisp入门指南》是一本适合Emacs新手学习的基础教程,旨在帮助读者掌握elisp(Emacs Lisp)的基础知识和基本操作。elisp是Emacs Lisp的简称,是一种专门为Emacs文本编辑器设计的 Lisp 方言。本书内容...
根据提供的文件内容,我们可以确定这是一份关于Emacs编辑器中使用的Lisp方言——Emacs Lisp(ELisp)的参考资料。以下是根据文件中的标题、描述和部分内容提炼出的ELisp相关知识点。 1. Emacs Lisp概述: ELisp是...
《Elisp手册21-2.8:Python依赖包解析》 在信息技术领域,编程语言间的交互和协作日益频繁,其中Elisp(Emacs Lisp)和Python是两种广泛应用的编程语言。Elisp作为Emacs编辑器的核心扩展语言,提供了一种强大的方式...
GNU Emacs Lisp Reference Manual.pdf
Elisp API演示 在Ch f mapcar显示mapcar的Elisp演示:用法要将elisp演示注入*Help* ,例如Ch f ( Mx describe-function ),请使用( advice-add 'describe-function-1 :after # 'elisp-demos-advice-describe-...
Emacs-Elisp-Programming, 有关编程Elisp和Emacs文本编辑器自定义的教程 Emacs - 编程和自定义概述Emacs不需要任何演示文稿。 Emacs提供了一款软件,它提供了可以编程文本编辑器。电子邮件阅读器。文本浏览器。图片 ...
总之,《Emacs Lisp参考手册 日本语版》是学习和研究Elisp的一个起点,虽然有些过时,但仍然包含了许多基础和进阶的概念。结合其他现代资源,用户可以逐步构建全面的Emacs Lisp知识体系,从而更好地利用Emacs的强大...
>> > numbers = elisp . loads ( "(1 2 3)" ) >> > numbers . car 1 >> > numbers . cdr . cdr . car 3 >> > numbers . cdr . cdr . cdr is elisp . NIL True 类型映射 以下类型受支持,并映射到相应的Python类型。 ...
构成箱指示elisp lisp本体sp図形描画用GUI wasmlisp Web Assembly用UI weblispルチスレッド検证用プログラム学习锈学习プログラム(hidekuno / tree-viewerとのパフォーマンス比较検证)动かし方动作条件dockerが动...
在Emacs社区,有许多资源和讨论论坛可以学习Elisp编程和相关模式的使用技巧,如EmacsWiki和Emacs.StackExchange。 总之,`xah-elisp-mode` 是Emacs用户编辑Elisp代码的强大工具,通过其丰富的特性,提升了开发者的...