Emacs1.0版本之重要特性及用法实例(一百五十)

news2024/9/22 1:06:39

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!

新书发布:《Android系统多媒体进阶实战》🚀
优质专栏: Audio工程师进阶系列原创干货持续更新中……】🚀
优质专栏: 多媒体系统工程师系列原创干货持续更新中……】🚀
优质视频课程:AAOS车载系统+AOSP14系统攻城狮入门视频实战课 🚀

人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.

更多原创,欢迎关注:Android系统攻城狮

欢迎关注Android系统攻城狮

🍉🍉🍉文章目录🍉🍉🍉

    • 🌻1.前言
    • 🌻2.Emacs1.0介绍
    • 🌻3.代码实例
      • 🐓3.1 窗口分割(Window Splitting)
      • 🐓3.2 内置帮助系统(Help System)
      • 🐓3.3 宏录制与回放(Keyboard Macros)
      • 🐓3.4 多模式支持(Major and Minor Modes)
      • 🐓3.5 回退(Undo)
      • 🐓3.6 扩展和自定义

🌻1.前言

本篇目的:Emacs1.0版本之重要特性及用法实例

🌻2.Emacs1.0介绍

  • Emacs 1.0 于1985年发布,是 GNU Emacs 的第一个正式版本。它继承并扩展了1976年最早版本Emacs的核心思想,进一步发展成为一个功能强大、灵活且高度可定制的文本编辑器。Emacs 1.0 不仅为程序员提供了一个强大的开发环境,也为普通用户提供了广泛的文本处理功能。

  • 首先,Emacs 1.0 的最大特点之一是其基于 Lisp 的可扩展性。用户可以使用 Emacs Lisp(一种专门为 Emacs 开发的 Lisp 方言)来编写脚本和插件,从而自定义编辑器的行为。这种扩展机制使得 Emacs 不仅仅是一个编辑器,更是一个可编程的环境。用户可以根据自己的需求开发和加载新功能,形成个人化的工作流。这种设计思想使得 Emacs 可以不断进化,成为一种“用户驱动”的工具。

  • 其次,Emacs 1.0 提供了丰富的内置功能,涵盖了广泛的编辑需求。除了基本的文本编辑功能外,Emacs 1.0 还包括了支持多种编程语言的代码编辑模式、语法高亮、自动缩进和代码补全功能。这些特性使得 Emacs 1.0 成为当时程序员的理想选择,尤其是在进行大型项目开发时,Emacs 能够显著提高编码效率。

  • 此外,Emacs 1.0 继续完善了多缓冲区(buffer)管理系统,允许用户同时编辑多个文件,并在不同文件之间快速切换。缓冲区还可以用来显示命令输出、文档和帮助信息,这增强了编辑器的多任务处理能力。此外,Emacs 1.0 还引入了窗口管理功能,用户可以在一个窗口中同时查看多个缓冲区,通过分屏操作进一步提升工作效率。

  • Emacs 1.0 的另一个重要特性是其键绑定系统的灵活性。几乎所有的命令都可以通过键盘快捷键来访问,并且用户可以根据自己的使用习惯重新定义这些快捷键。这种设计大大增强了用户在编辑过程中的控制力和效率,也使得 Emacs 1.0 能够适应不同用户的工作风格。

  • 最后,Emacs 1.0 引入了帮助系统和文档功能,帮助用户快速上手并深入掌握编辑器的各种功能。这对于新用户来说尤为重要,使得 Emacs 不仅仅是一个工具,更是一个可学习和掌握的编程环境。

  • Emacs 1.0 在文本编辑器的设计和功能上实现了显著的进步。它的可扩展性、强大的内置功能、多缓冲区和窗口管理、灵活的键绑定系统,以及友好的帮助系统,使得 Emacs 1.0 成为一个极其强大的编辑器,并奠定了 Emacs 在开发者社区中的重要地位。

🌻3.代码实例

🐓3.1 窗口分割(Window Splitting)

  • 功能描述: Emacs 允许用户将编辑器窗口分割为多个子窗口,用户可以在不同窗口中同时查看和编辑多个文件或缓冲区。每个窗口都可以独立滚动和编辑。
;; 分割窗口为上下两个部分
(split-window-vertically)

;; 分割窗口为左右两个部分
(split-window-horizontally)

;; 在另一个窗口打开文件
(other-window 1)
(find-file "example.txt")
	

🐓3.2 内置帮助系统(Help System)

  • 功能描述: Emacs 1.0 引入了一个强大的内置帮助系统,允许用户随时查询命令、按键绑定和变量的文档。这极大地提高了用户学习和使用 Emacs 的效率。
