Emacs29.x版本之重要特性及用法实例(一百六十二)

2024-08-21 10:12

本文主要是介绍Emacs29.x版本之重要特性及用法实例(一百六十二),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

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

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

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

欢迎关注Android系统攻城狮

🍉🍉🍉文章目录🍉🍉🍉

    • 🌻1.前言
    • 🌻2.Emacs29.x系列介绍
    • 🌻3.代码实例
      • 🐓3.1 新的图形用户界面支持
      • 🐓3.2 改进的 eglot 支持
      • 🐓3.3 改进的 org-mode 功能
      • 🐓3.4 支持新的编程语言
      • 🐓3.5 增强的垃圾回收机制
      • 🐓3.6 新的插件管理系统
      • 🐓3.7 对大文件的更好支持

🌻1.前言

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

🌻2.Emacs29.x系列介绍

  • Emacs 29.x 系列发布于2023年,是 Emacs 社区持续改进的成果,带来了大量新特性和改进,进一步提升了其作为多功能文本编辑器和开发环境的实用性。这个版本在图形界面、多线程、编程语言支持、编辑器性能、用户体验等方面做出了显著升级,满足了现代开发者的多样化需求。

  • 首先,Emacs 29.x 在图形用户界面(GUI)方面做出了多个重要改进。最显著的是对可变宽度字体(variable-pitch fonts)的支持得到了进一步增强,尤其是在混合文本和代码的文档中,这种支持显得尤为重要。此外,Emacs 29.x 引入了对 pgtk 架构的改进,提升了在 Wayland 和其他现代显示服务器上的兼容性和性能,使得 Emacs 在更多的 Linux 桌面环境中表现出色。

  • 其次,Emacs 29.x 进一步优化了多线程和并发处理能力。通过改进多线程支持,Emacs 可以更好地处理后台任务,例如文件索引、搜索、代码分析等,而不会影响主线程的响应速度。这一优化使得在处理复杂和高负载任务时,Emacs 的稳定性和效率得到了显著提升,尤其对于需要处理大规模项目或并行任务的开发者而言,这一改进尤为有用。

  • 在编程语言支持方面,Emacs 29.x 扩展了对多种编程语言的集成和优化,尤其是对 Rust、Go 和 TypeScript 等现代编程语言的支持。Emacs 29.x 引入了更多内置的开发工具和模式,提供了更好的语法高亮、代码自动补全、错误检查等功能。这些改进使得 Emacs 成为一个更强大的开发环境,能够更好地支持现代软件开发的复杂需求。

  • 一个重要的新特性是对 Tree-sitter 的全面集成。Tree-sitter 是一个强大的语法解析库,能够为多种编程语言提供精确的语法分析和高效的高亮支持。通过将 Tree-sitter 深度集成到 Emacs 中,Emacs 29.x 提供了更精准和高效的代码编辑体验,特别是在处理大型代码库或复杂语言时,性能得到了显著提升。

  • Emacs 29.x 还加强了对编程语言服务器协议(LSP)的支持。这一增强使得 Emacs 能够与现代开发工具更好地集成,提供类似于 Visual Studio Code 等 IDE 的智能代码导航、重构和补全功能。LSP 支持的改进进一步巩固了 Emacs 作为高级编辑器的地位,使其能够在现代开发环境中继续发挥重要作用。

  • 在用户体验方面,Emacs 29.x 引入了更友好的界面改进。例如,新的tab-bar-modetab-line-mode 提供了更加灵活和直观的标签管理功能,使得用户可以更方便地在多个文件和项目之间切换。此外,Emacs 29.x 还对启动速度进行了优化,通过延迟加载和其他性能提升措施,减少了启动时间,提高了用户的使用体验。

  • 安全性方面,Emacs 29.x 继续强化对网络通信和数据处理的安全措施,包括改进对 GnuTLS 的支持和更严格的包管理系统验证机制,确保用户在使用 Emacs 处理敏感信息时能够获得更高的安全保障。

  • Emacs 29.x 是一个功能丰富且技术上更加成熟的版本。通过图形界面优化、多线程支持增强、编程语言支持扩展以及整体性能的提升,Emacs 29.x 提供了更加现代化和高效的操作体验,使得其在各种开发和编辑任务中依然保持领先地位。

