首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

你能在Emacs Lisp宏中创建交互式功能吗?

在Emacs Lisp宏中创建交互式功能是可能的。Emacs Lisp是Emacs文本编辑器的内置编程语言,它提供了强大的编程能力,可以用于自定义Emacs的行为和功能。

要在Emacs Lisp宏中创建交互式功能,可以使用Emacs Lisp中的interactive关键字。interactive关键字用于定义宏的交互式参数,它允许用户在运行宏时输入参数。例如,下面是一个简单的Emacs Lisp宏,它将当前缓冲区的内容复制到另一个缓冲区中:

代码语言:lisp
复制
(defmacro copy-buffer ()
  "Copy the current buffer to a new buffer."
  (interactive)
  (let ((new-buffer (generate-new-buffer "*new-buffer*")))
    (copy-to-buffer new-buffer (point-min) (point-max))
    (switch-to-buffer new-buffer)))

在这个宏中,interactive关键字用于指定宏可以交互式地运行,而不需要任何参数。当用户运行这个宏时,Emacs会提示用户输入参数,然后将当前缓冲区的内容复制到一个新的缓冲区中。

除了interactive关键字之外,Emacs Lisp还提供了其他的交互式函数和命令,例如read-from-minibufferread-string,可以用于获取用户输入的参数。这些函数和命令可以与Emacs Lisp宏结合使用,以创建更加复杂的交互式功能。

总之,在Emacs Lisp宏中创建交互式功能是可能的,可以使用interactive关键字和其他的交互式函数和命令来实现。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

一名Clojurian的Emacs配置

