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

如何定义Emacs Lisp函数以使用在shell中执行的特定命令生成shell缓冲区?

Emacs Lisp是一种方便的编程语言,用于扩展和定制Emacs编辑器。通过定义Emacs Lisp函数,我们可以在shell中执行特定命令并生成shell缓冲区。

要定义一个Emacs Lisp函数以使用在shell中执行的特定命令生成shell缓冲区,可以按照以下步骤进行:

  1. 打开Emacs编辑器,并进入Lisp交互模式(通常通过按下"Alt + x",然后输入"ielm"并按下回车键)。
  2. 在Lisp交互模式中,使用"defun"关键字定义一个函数,指定函数名和参数列表。例如:
代码语言:lisp
复制
(defun generate-shell-buffer (command)
  ;; 函数体
  )
  1. 在函数体中,使用"shell-command"函数执行特定的shell命令,并将结果输出到shell缓冲区。例如:
代码语言:lisp
复制
(defun generate-shell-buffer (command)
  (shell-command command "*shell-buffer*"))
  1. 保存函数定义到一个文件中,例如"generate-shell-buffer.el"。
  2. 在Emacs中加载该文件,可以通过"Alt + x",然后输入"load-file",并指定文件路径。
  3. 现在,你可以在Emacs中调用该函数,并传递一个特定的shell命令作为参数。例如:
代码语言:lisp
复制
(generate-shell-buffer "ls -l")

上述函数的定义中,我们使用了"shell-command"函数来执行shell命令,并将结果输出到名为"shell-buffer"的shell缓冲区。你可以根据需要修改函数体,以适应不同的命令和缓冲区名称。

腾讯云提供了云服务器(CVM)产品,可以满足云计算和服务器运维的需求。你可以通过以下链接了解更多关于腾讯云云服务器的信息:

腾讯云云服务器

请注意,本答案没有提及其他云计算品牌商,如有需要,请自行搜索相关信息。

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

相关·内容

Emacs Lisp2

;; 缓冲区也叫做工作区,在Emacs中打开一个文件,实际只是在Emacs中构造该文件的一个副本,放到缓冲区中,;; 在Emacs中对该文件的编辑也是针对该副本的编辑,唯有保存改动时,Emacs才会把缓冲区中的内容在复制到原文件中去...;; 为了实验本教程中的lisp命令,我们要让Emacs工作在lisp-interaction-mode工作模式下,;; 这个模式可以让我们在缓冲区中和Emacs进行互动,并且直接执行Lisp命令,得到结果...; ^ 把光标放在这里,并且键入Ctrl-j (之后将简写成C-j);; C-j是一个快捷命令,在后台,该快捷键将调用求值命令,并且把计算的结果;; 插入到当前的缓冲区中;; 如果不希望Emacs在缓冲区中插入计算结果...));; ^ 把光标停在这里,再键入C-x C-e 执行defun命令来定义函数;; 通过defun命令,你已经在Emacs中安装了这个hello函数,这个函数就成为了Emacs的一部分,知道你退出Emacs...: 先按下Ctrl-x 再按下o;; 如果要执行一系列的指令,可以使用流程函数progn,把函数命令连接起来.;; 下面的命令,先打开一个新的buffer,再执行hello函数,该hello函数的参数是

