`

初步学习elisp

    博客分类:
  • Lisp
阅读更多
;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")
分享到:
评论

相关推荐

    linux-EmacsLispKoans通过测试驱动的开发学习elisp

    Emacs Lisp Koans --通过测试驱动的开发学习elisp

    elisp manual

    Emacs Lisp(简称Elisp)是Emacs编辑器的核心编程语言,它允许用户自定义编辑器功能、编写脚本和扩展。...通过深入学习和实践,你可以创建出个性化的Emacs配置,提高工作效率,甚至开发出复杂的编辑器插件。

    elisp-koans:Emacs Lisp Koans-通过测试驱动的开发学习elisp

    elisp-koans:Emacs Lisp Koans-通过测试驱动的开发学习elisp

    elisp入门手册-emacs lisp入门手册

    但是对于很多人来说 elisp 学习是一个痛苦的历程,至少我是有这样一段经历。本文按我习惯的学习方式写的,水平有限,再加上表达能力比较差,词不达意在所难免。坚持写下来只是有一点希望,我想尽可能丰富一些 emacs ...

    elisp:学习Elisp

    **Elisp:深入理解与应用** Elisp,全称Emacs Lisp...通过学习Elisp,不仅可以提升Emacs的使用效率,更能体验到编程与文本编辑的完美结合。从基础语法到高级特性,从简单配置到复杂插件,Elisp的世界等待着你去探索。

    Elisp 入门教程(Elisp中文手册)

    叶文彬 (wenbinye@gmail.com)写的,这就是水木清华中happierbee写的教程的pdf版。内容浅显易懂,适用于初学者。

    elisp函数手册chm版

    emacs所用的解释语言elisp的chm格式的函数手册,非常实用。

    Elisp入门(叶文彬).pdf

    Emacs,著名的集成开发环境和文本编辑器。Emacs被公认为是最受专业程序员喜爱的代码编辑器之一。 本文档为Emacs所使用的脚本语言(Elisp)的参考手册,使用Elisp可以扩展Emacs的功能。

    Elisp入门(中文版)

    本资源是专为初学者设计的中文教程,旨在帮助那些在学习Elisp过程中感到困扰的人找到一条更为清晰的学习路径。 Elisp是一种动态类型的语言,其语法与传统的Lisp非常相似,注重表达性和简洁性。在Emacs中,你可以用...

    elisp-bug-hunter, 在elisp文件中,查找错误.zip

    elisp-bug-hunter, 在elisp文件中,查找错误 Bug 猎人 自动调试和分割初始化(. emacs ) 文件 !Bug 是一个Emacs库,它查找elisp配置文件( 通常 init.el 或者 .emacs ) 中错误或者意外行为的来源。 用法示例自动错误...

    elisp 入门指南(叶文彬)

    叶文彬编写的《elisp入门指南》是一本适合Emacs新手学习的基础教程,旨在帮助读者掌握elisp(Emacs Lisp)的基础知识和基本操作。elisp是Emacs Lisp的简称,是一种专门为Emacs文本编辑器设计的 Lisp 方言。本书内容...

    elisp document

    根据提供的文件内容,我们可以确定这是一份关于Emacs编辑器中使用的Lisp方言——Emacs Lisp(ELisp)的参考资料。以下是根据文件中的标题、描述和部分内容提炼出的ELisp相关知识点。 1. Emacs Lisp概述: ELisp是...

    elisp-manual-21-2.8.tar.gz

    《Elisp手册21-2.8:Python依赖包解析》 在信息技术领域,编程语言间的交互和协作日益频繁,其中Elisp(Emacs Lisp)和Python是两种广泛应用的编程语言。Elisp作为Emacs编辑器的核心扩展语言,提供了一种强大的方式...

    elisp.pdf

    GNU Emacs Lisp Reference Manual.pdf

    elisp-demos:演示Emacs Lisp API

    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文本编辑器自定义的教程.zip

    Emacs-Elisp-Programming, 有关编程Elisp和Emacs文本编辑器自定义的教程 Emacs - 编程和自定义概述Emacs不需要任何演示文稿。 Emacs提供了一款软件,它提供了可以编程文本编辑器。电子邮件阅读器。文本浏览器。图片 ...

    elisp-manual-ja:Emacs Lisp Reference Manual 日本语版

    总之,《Emacs Lisp参考手册 日本语版》是学习和研究Elisp的一个起点,虽然有些过时,但仍然包含了许多基础和进阶的概念。结合其他现代资源,用户可以逐步构建全面的Emacs Lisp知识体系,从而更好地利用Emacs的强大...

    python-elisp:适用于Python的Emacs Lisp解析器

    &gt;&gt; &gt; numbers = elisp . loads ( "(1 2 3)" ) &gt;&gt; &gt; numbers . car 1 &gt;&gt; &gt; numbers . cdr . cdr . car 3 &gt;&gt; &gt; numbers . cdr . cdr . cdr is elisp . NIL True 类型映射 以下类型受支持,并映射到相应的Python类型。 ...

    rust-elisp:在Rust中使用mini lisp类似方案

    构成箱指示elisp lisp本体sp図形描画用GUI wasmlisp Web Assembly用UI weblispルチスレッド検证用プログラム学习锈学习プログラム(hidekuno / tree-viewerとのパフォーマンス比较検证)动かし方动作条件dockerが动...

    xah-elisp-mode

    在Emacs社区,有许多资源和讨论论坛可以学习Elisp编程和相关模式的使用技巧,如EmacsWiki和Emacs.StackExchange。 总之,`xah-elisp-mode` 是Emacs用户编辑Elisp代码的强大工具,通过其丰富的特性,提升了开发者的...

Global site tag (gtag.js) - Google Analytics