;; 查看按键绑定的文档
(describe-key "C-x C-f")

;; 查看函数的文档
(describe-function 'find-file)

;; 查看变量的文档
(describe-variable 'default-directory)

🐓3.3 宏录制与回放(Keyboard Macros)

  • 功能描述: Emacs 允许用户录制一系列键盘操作并将其保存为宏,以后可以重复回放。这对于执行重复性任务非常有用,是 Emacs 强大自动化能力的一部分。
;; 开始录制宏
(start-kbd-macro nil)

;; 执行一些操作(示例)
(insert "Hello, World!")

;; 停止录制宏
(end-kbd-macro)

;; 回放宏
(call-last-kbd-macro)

🐓3.4 多模式支持(Major and Minor Modes)

  • 功能描述: Emacs 支持多种 Major Mode(主模式)和 Minor Mode(次模式),每种模式适用于不同类型的文件或编辑任务。主模式通常针对特定的文件类型,例如编程语言,而次模式则提供额外的功能,如行号显示。
;; 启用主模式,例如文本模式
(text-mode)

;; 启用次模式,例如自动换行模式
(auto-fill-mode 1)

;; 启用行号显示
(line-number-mode 1)

🐓3.5 回退(Undo)

  • 功能描述: Emacs 1.0 引入了多级回退功能,允许用户撤销多次编辑操作。这在当时是一个非常有用且先进的功能,大大提高了编辑的安全性。
;; 撤销最后一次操作
(undo)

;; 多次撤销
(repeat 3 (undo))

🐓3.6 扩展和自定义

  • 功能描述: Emacs 1.0 继承了最初版本的可扩展性,用户可以通过编写 Emacs Lisp 代码来自定义编辑器行为。这种扩展性使 Emacs 成为了一款极其灵活的工具。
;; 自定义函数示例
(defun my-greeting ()
  "显示一个问候消息."
  (interactive)
  (message "Hello from Emacs 1.0!"))

;; 绑定函数到按键
(global-set-key (kbd "C-c g") 'my-greeting)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2037265.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Java 数据结构】LinkedList介绍

LinkedList介绍 回顾ArrayList类链表链表是什么链表的分类单向无头链表模拟实现初始化与基本方法查询修改增加删除 双向无头链表模拟实现初始化与基本方法查询修改增加删除 LinkedList类LinkedList类是什么回顾List接口LinkedList使用构造方法常用方法 LinkedList的遍历ArrayLi…

Windows下编译安装PETSc

本文记录在Windows下使用MinGW-w64编译安装PETSc的流程。 0、环境 操作系统Windows 11MSYS2msys2-x86_64-20240507 1、开发环境 首先,下载并安装MSYS2,然后编辑PATH环境变量,添加mingw64相关路径:C:\msys64\mingw64\bin。 然后…

鼠标为什么要放在鼠标垫上才好用?/ 鼠标的工作原理

原创 OREO 力学科普 在数字化时代,鼠标已经成为我们与计算机交互不可或缺的工具。它不仅提高了工作效率,也丰富了我们的数字生活。鼠标总是能精准地感应到人手的移动方向和距离,从而到达人指定的位置,给我们的计算机操作过程带来…

【区块链+乡村振兴】链上云仓智慧动产监管平台 | FISCO BCOS应用案例

2021 年初 ,《中共中央国务院关于全面推进乡村振兴加快农业农村现代化的意见》将“乡村振兴”的重要性提升 到前所未有的战略高度。而随着科技与金融的深度融合,金融行业亦开始步入大数据、云计算、人工智能、区块 链的新技术发展。启动金融科技赋能乡村振兴示范工程…

企业级营销中心应用架构设计

营销中心依托大数据和数据分析应用,搭建灵活可扩展的系统架构,在客户分群、客户画像、客户标签库及模型工厂的基础上,建立营销全流程管理,包括营销活动的发起、执行、反馈和评价,助力银行实现以数据驱动的精准营销模式。此外,还可提供丰富的场景营销解决方案,协助银行打…

java3d-1_4_0_01-windows-i586.exe

下载 Java 3D API 安装 C:\Program Files\Java\Java3D\1.4.0_01\bin C:\Java\jre6 C:\Java\jdk1.6.0_45 C:\Windows 记录下这 4 个目录,去检查下 4 哥目录下文件多了什么 检查目录① C:\Program Files\Java\Java3D\1.4.0_01\bin 检查目录② C:\Java\jre6 C:…

LVS服务的搭建之NAT模式、DR模式的搭建实战

# LVS的概述 1/什么是LVS linux virtural server的简称,也就是linxu虚拟机服务器,使用lvs可以达到的技术目标是:通过linux达到负载均衡技术和linux操作系统实现一个高性能高可用的linux服务器集群,他具有良好的可靠性&#xff0…

Deepin-Bash中判断是Wayland还是X11显示

Bash中判断是Wayland还是X11显示 一、概述 一、概述 记录一下Linux显示协议的类型 echo $XDG_SESSION_TYPE如果输出是 x11,则使用的 Xorg如果输出是 wayland,则使用的 Wayland

气膜滑雪场重新定义滑雪体验的未来—轻空间

随着滑雪运动的日益普及,滑雪场的建设标准也在不断提高。气膜滑雪场作为一种创新的建筑形式,以其独特的技术优势,正在重新定义滑雪体验。与传统滑雪场相比,气膜滑雪场不仅提升了运营效率,还为滑雪者提供了更为舒适、安…

《学会 SpringBoot · 优雅停机方案》

📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数…

C语言文达学院班级管理系统-计算机毕业设计源码03499

摘 要 本文阐述了一个C语言文达学院班级管理系统的设计与实现过程。该系统充分利用ASP.NET的轻量级、灵活性和可扩展性,旨在为文达学院提供高效、便捷的班级管理系统。通过详细的需求分析、技术选型、系统设计、开发实现、测试与调试以及部署与上线等步骤&#xff0…

程序员常用的工具软件推荐(提高工作效率和代码质量)

前言 我们在日常开发过程中,通常需要借助多款开发工具来提高工作效率和代码质量。今天大姚分享一些比较实用且高效的开发工具,希望可以帮助到有需要的同学。 程序员常用的工具软件 以上工具都已收录到程序员常用的工具软件栏目中,欢迎关注…

边缘计算技术解决行业痛点,TSINGSEE智能分析网关V4技术特点与应用场景解析

一、行业背景 随着人工智能(AI)技术的飞速发展,边缘计算硬件作为其核心组成部分,正逐步成为市场的新宠。这些硬件不仅提升了数据处理和分析的效率,还极大地降低了数据传输的延迟,为各行各业的智能化转型提…

【git使用】本地文件上传到github已有仓库以及后续版本控制op(持续更新,20240810)

git使用 0.写在前面1. 本地与远程的连接1.0 本地仓库op1.1 暂存仓库op1.3 创建keygen进行SSH连接1.4 远程仓库op1.5 残留问题 reference2.更新与版本控制(后续更新) 0.写在前面 相信有一堆人到现在还没用清楚git进行项目管理,,&a…

【Python实现代码视频/视频转字符画/代码风格视频】

该程序改良自GitHub开源项目VideoCharDraw 在源程序CharDraw_thread.py 带压缩和多线程版本字符画的基础上使用Tkinter库添加了图形化的操作,使用户操作体验更方便。 什么是视频字符画? 视频转字符画是一种将视频中的每一帧图像转换为由字符组成的图…

Java设计模式-抽象工厂模式-一次性理解透

1. 抽象工厂模式简介 抽象工厂设计模式是创建型模式之一。抽象工厂模式与工厂模式几乎相似,只是它更像工厂中的工厂。 如果您熟悉Java 中的工厂设计模式,或看过上一篇我写的“java简单工厂模式”,您会注意到我们有一个工厂类。此工厂类根据…

WPF篇(18)-DataGrid数据表格控件+ComboBox下拉框控件

DataGrid数据表格控件 DataGrid是一个可以多选的数据表格控件。所以,它继承一个支持多选的父类——MultiSelector。 public abstract class MultiSelector : Selector {protected MultiSelector();public IList SelectedItems { get; }protected bool CanSelectMu…

Animetronic - hackmyvm

简介 靶机名称:Animetronic 难度:简单 靶场地址:https://hackmyvm.eu/machines/machine.php?vmAnimetronic 本地环境 虚拟机:vitual box 靶场IP(Animetronic):192.168.130.188 windows_…

Golang 为何如此之快:性能分析

Golang 是一种相对年轻但很流行的语言,IBM 和 Google 等公司都在使用这种语言。在本文中,我们将了解 Golang 的特别之处。 Golang 被认为是世界上编译速度最快的语言之一。谷歌、Uber 和 Twitch 等科技公司都喜欢使用它,并依靠它进行内部开发…