所以胸臆之中涌动一股浩然之气,决心学起emacs lisp,把emacs的配置从头来过。 从『头』开始 init.el文件位于~/.emacs.d目录之下,如果没有,自行创建一份即可。..."http://melpa.org/packages/")的点号(dot)表示法也比较奇怪,其实这是lisp的Dotted pair表示法,用法和普通的列表类似,但因为是pair的缘故,可以使用(...(add-to-list 'load-path (expand-file-name "lisp" user-emacs-directory)) 看似,接下来就可以在每个独立的模块文件编写各种功能的配置...初次看到compile time,心中难免会有疑问:lisp不是动态语言,怎么还需要编译?这种时候,我们就要求助于elisp的文档了。...当你正在编译文件的时候,包就会原地展开,然后被eval-when-compile加载进内存并被编译成字节码,供后续解析器执行。

2.7K20

excel编程 c语言,(巨集)

一个 C 可以定义一段语法的替换,然而一个 Lisp却可以控制一节代码的计算。 获得了控制代码的执行顺序(见惰性计算和非限制函数)的能力,使得新创建的语法结构与语言内建的语法结构不可区分。...例如,可以对Microsoft Excel编程从扩展样式表或文本文件读取数据并创建 Great Plains .mac 文件,这一文件被用于将特定的数据导入 Great Plains....== 键盘 == 键盘和编辑器分别在图形用户界面和编辑器中被交互式地使用。使用它们可以用简短的击键代替冗长的命令序列,并为重复性任务提供了一个简单的自动化形式,但2009年已经有所改变。...Emacs 最初被设计为编辑语言 TECO 的集,后被移植为 Lisp 的一种方言 Emacs Lisp。Vim也允许用户录制和播放简单的键盘。...其它的包括语言的项目,如OpenOffice.org,故意从其语言中排除了一些功能(如:自动执行)以避免破坏程序。然而,这一特性在很多事务受到欢迎。

1.6K20

Clojure 开发那些事

其实也好理解,Lisp 语言诞生这么久了,为什么一直那么小众?原因就在于 Lisp 语言过于强大,不必也不可能像 Java 那么普及。能要求每个人都能为 CTO ?...“操作系统”,对以括号著称的 Lisp 语言有天然的支持,括号匹配主要是 Paredit mode,可以方便的把括号作为一个整体操作,不过像 Cursive 这种插件也集成了 Paredit 的主要功能...可以可以参考我的配置.emacs.d。...Emacs + Cider 的组合相比 Intellj + Cursive 最大的优势就是对的支持,Cider 提供了对展开的快捷键,但在 Cursive 我没找到,不过也是比较高级的功能,初学者应用用不到...nrepl Clojure 的 REPL 可以连接到远程服务器上的进程,直接对进程的函数或变量进行修改,这是非常便利的,对于很多运行时的错误可以采用这种方式解决,Emacs 与 Intellj 里面都提供了连接远程

1.6K20

死磕python(1)

写程序也讲究一个感觉,需要一个字母一个字母地把代码自己敲进去,在敲代码的过程,初学者经常会敲错代码:拼写不对,大小写不对,混用中英文标点,混用空格和Tab键,所以,需要仔细地检查、对照,才能以最快的速度掌握如何写程序...Vim 不需要花费太多的学习时间,一旦需要一个无缝的编程体验,那么就会把 Vim 集成到你的工作流。...Eclipse with Pydev 允许开发者创建有用和交互式的 Web 应用。...Emacs GNU Emacs 是可扩展,自定义的文本编辑器,甚至是更多的功能Emacs 的核心是 Emacs Lisp 解析器,但是支持文本编辑。...; ③、可打开双窗口,在分窗口中又可打开多个子窗口,允许快捷切换全屏显示模式(F11),支持鼠标滚轮改变文档显示比例,等等; ④、Notepad++下载提供数个特色东东,如 邻行互换位置、功能

44831

Emacs 折腾记

我工作倒并没有用得到 Lisp 的地方,但是最近眼前晃过的一些书,比如《计算机程序的构造和解释》、《码农》杂志第 13 期,都对这门古老的语言推崇备至,还有垠神也撰文《Lisp 已死,Lisp 万岁!...这么个东西,试了一下发现这货还真是强大,常用的编辑模式、快捷键、命令,甚至和正则表达式等等操作都模拟得很好,跟在 gVim 里感觉一模一样,平移编辑习惯的坡度一下没了。...在 ~/.emacs 文件里加上: (require 'evil) (evil-mode t) 这样就能在大部分地方(除了 eshell 等外)默认进入 Evil 模式使用 Vim 的编辑习惯了...Common Lisp 开发环境 学习 Common Lisp 是使用 Emacs 最主要的任务,配好了文本编辑,当然得先把 Common Lisp 开发环境配置好了。...添加 Edit with Emacs 到系统右键菜单。 将以下内容复制之后粘贴到一个 .reg 文件里,运行即可(将 exe 路径换为自己的)。

1.8K10

Clojure与LispClojure与Lisp

自2000年起,LISP共享者合力支援的自由开源社区逐渐形成,致力于LISP后续发展。 当前最新潮的编程语言,只是实现了他在1958年的设想而已。 这怎么可能呢?计算机技术的发展,不是日新月异?...在读取期运行代码,使得用户可以重新调整(reprogram)Lisp的语法; 在编译期运行代码,则是Lisp的工作基础; 在运行期编译代码,使得Lisp可以在Emacs这样的程序,充当扩展语言(extension...思想8和思想9,意味着可以写出一种能够自己编程的程序。这可能听起来很怪异,但是对于Lisp语言却是再普通不过。最常用的做法就是使用。 术语""在Lisp语言中,与其他语言中的意思不一样。...Lisp无所不包,它既可能是某样表达式的缩略形式,也可能是一种新语言的编译器。如果你想真正地理解Lisp语言,或者想拓宽的编程视野,那么必须学习。...如果创造了一种新语言,其中有car、cdr、cons、quote、cond、atom、eq这样的功能,还有一种把函数写成列表的表示方法,那么在它们的基础上,完全可以推导出Lisp语言的所有其他部分。

1.9K30

30岁文转码:我用了三年时间从哲学家变成知名软件项目核心开发

想到他在没有任何技术背景的情况下接触 EmacsLisp 并刚刚开始贡献,这简直是疯了。为干杯,Prot!...有高质量的文档,面向 GNU Emacs 的优秀程序,大量的博客和教程等等,当然还有与不同的人的互动,总能从中学到新的东西。”...从这个角度来看,Emacs 相当于是 Lisp 机,可以用来执行任何类型的程序。这里的“程序”可以指代一切,包括 Org 或者 Magit 这样的大功能、也包括精简文本编辑和操作等小应用。...记录一组以 Dired 为起点的操作(「键盘」),跳转至特定文件,执行某些变更、返回文件管理器,再在下一个文件重复这个过程。 在以上各种用例,用户完全不需要学习任何新知识。...例如,键盘等各类功能在哪里都能直接用。更重要的是,这些功能既能单独起效、也可以协同工作。 因此,Emacs 得以将各种界面连通起来,而且完全不会因为上下文切换而引起任何冲突。

36130

Emacs 折腾记

我工作倒并没有用得到 Lisp 的地方,但是最近眼前晃过的一些书,比如《计算机程序的构造和解释》、《码农》杂志第 13 期,都对这门古老的语言推崇备至,历数现代 Lisp 方言的先进性,再者我也一直有学习一门函数式编程语言的想法...在 ~/.emacs 文件里加上: 这样就能在大部分地方(除了 eshell 等外)默认进入 Evil 模式使用 Vim 的编辑习惯了。...Common Lisp 开发环境 学习 Common Lisp 是使用 Emacs 最主要的任务,配好了文本编辑,当然得先把 Common Lisp 开发环境配置好了。...在 ~/.emacs 文件里添加: 这样自动补全之类的就没有问题了。 然后在如何运行当前 py 文件这件事上遇到些问题。在 Vim 我一直是用 :!...在 ~/.emacs 文件添加 这个 3 表示在距离屏幕上下边缘还有 3 行的时候再移动光标即自动滚屏,方便随时能看到当前编辑行的上下文,可以根据自己的使用习惯调整。

1.3K20

操作系统Emacs是如何沦落为一代编辑器的?

开始之前,先让我们知道今天的Emacs是长怎样的? ? 不不,这是它的新Logo,我的意思是它的用途。 什么是Emacs? Emacs是一种功能超强的文本处理程序,或者文本编辑器。...基础部分是使用C语言编写的,其他部分是用Emacs Lisp编写的。深层次的话,C语言构成了emacs的底层,包括Emacs Lisp的解释器。...而Emacs Lisp则是负责了Emacs Lisp的建筑物上层,也就是包括我们平时用的扩展、界面等。...人们不喜欢GNU/Linux操作系统作为日常用的系统是有原因的(PS:女生通常不会嫌穷,嫌穷多半是因为丑,不好意思打击)。 剩下的我们都知道了,Linus领先了GNU基金会二十多年统一了江湖。...我原以为他们是混入了微内核与内核的争论。 ? 就好比是二十几年前,Linus和Tanenbaum那场著名的争论: ? 不要生气! ? 又或者是这样改了二十几的需求? ?

2K80

前端开发工具最喜欢哪一个?

工欲善于其事,必先利其器,下面是一些常用的web前端的开发工具,哪个是最喜欢 的?或是有哪些下面还没有列出来?...TextMate TextMate是Mac下的著名的文本编辑器软件,与BBedit一起并称苹果机上的emacs和vim。尤其适合程序员使用,可以定制许多贴心使用的功能。 ?...Emacs Emacs即Editor MACroS(编辑器),是一种强大的文本编辑器。...Emacs使用了Emacs Lisp这种有着极强扩展性的编程语言(它的核心是一个Emacs Lisp解释器),并实现了文本编辑支持等的扩展。 ?...EditPlus 一款由韩国 Sangil Kim (ES-Computing)出品的小巧但是功能强大的可处理文本、HTML和程序语言的Windows编辑器,甚至可以通过设置用户工具将其作为C,Java

1.3K10

Emacs Lisp

LISP 编程语族已经演变出许多种方言,现代最著名的通用编程语种是 Common Lisp 和 Scheme , 以上解释来自 WIKI Emacs LispLisp 的一个分支 Emacs Lisp...,一种直译式的脚本语言,为LISP的方言之一,GNU Emacs与XEmacs文字编辑器都使用这个编程语言来扩展它们的功能,它的直译器是以C语言来实作的,它受到Maclisp的影响很大,但是跟Common...;; ;; ;; 如何切换Emacs的工作模式 ;; Emacs有各种各样功能各异的模式,工作模式的含义其实就是Emacs对当前的文本编辑工作 ;; 更加的敏感,比如高亮和缩进,并且支持一些特殊的命令...;; 为了实验本教程lisp命令,我们要让Emacs工作在lisp-interaction-mode工作模式下, ;; 这个模式可以让我们在缓冲区中和Emacs进行互动,并且直接执行Lisp命令,得到结果...Emacs安装了这个hello函数,这个函数就成为了Emacs的一部分,知道退出Emacs或者改变hello的定义 ;; 从下面开始,我们将不再提醒读者使用C-x C-e来定义函数和执行ELisp

2.3K40

又要头秃?2020年七大AI编程语言大盘点

Lisp ? 用来创建一个有着N维输入和M个输出单元的单层感知器的Lisp代码 Lisp是List Processing的简称,它是仅次于Fortran的第二古老的编程语言。...Lisp被称为人工智能的创始之父之一,由约翰·麦卡锡(John McCarthy)于1958年创建Lisp是一种语言,它能让做到别人告诉不可能做到的事情。...Lisp如下的一些特性,使其成为机器学习人工智能项目的最佳选择之一: 快速原型创建 动态对象创建 垃圾回收 灵活性 随着其他与之竞争的编程语言的重大改进,Lisp特有的一些特性也应用到其他语言中。...Julia Julia是一种高性能、通用的动态编程语言,适合创建几乎任何应用程序,尤其非常适合数据分析和计算科学。能够与Julia一起工作的各种工具包括: 流行的编辑器,如Vim和Emacs。...Julia源代码的目录结构 Julia提供的下列特性,使其在人工智能编程、机器学习、统计和数据建模成为一个不可或缺的选项: 动态类型系统 内置的包管理器 能够进行并行和分布式计算 和元编程能力 支持多个调度

1.7K20

Emacs Lisp2

,其中灰色的一行叫做状态行,;; 在其中会发现 *scratch* 的字样,这表示当前的缓冲区(buffer)的名字。...;; 缓冲区也叫做工作区,在Emacs打开一个文件,实际只是在Emacs构造该文件的一个副本,放到缓冲区,;; 在Emacs对该文件的编辑也是针对该副本的编辑,唯有保存改动时,Emacs才会把缓冲区的内容在复制到原文件中去...;;;; ;; 如何切换Emacs的工作模式 ;; Emacs有各种各样功能各异的模式,工作模式的含义其实就是Emacs对当前的文本编辑工作;; 更加的敏感,比如高亮和缩进,并且支持一些特殊的命令。...;; 为了实验本教程lisp命令,我们要让Emacs工作在lisp-interaction-mode工作模式下,;; 这个模式可以让我们在缓冲区中和Emacs进行互动,并且直接执行Lisp命令,得到结果...Emacs安装了这个hello函数,这个函数就成为了Emacs的一部分,知道退出Emacs或者改变hello的定义;; 从下面开始,我们将不再提醒读者使用C-x C-e来定义函数和执行ELisp指令

97240

最好的Python开发编辑器都在这里

Vim 不需要花费太多的学习时间,一旦需要一个无缝的编程体验,那么就会把 Vim 集成到你的工作流。...Eclipse with Pydev 允许开发者创建有用和交互式的 Web 应用。...Sublime 有自己的包管理器,开发者可以使用TA来安装组件,插件和额外的样式,所有这些都能提升的编码体验。 4、Emacs ?...GNU Emacs 是可扩展,自定义的文本编辑器,甚至是更多的功能Emacs 的核心是 Emacs Lisp 解析器,但是支持文本编辑。如果已经使用过 Vim,可以尝试一下 Emacs。...PyCharm用于一般IDE具备的功能,比如, 调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制……另外,PyCharm还提供了一些很好的功能用于Django开发,同时支持

82630

高薪AI工程师都在用什么编程语言?2020 年七大 AI 编程语言大盘点

Lisp 用来创建一个有着N维输入和M个输出单元的单层感知器的Lisp代码 Lisp是List Processing的简称,它是仅次于Fortran的第二古老的编程语言。...Lisp被称为人工智能的创始之父之一,由约翰·麦卡锡(John McCarthy)于1958年创建Lisp是一种语言,它能让做到别人告诉不可能做到的事情。...Lisp如下的一些特性,使其成为机器学习人工智能项目的最佳选择之一: 快速原型创建 动态对象创建 垃圾回收 灵活性 随着其他与之竞争的编程语言的重大改进,Lisp特有的一些特性也应用到其他语言中。...Julia Julia是一种高性能、通用的动态编程语言,适合创建几乎任何应用程序,尤其非常适合数据分析和计算科学。能够与Julia一起工作的各种工具包括: 流行的编辑器,如Vim和Emacs。...Julia源代码的目录结构 Julia提供的下列特性,使其在人工智能编程、机器学习、统计和数据建模成为一个不可或缺的选项: 动态类型系统 内置的包管理器 能够进行并行和分布式计算 和元编程能力 支持多个调度

1.8K20

Go每日一库之152:gomacro(终端运行go代码)

Gomacro 就是这样一个针对 Go 语言的一个 REPL 工具,它可以被用来: 一个独立的可执行文件,具有交互式 Go REPL、行编辑和代码补全功能:只需在命令行运行 gomacro,然后输入...一个试验的 Go 泛型工具 Go 源码 debug 工具 一个交互式工具,如果使用已编译的 Go 与科学库(物理学、生物信息学、统计学......)...,可以从 gomacro REPL 导入相同的库(在 Linux 和 Mac OS X 上立即生效,在其他平台上需要重新启动),交互式地调用它们,检查结果,将它们反馈给其他函数/库,所有这些都在一个会话完成...只需几行代码即可将 Eval() 和脚本功能添加到你的 Go 程序: package main import ( "fmt" "reflect" "github.com...Go 代码生成工具:gomacro 最初是作为向 Go 添加类似 Lisp的实验开始的,它们对于简化代码生成非常有用。

36940
领券