98740
  • Emacs 折腾记

    我工作中倒并没有用得到 Lisp 的地方,但是最近眼前晃过的一些书,比如《计算机程序的构造和解释》、《码农》杂志第 13 期,都对这门古老的语言推崇备至,历数现代 Lisp 方言的先进性,再者我也一直有学习一门函数式编程语言的想法...然后在如何运行当前 py 文件这件事上遇到些问题。在 Vim 中我一直是用 :!...start python % 使用 Emacs 的运行外部命令的方法 M-!...start python test.py 文件名、Buffer 和命令的渐进提示 编程环境下需要自动补全,在非编程环境下,比如切换 Buffer,打开文件,输入函数命令等,同样需要。...varible ALTERNATE_EDITOR) 平滑滚动 Emacs 默认的滚动方式和 Vim 不一样,是光标移到屏幕上或者下边缘时突然跳动半屏,比较不符合我目光跟着光标走的习惯,这个可以使用一个插件来解决

    1.3K20

    Emacs Lisp

    ;; 缓冲区也叫做工作区,在Emacs中打开一个文件,实际只是在Emacs中构造该文件的一个副本,放到缓冲区中, ;; 在Emacs中对该文件的编辑也是针对该副本的编辑,唯有保存改动时,Emacs才会把缓冲区中的内容在复制到原文件中去...;; 为了实验本教程中的lisp命令,我们要让Emacs工作在lisp-interaction-mode工作模式下, ;; 这个模式可以让我们在缓冲区中和Emacs进行互动,并且直接执行Lisp命令,得到结果...; 如果不希望Emacs在缓冲区中插入计算结果,我们还可以在表达式的末尾使用C-x C-e组合键 ;; C-x C-e的意思是: 先按下Ctrl-x 再按下Ctrl-e ;; 这个命令会让Emacs在辅助缓冲区..." my-name)) ;; ^ 把光标停在这里,再键入C-x C-e 执行defun命令来定义函数 ;; 通过defun命令,你已经在Emacs中安装了这个hello函数,这个函数就成为了Emacs的一部分...o的意思是: 先按下Ctrl-x 再按下o ;; 如果要执行一系列的指令,可以使用流程函数progn,把函数命令连接起来. ;; 下面的命令,先打开一个新的buffer,再执行hello函数,该hello

    2.3K40

    Emacs Lisp

    ;; 缓冲区也叫做工作区,在Emacs中打开一个文件,实际只是在Emacs中构造该文件的一个副本,放到缓冲区中, ;; 在Emacs中对该文件的编辑也是针对该副本的编辑,唯有保存改动时,Emacs才会把缓冲区中的内容在复制到原文件中去...;; 为了实验本教程中的lisp命令,我们要让Emacs工作在lisp-interaction-mode工作模式下, ;; 这个模式可以让我们在缓冲区中和Emacs进行互动,并且直接执行Lisp命令,得到结果...; 如果不希望Emacs在缓冲区中插入计算结果,我们还可以在表达式的末尾使用C-x C-e组合键 ;; C-x C-e的意思是: 先按下Ctrl-x 再按下Ctrl-e ;; 这个命令会让Emacs在辅助缓冲区..." my-name)) ;; ^ 把光标停在这里,再键入C-x C-e 执行defun命令来定义函数 ;; 通过defun命令,你已经在Emacs中安装了这个hello函数,这个函数就成为了Emacs的一部分...o的意思是: 先按下Ctrl-x 再按下o ;; 如果要执行一系列的指令,可以使用流程函数progn,把函数命令连接起来. ;; 下面的命令,先打开一个新的buffer,再执行hello函数,该hello

    2.2K30

    Linux学习笔记(四)

    set # 会显示某个特定进程设置的所有环境变量(包括全局、局部、用户定义局部变量) somekey=somevalue # 定义用户局部变量。...shell执行过的命令的所在位置 BASH_COMMAND shell正在执行的命令或马上就执行的命令 BASH_ENV 设置了的话,每个bash脚本会在运行前先尝试运行该变量定义的启动文件 BASH_EXECUTION_STRING...COMPREPLY 含有由shell函数生成的可能填充代码的数组变量 COPROC 占用未命名的协进程的I/O文件描述符的数组变量 DIRSTACK 含有目录栈当前内容的数组变量 EMACS 设置为’...t’ 时,表明emacs shell缓冲区正在工作,而行编辑功能被禁止 ENV 如果设置了该环境变量,在bash shell脚本运行之前会先执行已定义的启动文件(仅用于当bash shell以IPOSIX...(对其的赋值可作为随机数生成器的种子) READLINE_LINE 当使用bind -x命令时,存储Readline缓冲区的内容 READLINE_POINT 当使用bind -x命 令时,表示Readine

    1.1K10

    BashShell变量

    局部环境变量:局部环境变量只对创建它们的 Shell 和子 Shell 可见。 本地环境变量:本地环境变量只能在定义它们的函数内部以及子函数中可见。...可以使用 set 命令显示某个特定进程设置的所有环境变量,包括系统局部变量、系统全局变量和用户自定义环境变量。 set 【注】set 命令会将变量按照字母顺序进行排序,且只显示值非空的环境变量。...除了输出所有的环境变量外,使用不带参数的 set 命令还会输出当前环境所有的函数。 2.4 本地环境变量 本地环境变量只能在函数内部被定义和使用,它们只能在定义它们的函数内部以及子函数中可见。 3....含有目录栈当前内容的数组变量 EMACS 设置为 t 时,表明 emacs Shell 缓冲区正在工作,而行编辑功能被禁止 ENV 如果设置了该环境变量,在 Bash Shell 脚本运行之前会先执行已定义的启动文件...7.2 详解 declare 命令如果用在函数中,声明的变量只在函数内有效,等同于 local 命令。

    2.4K30

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

    此外,Emacs 还是自文档化的,意味着它能理解变量的值何时发生变化、并在对应的帮助缓冲区中通知用户。同理,Emacs 也能反映出各类函数的新值与当前状况的关联。...Dired 可以逐个标记条目,也可以使用正则表达式和其他高级命令。 记录一组以 Dired 为起点的操作(「键盘宏」),跳转至特定文件,执行某些变更、返回文件管理器,再在下一个文件中重复这个过程。...前者体现在代码库遵循的许可上,后者则体现在代码库自身的内容——即整个使用感受,以及代码库如何与特定环境中的其他程序或工作流程相匹配。我觉得软件自由这个议题特别有意思,值得深入发掘。...例如,我的 Elisp 学习之路就是从编写小型函数封装开始,用于调整某些默认操作的执行方式。我想补充“move down a line”(下移一行)命令的功能,让它能支持下移特定多行。...Emacs 则可以实时评估代码,而且开放完整的源代码及相关说明文档。正是有了这样的开放性,我才能了解如何定义函数,再通过反复试验编写出人生中第一条自定义 Elisp。

    38130

    excel宏编程 c语言,宏(巨集)

    一个 C 宏可以定义一段语法的替换,然而一个 Lisp 的宏却可以控制一节代码的计算。 获得了控制代码的执行顺序(见惰性计算和非限制函数)的能力,使得新创建的语法结构与语言内建的语法结构不可区分。...例如,一种 Lisp 方言有 cond 而没有 if ,就可以使用宏由前者定义后者。Lisp 语法的去部主要扩展,比如面向对象的 CLOS 系统,可以由宏来定义。...== 宏编程 == 在用一种不熟悉的宏语言进行宏编程时,可以这样做,首先记录下用户想要宏完成什么,然后打开宏文件并尝试理解命令结构如何工作。也可以修改命令以调整宏。...需要针对每一个新的数据集合生成新的 .mac 文件。 == 宏应用 == 应用程序也可以使用一种和宏类似机理的系统来允许用户将一系列(一般是最常使用到的操作)自定义为一个步骤。...但由上面的定义,它完全不是一种宏语言。然而,它的功能已经从中发展并最终替代了用户应用程序的宏思想,所以它被广泛地错误地称为是一种宏语言。 VBA可以访问许多操作系统函数并支持文档打开时自动执行宏。

    1.6K20

    10 个让你进入 Emacs 世界的技巧

    例如,如果你不知道如何在 Emacs 中只用键盘快捷键复制一个单词,编辑菜单的复制、剪切和粘贴选择提供了最轻松的路径。没有理由因为选择了 Emacs 而惩罚自己。...在 Emacs 中,“框架”就是现代计算机所说的“窗口”。 缓冲区(Buffer):“缓冲区”是 Emacs 的一个通信通道。...它可以作为 Emacs 进程的命令行,也可以作为 shell,或者只是一个文件的内容。 窗口(Window):“窗口”是你进入一个缓冲区的视角。 迷你缓冲区(Mini-buffer)。...探索新功能 Emacs 所做的大部分工作都是一个 elisp 函数,它可以从菜单选择和键盘快捷键调用,或者在某些情况下从特定事件中调用。...所有的函数都可以从迷你缓冲区(Emacs 框架底部的命令行)执行。

    82220

    使用 RustC 开发 Emacs 插件

    Emacs 在 25 版本后,支持了动态模块(dynamic modules),这为 Emacs 插件的开发打开了新的一扇大门,任何能够编译生成符合 Emacs ABI 要求的语言都可以使用。...本文就来介绍,如何使用 C/Rust 两种语言来进行 Emacs 动态模块的开发。本文所有代码可在 emacs-dynamic-module 这里找到。...为了简化数据类型在 C 与 ELisp 之间的转化,Emacs 提供了一系列函数,比如: Elisp–>C 更多类型转化可参考官方文档: •Conversion Between Lisp and Module...Values 这里着重介绍下如何将 C 里面的函数导出到 ELisp 中: emacs_value c_add(emacs_env *env, ptrdiff_t nargs, emacs_value..., name)) } 相比 C 代码,这里的代码简洁不少,通过 #[defun] 将 say_hello 函数导出到 ELisp 中,并且函数名自动加上了前缀 greeting ,并提供了相应 feature

    86820

    Emacs 29快到了!我们能期待什么

    可以使用 new 函数来完成package-vc-install,并且可以使用package-vc-update或更新以这种方式安装的包package-vc-update-all。...在我的例子中,当缓冲区的内容更新时,我有时会看到一些幻影文本(尽管我仍然需要纯 GTK,因为我在 Xorg 和 Wayland 之间交替)。...如果您喜欢编写脚本,尤其是编写 Lisp 脚本,Emacs 现在支持该选项-x以执行用 EmacsLisp 编写的脚本。当使用 as shebang 执行这样的脚本时#!.../usr/bin/emacs -x,Emacs 不会读取它的 init 文件(如 with -Q),而是会立即执行 Elisp 代码并将最后一个值返回给脚本的调用者(很可能是您调用脚本的 shell从)...自定义用户目录 现在可以更轻松地启动自定义 Emacs 配置文件,而无需使用chemacs2等工具并添加 flag --init-directory。

    2.6K20

    无插件Vim编程技巧

    如果你要改变当前浏览的目录,或是查看当前浏览的目录,你可以使用和shell一样的命令: :cd – 改变当前目录 :pwd  – 查看当前目录 缓冲区 其实,你用:E 浏览打开的文件都没有被关闭...如果你用过vim的cscope插件,你就知道cscope可以用来查找相当的代码,但cscope需要事先生成一个数据库,对一些简单的查找,其实,我们用vim的grep命令就可以了,不需要专门为之生成数据库...然后,你就会看到vim到shell里去执行并找到了相关的文件,按回车返回vim后,别忘了用 【:cw 】把grep的输出取回来,于是我们就有下面的样子: ?...读取Shell命令相关 【:r!date】 插入日期 上面这个命令,:r 是:read的缩写,!是表明要运行一个shell命令,意思是我要把shell命令的输出读到vim里来。...vim的终级插件 CentOS下:yum erase emacs Ubuntu下:apt-get remove emacs 对了,以前本站也有一篇小短文《如何在vim中得到你最喜爱的IDE特性》你也可以看看

    1.4K20

    Emacs 28 新特性介绍

    这篇文章就来介绍 Emacs 28 中,笔者个人觉得比较实用的功能,完整列表可参考 NEWS[3] ( M-x view-emacs-news ),最后会介绍如何在 macOS 上编译。...与 flush-lines 命令类似,但是匹配的行会作为整体加到 kill ring 中 • 新配置 kill-transform-function 字符在添加到 kill ring 中的预处理函数 •...• remove-hook 改成 interactive 命令 • 新增命令 shortdoc-display-group 之前节目[7]中多次提到过的功能,按函数类型归类,展示其用法 shortdoc...• 新增命令 memory-report • 新增命令 submit-emacs-patch • 在没有设置 LANG 时,默认采用 UTF8 编码,之前是 ISO-8859-1 特定 mode 变更...适用于 lisp 表达式,但不是可执行的程序,比如 .dir-locals.el • transient.el[9],就是 magit 中菜单导航使用的库,我的配置[10]中大量使用。

    97730

    攻击本地主机漏洞(中)

    在本例中,BSIZE变量用于定义“buf0”和“buf1”的长度编译和执行程序时,您将看到初始值、溢出前和溢出后缓冲区内容打印到终端。...子例程是较大程序的一部分,包括一组执行任务的指令。可以使用库函数,而不是将恶意负载写入堆栈,恶意程序可以使用其条目位置覆盖返回地址。...接下来,继续并退出gdb,然后让我们生成随机模式,并将其用作易受攻击程序的参数。在命令行中执行以下命令: 您应该会收到预期的分段错误(SIGSEGV)。...您可以使用在线提供的表手动执行此操作,网址为https://www.asciitable.com,也可以使用Python和编解码器模块对十六进制的ASCII值进行解码: 当我们将十六进制转换为ASCII...我们从步骤12生成的shell代码已经在Python负载生成脚本中,因此无需再添加任何shell代码。

    1.4K20

    project.el 使用说明

    project 相关命令绑定在 C-x p 。 根目录 在日常编程中,Emacs 的很多包都依赖一个功能:查找当前项目的根目录,比如 lsp-mode、citre 等。...在 project.el 中,默认只支持 VC[3] 中的 Git,即 project-try-vc,但可以自定义找根目录的方式,配置如下: (defun my/project-try-local (dir...作为额外的补充,可以通过创建一个名为 .project 的文件,用作根目录的标识,与 .projectile 类似 该函数返回一个 cons,car 为项目类型,这里定义为 local,cdr 为根目录...查找文件 查找文件是非常高频的操作,可以使用 Rust 编写的 fd[4] 来代替 find,速度更快。...project-query-replace-regexp,在项目中执行正则替换 • project-shell-command,执行 shell 命令 • project-eshell,在根目录打开

    42110

    IC工程师的通用技能:文本处理

    命令行交互,Tcl,约束文件,输出报告,运行状态信息。 2. 高效的文本处理是IC工程师的必备技能之一。 要用好一个编辑器。 比如Vim,Emacs二选一。...比如代码自动生成,设计实现流程脚本,报告自动汇总,用户提交自动回归测试。 高级阶段是拼脑洞。 如何用更少的代码完成更多的事?如何减少重复编写代码的次数?如何用更好的流程重用之前的代码? 4....文本的编码格式。 Windows和Linux中换行的问题。比如由于换行导致shell脚本无法执行。 非ASCII字符引入的编码问题。比如中文乱码问题。 文本的结构化。...可以使用以逗号(,)分隔符的csv文件。 可以使用XML,JSON,YML等强制标签/格式的文本。 可以使用doxygen,perldoc类似的方式自动生成代码文档。...如果可能,使用可执行的(executable)文本。比如shell脚本,makefile,可编译的源码。 文本的可视化。 使用代码可视化工具。

    93221
    领券