Starting!!

  1.啰嗦几句  

 1 /*
 2
 3    1.关于备份功能
 4      emacs有auto-backup和auto-save两种备份功能:
 5      1.auto-backup是将保存好的文件进行备份,类似Git的版本控制。
 6      2,auto-save是emacs为了提高编辑体验,便每隔很少的时间间隔就自动对当前文件和buffer内容进行保存。
 7
 8      但实际上一般的emacs用户都用不到这些功能,或者已经哟更强大的替代品.

      (setq make-backup-files nil)      (setq auto-save-default nil)
    2.关于快捷键      在使用“C-h f”等查询命令的时候,emacs默认会新开启一个窗口,但是光标还会在原来的窗口,如果MainWindow在编辑一些重要的文件,多开启一些窗口会很不爽,我们想让emacs在最下面       开启一个minibuffer来提供这样类似的功能,#popwin#就是这样的一个package。          我们希望将主窗口只起到编辑的作用,一些查询和辅助功能最好统一到最下面的minibuffer中。这样会显得很整齐。      因为时间常长了就会忘掉这些安装和功能的细节,但这些细节特别好的帮助我们理解emacs。如果说是想成为开发者而不永远是小白,就需要记住这些东西。 9
10 */

  

  

  2.关于lisp语法

 1 /*
 2   
 3     1.在 Emacs 中,Major Mode 又分为三种,
 4
 5        text-mode ,用于编辑文本文件
 6        special-mode ,特殊模式(很少见)
 7        prog-mode ,所有的编程语言的父模式
 8   在每一个模式(mode)中它的名称与各个变量还有函数都是有特定的命名规则,比如所有的
 9   模式都被命名为 ModeName-mode ,里面所设置的快捷键则为 ModeName-mode-key-
10   map ,而所有的钩子则会被命名为 ModeName-mode-hook
11
12     2.features
13   当一个Lisp插件(package)调用(provide 'symbol_name)函数的时候,emacs会将symbol_name加入到内置的features-lists中。"C-h v"可以查看该变量。
14  这里能找到关于详细介绍。
15  The purpose of features is for emacs to know if a package is already loaded.
16
17     3.load-file , load , require , autoload
18
19      这里能找到详细介绍

        load-file 用于打开某一个指定的文件,用于当你不想让 Emacs 来去决定加 载某个配置文件时( .el 或者 .elc 文件)。

        load 搜索 load-path 中的路径并打开第一个所找到的匹配文件名的文件。首先查找.elc编译好的文件,如果没有在检查.el文件 。

       (当load函数没有load-path的时候,可以直接使用"load-file+文件的绝对路径“进行加载)。 不过这个时候需要明确的告诉emacs需要加载的是哪个文件(后缀名.el或者.elc也要写上)

        require 加载还未被加载的插件。首先它会查看变量 features 中是否存在所要加载的 符号如果不存在则使用上面提到的 load 将其载入。(有点类似于其他编程语言中的 import )

1).将配置文件中的(require ‘###)直接改成(load '#####.el)是完全可以的。

        总结一下:(require ’###)函数首先回去查找features-list中是否存在该函数,如果没有,便会调用load函数(依赖于load-path)来首先加载###.elc为名的文件,如果没有便加载###.el文件进行一句一句的解释执行(如果还是没有便会报错),一直执行到(provide ‘###)这句函数的时候才会将该函数加载到features-list中。至于后续的emacs机制,以后再说吧。

        autoload 用于仅在函数调用时加载文件,使用此方法可以大大节省编辑器的启动时间。

32 */

 

   3.关于小技巧

    在写C++代码时候,会有一些像#include<#######>之类的经常写但又容易写错的代码。emacs提供了一些缩写补全功能和缩进功能。

 1 /*
 2
 3     (setq-default abbrev-mode t)
 4 (define-abbrev-table 'global-abbrev-table '(
 5                         ;; Shifu
 6                         ("inc" "#include<")
 7                           ))
 8
 9
10    输入“8zl”按ENTER或者任何非字母键就会补全。这时候可以只写半个括号,然后按“>”边会很方便的补全。看来以后是真的离不开emacs了。。。
11   该插件会在目录下新建一个abbrev_defs的文件用来保存一些配置信息。
12 

    还提供了一个功能,叫Hippie 补全:快捷键”C-c C-h“,可以在company-mode不能提供补全的情况下进行补全。
13 */

  

  4.关于update-autload

    在安装popwin这个package的时候,在GitHub源码上的调用方式中有两句话:

