读书笔记-学习GNU Emacs-3终篇

news2025/7/12 14:59:56

在这里插入图片描述

学习本书目的:

emacs的学习一直是陆陆续续看博客和上手实践,
这次想通过阅读"学习GNU Emacs"这本书好好系统的再复习下emacs。

yps:读技术书应该是带着一定的目的去读的,最简单的目的可能就是为了学好某一项技术或者复习下某一项技术。

对Emacs进行定制

通过.emacs文件进行定制
当我们如果.emacs配置错误,通过emacs -q 启动emacs就不会读取.emacs文件配置

yps: 我个人使用vim编辑修改哈

键盘的定制

(define-key keymap 'keystroke 'command-name)
(global-set-key "keystroke" 'command-name)
(local-set-key "keystroke" 'command-name)
  • define-key 最通用,可以绑定任何一个键位映射图里的按键
  • global-set-key 只能绑定全局键位映射图里的按键,因为global-map只有一个
  • local-set-key 绑定当前编辑缓冲区局部键位映射图里的按键,临时性定义。
  • C-x C-e 重新生效配置

程序员的Emacs

  • ESC ; 注释
  • ESC x kill-comment 删除注释

.c,.h后缀文件 主动进入C语言编辑模式,
如果别的后缀也想进入c语言模式:ESC x c-mode RETURN

C模式高级移动命令

按键作用
ESC C-a函数的开头
ESC C-e函数的结尾
ESC C-h函数整个选取为一个文本块
ESC x c-set-style缩进样式风格选择

lisp模式

  • emacs-lisp-mode 编辑emacs lisp代码
  • lisp-mode 编辑其他lisp系统使用的lisp代码
  • lisp-interaction-mode 编辑和运行emacs lisp代码
按键作用
ESC C-b移动到上一个S表达式
ESC C-f移动到下一个S表达式
ESC C-t交换两个S表达式的位置
ESC C-@文本块标记设置当前S表达式的末尾
ESC C-k删除光标后面的S表达式
命令backward-kill-sexp删除光标前面的S表达式

用Lisp语言对Emacs做进一步开发

  • 整数
  • 浮点数,数学上的实数,可以用小数点和科学计数法
  • 字符,必须有一个前导的问号,比如“?a”
  • 字符串,必须放在一对双引号中间
  • 布尔值,t=真,nil=假
  • 符号,各种事物的名字,比如变量或者函数的名字。如果需要名字而不是值,名字前面加上单引号。

函数

  • defun 本身也是一个函数,会在自己被调用时定义一个新的函数
  • let 对变量进行定义
  • message函数 %s字符串,%c字符,%d整数,%f浮点数,%e科学计数法浮点数

建立自己的lisp开发库

  • load-path 把自己的lisp目录添加到load-path变量里
  • ESC x load-library 加载到Emacs中
  • load emacs会在启动的时候加载指定的程序包

Emacs编辑器和X窗口系统

按键作用
C-x 5 f访问另一窗格里的某个文件
C-x 5 d另一个窗格里运行Dired模式
C-x 5 0删除当前窗格
C-x 5 b切换窗格

Emacs下的版本控制

yups: 现在基本都用git做版本控制,cvs等就忽略了。

在线帮助

Emacs的在线帮助功能是最全面的。
Emacs在线帮助功能:

  • 主动补足功能,Emacs能帮助完成名称的输入工作。
  • 帮助键(C-h),查看关于各种问题的帮助。
  • 针对复杂命令的帮助功能, 比如query-replace和dired等命令。

Emacs的自动补足功能

只需输入一个“最短无二义前缀",剩余的Emacs来补足。
包括:

  • 命令
  • 某给定目录里的文件
  • 编辑缓存区
  • Emacs变量

如果想让Emacs来帮助补足: TAB、SPACE、?

帮助命令

  • C-h C-h 帮助命令手册
  • C-h l 最近输入的100个字符
  • C-h f 函数的作用是什么
  • C-h c 按键组合将运行那个命令
  • C-h v 这个变量的含义,他有哪些可能值
  • C-h m 当前缓冲区编辑模式的有关资料
  • C-h b 这个编辑缓冲区都有哪些按键绑定
  • C-h s 这个编辑缓冲区使用的是哪个语法表
  • C-h a 查找和回答

读书总结

终于读完了这本书,跳过了一些淘汰的内容和不适合自己的一些章节。
总体这本书还是非常值得一读,作者描述得很细致很细心,适合初学者入门。
而且关于emacs的书寥寥无几,真的是现在的人都不太用Emacs了?但是我很喜欢,当然我也会选择的用,而不是all in emacs。
最后推荐指数:4颗星。如果内容与时俱进更新一番,那就是4星半了。

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

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

相关文章

[附源码]java毕业设计社区健康服务平台管理系统lunwen

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

IDEA利用maven建立javaWeb项目(IDEA 2021.3.3)

1、在Idea中配置maven (1)、打开Idea,点击File,然后点击Settings,进入设置,或者直接按CtrlAltS进入设置 (2)、先在左上角的搜索框输入maven,找到maven后单击,然后在右边的maven home path的右边选择你的m…

置信度--学习笔记

置信区间是衡量测量精度的一个指标,也能显示出估算有多稳定,也就是说如果重复做某项实验,得到的结果与最初的估计有多接近。步骤: 确定要测试的情况:如“A大学男生的平均体重是80公斤”,则后续就是要测试在…

最新最全面的Spring详解(三)——Resources,验证、数据绑定和类型转换与Spring表达式语言(SpEL)

前言 本文为 【Spring】Resources与Spring表达式语言(SpEL) 等相关知识,下边将对Resources(包含:Resource接口、内置的 Resource的实现、ResourceLoader接口、应用环境和资源路径),验证、数据绑…

浅谈化工生产制造企业软件系统的选择

现在大家都在讨论全球COVID流行和经济衰退对企业的影响,以及一个有作为的企业,在当下的环境下如何求生存和谋发展的问题。“埃森哲的一份报告发现,99%的首席运营官都认为,使用实时数据运营对于应对Covid或经济衰退威胁等至关重要。…

Java的JDBC编程

1. 数据库编程的必备条件 编程语言,如Java,C、C、Python等数据库,如Oracle,MySQL,SQL Server等数据库驱动包:不同的数据库,对应不同的编程语言提供了不同的数据库驱动包,如&#xf…

Telnet SMTP协议关于“535 Error: authentication failed“解决思路

计算机网络中应用层的SMTP(Simple Mail Transfer Protocol)协议可用来发送邮件,在Telnet使用SMTP登陆账号密码时出现“535 Error: authentication failed”问题。现记录解决步骤。 1. 确认在邮箱中已开启SMTP服务。 2. 按照扫码流程,获得授权密码&…

第六章第二节:图的遍历(广度优先遍历和深度优先遍历)和应用(最小生成树、最短路径、有向无环图的描述表达式、拓扑排序、关键路径)

文章目录1. 图的遍历1.1 广度优先搜索(BFS)1.1.1 遍历序列的可变性1.1.2 复杂度的分析1.1.3 广度优先生成树1..1.4 广度优先生成森林1.2 深度优先搜索(DFS)1.2.1 树的深度优先遍历1.2.2 图的深度优先遍历1.2.2 复杂度的分析1.2.4 …

Servlet | 域对象、request对象其它常用的方法

目录 一:域对象 1、应用域对象 2、请求域对象 二:request对象其它常用的方法 一:域对象 1、应用域对象 (1)应用域对象是什么? ServletContext (Servlet上下文对象。) 什么情况…

NCV7705DQAR2G 汽车电机驱动器(NCV7705DQR2G)引脚配置

型号:NCV7705DQAR2G NCV7705DQR2G 封装:36-BFSOP 类型:电机驱动器,控制器 NCV7705/NCV7705(A)是一款功能强大的汽车车身控制系统驱动IC。该集成电路设计用于控制车辆前门的多个负载。单片集成电路可以控制镜面定位、加热、折叠等…

JS测试出最小支持字体,以及修复PDFJS的文本错误偏移

PDFJS的文本层有时会有一个错误的整体偏移,导致文本处于错误位置,导致用户选择错误的文本。 为什么会这样呢?其一,如果浏览器的文本缩放不是100%,而PDFJS没有检测这一点,导致文本排布发生偏移。安卓可以通…

[附源码]java毕业设计人口老龄化社区服务与管理平台

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

一个Adapter+recycleview实现多种布局,区分布局中

文章目录🍓🍓简述🍓🍓效果图🍓🍓代码🥭🥭AllAdapter.java🥭🥭 FuritAdapter3.java🥭🥭MainActivity.java(主函数)🥭&#…

适合中小企业的CRM客户关系管理系统?

1、CRM如果体量30人及下列 这类民营企业的特征是没营业网点,分散办公设备,一职多能,没他们的IT控制技术职责部门。通常老板重大决策,子公司全体相关人员采用。 主要就采用目地是管理组织工作顾客档案,历史记录顾客数…

力扣138 - 复制带随机指针的链表【复杂链表的终极试炼】

想指☞哪就指哪儿~一、题目描述二、思路分析与罗列思路一:通过原链表的【random】去找控制拷贝链表的【random】思路二:直接链接到原链表处做相邻结点的【random】修改Step1:把复制的结点插入到原结点后Step2:设置拷贝结点的rando…

计算机毕业设计ssm+vue+elementUI基于html的戒烟网站

项目介绍 大量研究证据表明,戒烟可降低或消除吸烟导致的健康危害。任何人在任何年龄戒烟均可获益,且戒烟越早、持续时间越长,健康获益就越大。随着时代发展人们对健康也越来越重视,更多的人参与到了戒烟的行列中来,本…

React环境搭建

目录 1.React环境搭建 2.React项目结构 3.React优点和缺点 1.声明式设计 2.高效-React通过对DOM的模拟(创建虚拟DOM),最大限度地减少DOM操作(底层是Diff算法) 3.单向响应的数据流 4.组件化开发-复用和便于维护 5.缺点:React本身能做的事并不多&am…

手机实时预览vscode写的html页面

一、vscode安装Live Server插件 扩展(CtrlShiftX)搜索Live Server进行安装 二、设置电脑IP (1)winR 打开终端输入:ipconfig (2)找到SDN 服务器 (3)设置IPv4窗口 高级…

为什么WinXP SP2有时候会忘记CD自动播放的设置?

实际上,它并没有忘记,它只是想和你再次确认一下。 这是 Windows XP2 负责开发 CD 自动播放组件的工程师和我说的。 在 Windows XP 中,处理 CD 自动播放时会有两个问题。 第一,当你安装了一个新的可以处理 CD 自动播放的应用程序…

分库分表利器——shardingJdbc

一、分库分表方式 1.1 垂直切分 1.1.1 垂直分表(拆分字段——但每张表的数据量是不变的) 把一张表的一部分字段存在一张新表里面,将另一部分字段存在另一张新表中 1.1.2 垂直分库(专库专表) 把单一数据库按照业务…