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

编写lisp emacs密钥绑定并且无法指定<delete>字符

编写Lisp Emacs密钥绑定并且无法指定<delete>字符,可以通过以下步骤实现:

  1. 打开Emacs编辑器,并进入Lisp交互模式。可以通过在Emacs中按下Ctrl + x,然后按下Ctrl + e来进入Lisp交互模式。
  2. 在Lisp交互模式下,使用(global-set-key)函数来绑定密钥。该函数用于将一个按键绑定到一个Lisp函数上。
  3. 为了绑定密钥并执行特定的操作,需要先定义一个Lisp函数。可以使用(defun)函数来定义一个函数。例如,我们可以定义一个名为my-delete-function的函数来执行删除操作。
代码语言:lisp
复制

(defun my-delete-function ()

代码语言:txt
复制
 (interactive)
代码语言:txt
复制
 (delete-char 1))
代码语言:txt
复制

上述代码定义了一个函数my-delete-function,该函数使用(delete-char 1)来删除一个字符。

  1. 绑定密钥到刚刚定义的函数。使用(global-set-key)函数将一个按键绑定到my-delete-function函数上。在本例中,我们将绑定<delete>键到my-delete-function函数。
代码语言:lisp
复制

(global-set-key (kbd "<delete>") 'my-delete-function)

代码语言:txt
复制

上述代码将<delete>键绑定到my-delete-function函数。

  1. 保存并应用更改。可以使用(save-buffer)函数保存更改,并使用(eval-buffer)函数应用更改。
代码语言:lisp
复制

(save-buffer)

(eval-buffer)

代码语言:txt
复制

现在,当你按下<delete>键时,它将执行你定义的my-delete-function函数,从而实现删除一个字符的操作。

关于Lisp、Emacs以及密钥绑定的更多信息,你可以参考以下链接:

  • Lisp:Lisp是一种编程语言,具有强大的符号处理能力和函数式编程特性。了解更多关于Lisp的信息,请参考Lisp - 维基百科
  • Emacs:Emacs是一款功能强大的文本编辑器,具有高度可定制性和可扩展性。了解更多关于Emacs的信息,请参考Emacs - 维基百科
  • 密钥绑定:密钥绑定是将按键与特定操作或函数关联起来的过程。了解更多关于密钥绑定的信息,请参考Emacs 密钥绑定

请注意,以上答案中没有提及具体的腾讯云产品和链接地址,因为这个问题与云计算领域的专业知识和腾讯云产品没有直接关联。如果你有其他与云计算相关的问题,我将很乐意为你提供更多信息和帮助。

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

相关·内容

用了VS Code、IDEA等十几款编辑器后,我总结出优秀编辑器的特质

字符:如果单词模式无法跳转到特殊的运算符或字符(因为无法识别为单词),则可以使用此模式跳转到当前缓冲区(或所有打开的缓冲区)中的任何字符。...宏和寄存器:我可以指定单个按键将内容粘贴到不同的寄存器(如剪贴板)中。...宏可以通过指定按键来实现更强大的编辑控制,q关键字是触发键(例如qa会将之后的按键动作注册到a宏上),然后使用@a重播该宏即可。...你可以使用 Lisp 编写 / 配置脚本,这真是太好了!Lisp 是一种老派的精英,它已经存在很长时间,并且仍然给人新潮的印象。我很喜欢这一点。...atom 具有用于键绑定的 echo 模式,用于主题和语法高亮显示的默认值也很棒,并且是市面上最友好的编辑器之一。

1.8K10
  • 使用 RustC 开发 Emacs 插件

    }) 需要注意的是,上面的宏使用了 Statement Expression,不是 C 语言的标准,是 GNU99 的扩展,但由于十分有用,大多数编译器都支持了这种语法(可通过 -std=gnu99 指定...使用方式如下: emacs_value ret = lisp_funcall(env, "1+", lisp_integer(env, 1)); lisp_funcall(env, "message...ret); 热加载 在开发过程中,最重要的是热加载,不能每次重启服务来让新代码生效,但是这里通过 module-load 加载的动态模块,是无法卸载的,只能重启 Emacs 解决,这不是很友好,可以通过一种变通的方式来实现..., name)) } 相比 C 代码,这里的代码简洁不少,通过 #[defun] 将 say_hello 函数导出到 ELisp 中,并且函数名自动加上了前缀 greeting ,并提供了相应 feature...: Tree-sitter bindings for Emacs Lisp

    85520

    一名Clojurian的Emacs配置

    这个过程一般会充满修改然后重启的重复性机械劳作,偶尔会遭遇无论怎么修改就是不生效、甚至遍寻google也一无所获的挫折,但是我就是无法厌倦它。...这就不得不提起Clojure这门lisp方言,出于对lisp和函数式编程的痴迷,我选择了基于JVM的Clojure作为自己的偏好语言,而emacs天生为lisp而生。...另外,为了更好地在emacs编写Clojure,还需要cider-mode和clojure-mode的支持,这时候就不得不编辑init.el文件,本着KISS (keep it simple, stupid...(add-to-list 'load-path (expand-file-name "lisp" user-emacs-directory)) 看似,接下来就可以在每个独立的模块文件中编写各种功能的配置...幸运的是,有人已经很好地解决了这部分问题,use-package就是非常好用的包,它将包的配置和包的定义聚合到了一块,并且保证包一定会安装在你的系统当中。

    2.8K20

    如何在CLI上管理密码

    该密码工具实际上是一个shell脚本编写的前端,其中调用了几个其它工具(如gpg,pwgen,git,xsel)来使用OpenGPG管理用户的密码信息。...该密码工具相当灵活,并且使用起来及其简单。你可以将每个密码信息存储到一个OpenGPG保护的普通文本文件,并且将不同的密码文件分组多个类目中。.../site-lisp/pass/password-store.el /usr/local/Cellar/pass/1.7.1/share/fish/vendor_completions.d/pass.fish...作为密钥生成部分,你将要为你的密钥创建一个加密口令,这个口令实际上是你访问存储在本地密码仓库中的任何密码信息时的主密码。成功创建密钥对后,创建的密钥对会存储在~/.gnupg目录中。...你可以指定密码的长度,或者生成带或不带符号的密码。

    2K110

    编辑器的自制

    毕竟,讨论 Emacs 和 Vim 哪一个更好,已经不能满足我的需求。程序员的乐趣应该在于如此去写一个 Emcas,便实现一个 Vim —— 毕竟 Emacs 操作系统太复杂了。 1....于是乎,我模仿 + 复制 Iota 项目的一部分代码,形成了一份最小可工作的代码,以了解命令行编辑器如何运作的整体原理: 字符移动 对于终端编程来说,并不存在组件可以使用,所以我们所要做的事情是:在特定的位置显示特定的字符...同样的,这个功能也是由底层的 Termbox 提供了支持,我们只需要创建行为与快捷键的绑定即可。 状态栏 + 命令模式。有了上面的基础之后,这个也不会遇到什么困难。 语法高亮。...并且诸如于 IDEA 的索引模式,它应该也会在后台运行,而不占用 UI 进程,影响用户体验。如此一来,我们所面临的卡顿问题,会进一步得到缓解。 不限 UI。...负责实现用户与视图的交互(如按键、鼠标事件等),并对模型进行更新(采用 Lisp 作为支撑) 至于插件部分则是由 Lisp 脚本来实现,至于是插件好还是脚本好就是另外一个问题了。

    78930

    Python的10大集成开发环境和代码编辑器(指南)

    虽然我们无法决定哪一款最适合于你和你的项目,但是我们会阐明每一款的优缺点,帮助您作出最明智的决定。...终身免费且兼容任何平台(以某种形式),GNU Emacs使用强大的Lisp编程语言进行定制,并为Python开发提供各种定制脚本。 ?...优点:了解了 Emacs,使用过 Emacs,你便会爱上 EmacsLisp作为第二语言,你清楚它给你的力量可以让你为所欲为。...缺点:定制化意味着向多种多样的脚本文件中编写(或复制粘贴)Lisp,如果没有他人提供,那么你必须去学习Lisp并且搞懂它是如何运行的。...开箱即用,PyCharm直接支持Python开发环境,打开一个新的文件然后就可以开始编写代码。你也可以在PyCharm中直接运行和调试Python程序,并且它支持源码管理和项目。 ?

    1.7K90

    Emacs 29.1 版本发布了

    sqlite-mode-open-file 可以直接以 sqlite-mode 打开 sqlite 数据库文件,并且可以直接浏览、修改表数据!笔者计划后续会单独写一篇文章来介绍。...delete-process: 变成了交互式命令 restart-emacs: 与 save-buffers-kill-emacs 类似,只是在关闭 emacs 后,会重新用同样的启动参数再次启动 scratch-buffer...true 时,使用 scp 来复制文件 python-shell-dedicated: 是否为每个项目、buffer 开启特定的 Python shell,默认为 nil 新快捷键 M-SPC 现在绑定...Emacs 可以更方便的用于脚本中。 #!/usr/bin/emacs -x 会跳过 init.el 文件,直接执行文件后面的内容,最后一个表达式为脚本的退出码。...可以通过 --init-directory 设置 user-emacs-directory 变量 .eld 结尾的文件默认用 lisp-data-mode 打开。

    54220

    Python的10大集成开发环境和代码编辑器(指南)

    虽然我们无法决定哪一款最适合于你和你的项目,但是我们会阐明每一款的优缺点,帮助您作出最明智的决定。...终身免费且兼容任何平台(以某种形式),GNU Emacs使用强大的Lisp编程语言进行定制,并为Python开发提供各种定制脚本。 ?...优点:了解了 Emacs,使用过 Emacs,你便会爱上 EmacsLisp作为第二语言,你清楚它给你的力量可以让你为所欲为。...缺点:定制化意味着向多种多样的脚本文件中编写(或复制粘贴)Lisp,如果没有他人提供,那么你必须去学习Lisp并且搞懂它是如何运行的。...开箱即用,PyCharm直接支持Python开发环境,打开一个新的文件然后就可以开始编写代码。你也可以在PyCharm中直接运行和调试Python程序,并且它支持源码管理和项目。 ?

    1.2K60

    Linux 下 12 个最佳 Notepad++ 替代品

    Notepadd++ 是一款完全免费的源代码编辑器,旨在替代 Windows 上的记事本 – 基于 Scintilla 用 C++ 编写,并实现 Win32 API 和 STL,以确保程序尺寸小且执行速度快...其功能包括语法突出显示、通过单次击键 (M-3) 注释/取消注释行、可绑定功能、轻松地从合理的段落中剪切尾随空格等。...其功能包括对多种文件格式和语言的语法突出显示支持、使用 Emacs Lisp 代码或 GUI 进行自定义、完整的 Unicode 支持、完整的内置文档和教程等。...GNOME GNOME 文本编辑器是 GNOME 桌面系统的主要编写工具,它为各种编程语言(包括 Python、JavaScript、C 和 C++)提供了内置主题和语法突出显示的出色编辑用户体验。...其功能包括代码折叠、可通过 XML 文件扩展的语法突出显示、自动字符编码检测等。 要在 Linux 上安装 Kate,您可以使用以下适合您的特定 Linux 发行版的命令。

    1.7K20

    对 Mastering Emacs作者 Mickey Petersen 的采访

    当时我真的不知道 Emacs 能做什么,不能做什么。我主要使用箭头键、一些键绑定和菜单栏进行导航。我选择了 XEmacs,因为它在 20 世纪初通常领先于 GNU Emacs。...它落后了,并且有自己的做事方式,与 GNU Emacs 不完全兼容。当我认为 Emacs 22 出来时,我最终转向了 GNU Emacs。...或 Python,一小撮那里有 LaTeX——并且主要将 Emacs 用作连接他们工作的不同领域的工具,其他非 Emacs 用户无法轻易模仿。...Emacs 是一个坩埚。 对于老用户还是新手,Emacs 可以改进哪些方面? 嗯,这是个好问题。 Emacs 是为已经了解 Emacs 的人编写和设计的。...Emacs 选择用非常高的技能上限(异常强大的键绑定、可编程性等)替换低技能上限(以及贫乏的键绑定和功能),因为如果你坚持不懈,那么你最终会学到足够多的知识,从而从编辑器中受益这不会妨碍其用户。

    73310

    可爱的 Python:Python 中的函数编程

    这不包括在命令语言中最普遍的模式,即指定第一个,然后将另一个值指定给同一个变量来跟踪程序状态。 FP 不鼓励或根本不允许出现语句,取而代之是使用表达式求值(换句话说,即函数加上自变量)。...正是因为这样,我们可以将对象与名称 "pr" 和 "namenum" 绑定,使用的方法和将数字 23 或字符串 "spam" 与这些名称绑定的方法完全相同。...map() 对指定列表中每个对应的项执行传递的函数,并返回结果列表。...另外,因为循环主体(按设计)无法更改任何变量值,所以 很难用在一般的测试中,例如 while myvar==7(那么,将在 while_block() 中修改全部内容)。...我发现通过语言 Haskell 比 Lisp/Scheme 更容易掌握函数编程(即使如果只在 Emacs 中,后者可能使用得更广泛)。

    91120

    静态作用域和动态作用域

    如果一个变量的名称不在当前作用域内,则这样的变量称为 unbound variable,例如有一个函数 (lambda () (+ a a)),a 就是一个 unbound variable,在当前作用域内我们无法找到这个变量...仅有少数语言使用动态作用域规则,例如 Emacs Lisp,其函数内的 unbound variables 的解析是根据函数被调用时的环境来决定的。...所以,对于函数的实现者来说他需要担心函数被使用的位置会出现重名造成的问题,对于函数的调用者来说他也要担心这个问题,结果就是在 Emacs Lisp 这样的语言里,函数的实现者往往会使用一个非常长的名字来命名变量...; auto operator=(const DynamicScope&) = delete; static decltype(auto) instanceOf(const std::string...::DynamicScope::instanceOf("x"); x = "123"; 我们可以考虑使用一点 C++ 的宏,来逼近我们一开始想实现的效果,用 # 能将 token 转为字符

    2.1K10

    我用 Rust 重写了博客,谈谈我眼中的 Rust.

    并且因为 Rust 所倡导的安全的概念,所以它的编译器会做尽可能多的检查,争取在编译期就发现问 题。此外 Rust 的编译信息还非常友好和详细。...系语 言的宏,使用过 Lisp 方言的同学自然会明白宏的强大,《黑客与画家》的作者 Paul Gram 也是宏的忠实粉丝。...很多优质的类库还是欠缺,很多 现有的类库还不成熟,例如我现在使用的 Rocket 框架还只是 0.3, Diesel 还只是 0.16.0 ,很多我需要的功能都没有,比如 Diesel 这个 ORM 还没无法进行...其他类库的版本如图: 缺乏 IDE 现在 Rust 没有比较成熟的 IDE, 现在我使用 Emacs 编写 Rust, 配合 Racer 这个 Rust 代码补全工具,但是 Racer 只是能补全标准类库的代码...人数应该不是什么大的原因,像 Emacs 的用户那么少,Emacs 的 中 文社区 一样很繁荣,这个算是我的一个希冀吧 小结 其实学习 Rust 还是很有收获的, 不是说,如果这种语言没有改变你对编程的看法

    4K20

    R语言的好与坏丨讲座中字视频丨附讲座PDF

    另一个例子是EmacsEmacs有其编程语言名叫Emacs Lisp。是Lisp里一个非常老的分支语言。我不认为很多人喜欢这个语言,这是个完全的编程语言。...你也许能用Emacs Lisp编写web服务器,尽管我不认为有人这么做过。其实我不该这么说。 很多人都认为Emacs Lisp是,为了获取Emacs的功能而付出的代价。R语言在这点上有点相似。...从事生物统计学工作的人会涉及很多文档处理,因此很多人使用Perl,把DNA序列当作字符串来处理。我能想象这应该导致了,Perl在这个排名中的受欢迎度。...那么如果R语言使人窒息并且语法棘手,那么为什么人们喜欢用呢? 谷歌上有人说过"R语言最大的优点是,它是由统计学家编写的,但这也是R语言最大的缺点"。 所以要理解R语言,你需要对统计学家有些了解。...我很确定有人用R语言编写web服务器,就像有人会用Emacs Lisp编写web服务器一样。

    1.8K90

    QT(三).电子相册(2)

    int argc, char** argv) { QApplication app(argc, argv); //构建一个 QApplication 对象 app,这个操作整个运行期间有且只能有一次,并且要在所有其它组件生成之前构建...public QDialog,public Ui_Pic //继承自QDialog 和 Ui_Pic, Ui_Pic 是从哪里来的呢,这个后面交代 { Q_OBJECT //这个宏不可或缺,否则这个类无法使用...自动切换图片 connect(systime,SIGNAL(timeout()),this,SLOT(showTime())); //更新系统时间 } Pic::~Pic() //析构 { delete...time; delete systime; } void Pic::fMan() //手动 { gbAuto->setEnabled(false); //禁用自动组 gbMan-...currentDateTime(); //申请一个QDateTime对象保存当前时间 QString str = now.toString("yyyy-MM-dd hh:mm:ss"); //对当前时间以指定格式转化为字符

    1.2K30
    领券