(require 'popwin)
(popwin-mode t)

    而在安装company的时候,调用方式:

(global-company-mode t)

  这里有一些lisp语法上的概念:

  在emacs加载package系统的时候(package-initialize),系统会在每一个package的配置文件中(update-directory-autoloads ~/.emacs.d/lisp)查找有autload魔法注释的函数,然后将这些函数放到一个叫###_autload.el的文件中。如果没有,就需要自行将该插件加载进去——(require ‘###)。而require函数调用的本质就是调用load来将文件加载到features中的。

  有关el和elc文件的事情后面再细说,太难。。。感觉有一点像是C++的头文件加载的过程。但是在使用load-file加载的时候要注意,因为使用的是文件的全名,如果是.elc文件,那如果后面对源文件进行修改的话,一定要重新编译,否则修改的东西是不会生效的甚至会报错。

  5.关于orgmode文学编程

  因为不是很熟悉orgmode的基本操作,感觉现阶段还只是想用熟悉emacs的语法和基本使用,所以就这一块就放一下吧。

  突然发现hackingEmacsde的本质就是学会发现问题,然后耐心去Google,这里强调一些简单的"C-h C-f"等查找快捷键,学好这些快捷键是熟悉emacs的必要条件。

  这两天的进度有些慢,算法部分有点落下。。。不过都不能放弃,坚持咯~

转载于:https://www.cnblogs.com/haotianmichael/p/8425808.html

Emacs-hacking第三天相关推荐

  1. linux 文件系统_Linux 虚拟文件系统

    虚拟文件系统 为了支持各种本机文件系统,且同时允许访问其他操作系统的文件,Linux 内核在用户进程与实际文件系统实现之间引入了一个抽象层,该层称为虚拟文件系统.它的任务并不简单,一方面它要提供一套管 ...

  2. 程序员的10000个小时理论

    科技界的"劳模"会是什么样? 智商情商双高,痴迷又偏执,拥有卓绝的创造力--凡是形容一个天才的标签,贴在这家伙身上完全不够用. 比尔·乔伊,你可能不熟悉这个名字,但你一定知道那家市 ...

  3. C语言/C++初学 问题

    编程及C/C++初学者 FAQ  本文原为本人在论坛所发若干帖,意在集中解决新手学习C/C++语言时将遭遇到的各类问题,网友反馈情况良好,集合修订后作为个人作品贴于此处. 本贴主要分析概念原理和解决方 ...

  4. 编程及C/C++初学者 FAQ

    编程及C/C++初学者 FAQ  本文原为本人在论坛所发若干帖,意在集中解决新手学习C/C++语言时将遭遇到的各类问题,网友反馈情况良好,集合修订后作为个人作品贴于此处. 本贴主要分析概念原理和解决方 ...

  5. FSF 公布 2022 年自由软件获奖名单

    作者 | Free Software Foundation 责编 | 梦依丹 出品 | CSDN(ID:CSDNnews) 3 月 18 日,自由软件基金会(FSF)宣布 2022 年自由软件奖的获奖 ...

  6. 在windows上安装配置msys2

    在windows上安装配置msys2 msys2安装 启动msys2 msys2中文乱码问题 MSYS2 目录映射问题 MSYS2 ln -s软连接会复制目录的问题 fastab配置文件目录的方法 m ...

  7. Emacs之魂(三):列表,引用和求值策略

    Emacs之魂(一):开篇 Emacs之魂(二):一分钟学会人界用法 Emacs之魂(三):列表,引用和求值策略 Emacs之魂(四):标识符,符号和变量 Emacs之魂(五):变量的"指针 ...

  8. Web Hacking 101 中文版 九、应用逻辑漏洞(三)

    7. 绕过 Gitlab 的双因素认证 难度:中 URL:无 报告链接:https://hackerone.com/reports/128085 报告日期:2016.4.3 奖金:无 描述: 4 月 ...

  9. 学习GNU Emacs命令速查表(三)

    博客地址:http://blog.csdn.net/shuxiao9058 原始作者:季亚 第八章简章的文字排版和特效编辑 表8-1:制表位命令速查表 键盘操作 命令名称 动作 (无) edit-ta ...

  10. 用来记笔记的三个 Emacs 模式

    借助这些 Emacs 模式轻松记录信息. 不管你从事哪种工作,你都无可避免地需要记笔记.而且可能还不是一点点.现在这年头,大家都开始以数字的形式来记笔记了. 开源软件爱好者有多种途径来以电子的方式记下 ...

最新文章

  1. DetNAS ThunderNet
  2. ubuntu 10.0.4安装小企鹅(Fcitx)输入法
  3. SpringMVC+Mybatis+MySQL配置Redis缓存
  4. Android中ADT和SDK的关系
  5. LeetCode 45跳跃游戏46全排列
  6. ubuntu16.04 安装 ipython
  7. SiameseSentenceSimilarity相似句子匹配分类项目
  8. JAVA程序员已成为最疯狂的加班行业,没有之一?
  9. Mybatis(6)CURD增删改查操作
  10. 那个linux系统自带应用商店,如何在荣耀笔记本(Linux版)中拥有deepin应用商店?...
  11. VSCode每打开一次文件弹出一个git弹窗:-login -i rev-parse --show-toplevel
  12. linux C/C++内存检测
  13. [AutoSAR] BSW模块的ECUAL 抽象层
  14. 制作云计算平台的虚拟机镜像
  15. Twitter在15岁终于迎来蜕变
  16. 没有mysql不能设置root密码怎么办_无法给MySQL root用户修改密码的解决方法
  17. Android 三种拨号方式(kotlin)
  18. À¸´£º¹²ÏíÖйúÐÅÏ¢²úÒµ´øÀ´µÄÓ°ÏìÁ¦
  19. Excel PivotTable 使用心得手顺分享(一)
  20. 360°全景影像移动端类库--PanoramaGL

热门文章

  1. 设计一个简单的基于三层交换技术的校园网络——计算机网络课程设计
  2. java ffmpeg 视频水印_java 实现视频转换通用工具类:视频加水印-Ffmpeg(五-1)
  3. Descending Order 实践练习
  4. 搜索词纠错(拼写检查)、相关搜索的原理与实现
  5. 涉密计算机怎么更新补丁,当需要将病毒库、系统补丁程序等导入到涉密信息系统时采用什么方式...
  6. 怎么用一个计算机控制两个屏幕,一台电脑控制多个led显示屏
  7. 泉城济南——三妮儿暴走一日游
  8. 今天,我们求知若渴、虚心若愚(附技术PPT)
  9. 一点点读懂regulator(一)
  10. uni-app 使用外部.js文件定义全局变量和全局方法