🌻3.代码实例

🐓3.1 新的图形用户界面支持

  • 功能描述: Emacs 29.x 改进了对现代图形用户界面的支持,尤其是在 macOS 和 Windows 上,提供了更高效的渲染和用户体验。
;; 在 macOS 上启用原生菜单
(setq ns-use-native-fullscreen nil)
(setq ns-pop-up-frames nil)

🐓3.2 改进的 eglot 支持

  • 功能描述: Emacs 29.x 对 eglot 语言服务器协议(LSP)的支持进行了显著改进,使得与 LSP 服务器的集成更加顺畅。
;; 安装并启用 eglot
(unless (package-installed-p 'eglot)(package-refresh-contents)(package-install 'eglot))(require 'eglot)
(add-hook 'python-mode-hook 'eglot-ensure);; 配置 eglot
(setq eglot-server-programs '((python-mode . ("pylsp"))))

🐓3.3 改进的 org-mode 功能

  • 功能描述: Emacs 29.x 为 org-mode 引入了许多新特性,如增强的表格功能、更好的任务管理和图形化表示等。
;; 启用 org-mode 并配置表格功能
(require 'org);; 启用 org-mode
(add-hook 'org-mode-hook 'org-mode-setup);; 自定义 org-mode 表格功能
(setq org-table-export-default-format "orgtbl")

🐓3.4 支持新的编程语言

  • 功能描述: Emacs 29.x 增强了对多种新编程语言的支持,包括 Rust、Dart 等,使得 Emacs 成为更全面的编程环境。
;; 安装并配置 rust-mode
(unless (package-installed-p 'rust-mode)(package-refresh-contents)(package-install 'rust-mode))(require 'rust-mode)
(add-hook 'rust-mode-hook 'rust-enable-format-on-save);; 安装并配置 dart-mode
(unless (package-installed-p 'dart-mode)(package-refresh-contents)(package-install 'dart-mode))(require 'dart-mode)
(add-hook 'dart-mode-hook 'dart-enable-analysis-server)

🐓3.5 增强的垃圾回收机制

  • 功能描述: Emacs 29.x 对垃圾回收机制进行了进一步优化,减少了垃圾回收对性能的影响,提高了编辑器的响应速度。
;; 设置更高效的垃圾回收阈值
(setq gc-cons-threshold 100000000) ;; 提高垃圾回收阈值
(setq gc-cons-percentage 0.6) ;; 设置垃圾回收的比例;; 启用垃圾回收优化
(add-hook 'emacs-startup-hook(lambda ()(setq gc-cons-threshold 800000)(setq gc-cons-percentage 0.1)))

🐓3.6 新的插件管理系统

  • 功能描述: Emacs 29.x 引入了一个新的插件管理系统,使得安装、更新和管理插件变得更加简单和高效。
;; 配置新的插件管理系统
(require 'package)
(setq package-archives '(("melpa" . "https://melpa.org/packages/")("gnu" . "https://elpa.gnu.org/packages/")("marmalade" . "https://marmalade-repo.org/packages/")))
(package-initialize);; 安装和更新插件
(unless (package-installed-p 'use-package)(package-refresh-contents)(package-install 'use-package));; 使用 use-package 安装其他插件
(require 'use-package)

🐓3.7 对大文件的更好支持

  • 功能描述: Emacs 29.x 对处理大文件进行了优化,特别是在加载和编辑大文件时,性能得到了显著提高。
;; 配置大文件支持
(setq large-file-warning-threshold (* 100 1024 1024)) ;; 设置大文件警告阈值为 100MB;; 启用大文件模式
(add-hook 'find-file-hook(lambda ()(when (> (buffer-size) large-file-warning-threshold)(setq buffer-read-only t)(message "Large file opened in read-only mode"))))

这篇关于Emacs29.x版本之重要特性及用法实例(一百六十二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1092867

相关文章

全面掌握 SQL 中的 DATEDIFF函数及用法最佳实践

《全面掌握SQL中的DATEDIFF函数及用法最佳实践》本文解析DATEDIFF在不同数据库中的差异,强调其边界计算原理,探讨应用场景及陷阱,推荐根据需求选择TIMESTAMPDIFF或inte... 目录1. 核心概念:DATEDIFF 究竟在计算什么?2. 主流数据库中的 DATEDIFF 实现2.1

MySQL中的LENGTH()函数用法详解与实例分析

《MySQL中的LENGTH()函数用法详解与实例分析》MySQLLENGTH()函数用于计算字符串的字节长度,区别于CHAR_LENGTH()的字符长度,适用于多字节字符集(如UTF-8)的数据验证... 目录1. LENGTH()函数的基本语法2. LENGTH()函数的返回值2.1 示例1:计算字符串

Java中的数组与集合基本用法详解

《Java中的数组与集合基本用法详解》本文介绍了Java数组和集合框架的基础知识,数组部分涵盖了一维、二维及多维数组的声明、初始化、访问与遍历方法,以及Arrays类的常用操作,对Java数组与集合相... 目录一、Java数组基础1.1 数组结构概述1.2 一维数组1.2.1 声明与初始化1.2.2 访问

MySQL 中的 CAST 函数详解及常见用法

《MySQL中的CAST函数详解及常见用法》CAST函数是MySQL中用于数据类型转换的重要函数,它允许你将一个值从一种数据类型转换为另一种数据类型,本文给大家介绍MySQL中的CAST... 目录mysql 中的 CAST 函数详解一、基本语法二、支持的数据类型三、常见用法示例1. 字符串转数字2. 数字

Python中你不知道的gzip高级用法分享

《Python中你不知道的gzip高级用法分享》在当今大数据时代,数据存储和传输成本已成为每个开发者必须考虑的问题,Python内置的gzip模块提供了一种简单高效的解决方案,下面小编就来和大家详细讲... 目录前言:为什么数据压缩如此重要1. gzip 模块基础介绍2. 基本压缩与解压缩操作2.1 压缩文

解读GC日志中的各项指标用法

《解读GC日志中的各项指标用法》:本文主要介绍GC日志中的各项指标用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、基础 GC 日志格式(以 G1 为例)1. Minor GC 日志2. Full GC 日志二、关键指标解析1. GC 类型与触发原因2. 堆

MySQL数据库中ENUM的用法是什么详解

《MySQL数据库中ENUM的用法是什么详解》ENUM是一个字符串对象,用于指定一组预定义的值,并可在创建表时使用,下面:本文主要介绍MySQL数据库中ENUM的用法是什么的相关资料,文中通过代码... 目录mysql 中 ENUM 的用法一、ENUM 的定义与语法二、ENUM 的特点三、ENUM 的用法1

JavaSE正则表达式用法总结大全

《JavaSE正则表达式用法总结大全》正则表达式就是由一些特定的字符组成,代表的是一个规则,:本文主要介绍JavaSE正则表达式用法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录常用的正则表达式匹配符正则表China编程达式常用的类Pattern类Matcher类PatternSynta

从入门到精通C++11 <chrono> 库特性

《从入门到精通C++11<chrono>库特性》chrono库是C++11中一个非常强大和实用的库,它为时间处理提供了丰富的功能和类型安全的接口,通过本文的介绍,我们了解了chrono库的基本概念... 目录一、引言1.1 为什么需要<chrono>库1.2<chrono>库的基本概念二、时间段(Durat

MySQL之InnoDB存储引擎中的索引用法及说明

《MySQL之InnoDB存储引擎中的索引用法及说明》:本文主要介绍MySQL之InnoDB存储引擎中的索引用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录1、背景2、准备3、正篇【1】存储用户记录的数据页【2】存储目录项记录的数据页【3】聚簇索引【4】二