博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
emacs 进阶:了解命令
阅读量:6250 次
发布时间:2019-06-22

本文共 3006 字,大约阅读时间需要 10 分钟。

命令组成

由于emacs本身就是emacs lisp编写的,所以在emacs中一个命令其实就是一个函数。

(defun helm-M-x (_arg &optional command-name)"Preconfigured `helm' for Emacs commands.It is `helm' replacement of regular `M-x' `execute-extended-command'.Unlike regular `M-x' emacs vanilla `execute-extended-command' command,the prefix args if needed, can be passed AFTER starting `helm-M-x'.When a prefix arg is passed BEFORE starting `helm-M-x', the first `C-u'while in `helm-M-x' session will disable it.You can get help on each command by persistent action."
快捷键 命令 说明
M-! shell-command 使用系统shell 运行命令并输出到buffer "Shell Command Output"
M- shell-command-on-region 运行Shell命令并输出到编辑区域
M-x helm-M-x 运行emacs命令
- term 打开buffer"terminal",运行终端
- eshell 创建一个交互式的Elisp shell。

可以通过设置shell-file-name变量的值来改变默认shell

(setq shell-file-name "/bin/bash")

elisp

掌握基本语法规则后就应该多看人家写的代码!

假如想要知道打开文件是怎么操作的。

  1. 首先定位函数的代码。

    • 已知快捷键C-x C-f。依次键入C-h k C-x C-f

      然后就会显示函数的信息,点击helm-files.el就能看到代码。

    • 如果不知道快捷键,则键入C-h a ,利用命令的名称来搜索可能的选项。

    (defun helm-find-files (arg)  "Preconfigured `helm' for helm implementation of `find-file'.Called with a prefix arg show history if some.Don't call it from programs, use `helm-find-files-1' instead.This is the starting point for nearly all actions you can do on files."  (interactive "P")  (let* ((hist            (and arg helm-ff-history (helm-find-files-history)))         (smart-input     (or hist (helm-find-files-initial-input)))         (default-input   (expand-file-name (helm-current-directory)))         (input           (cond (helm-find-file-ignore-thing-at-point                                 default-input)                                ((and (eq major-mode 'org-agenda-mode)                                      org-directory                                      (not smart-input))                                 (expand-file-name org-directory))                                ((and (eq major-mode 'dired-mode) smart-input)                                 (file-name-directory smart-input))                                ((and (not (string= smart-input ""))                                      smart-input))                                (t default-input)))         (input-as-presel (null (nth 0 (file-attributes input))))         (presel          (helm-aif (or hist                                        (and input-as-presel input)                                        (buffer-file-name (current-buffer))                                        (and (eq major-mode 'dired-mode)                                             smart-input))                              (if helm-ff-transformer-show-only-basename                                  (helm-basename it) it))))    (set-text-properties 0 (length input) nil input)    (helm-find-files-1 input (and presel (null helm-ff-no-preselect)                                  (concat "^" (regexp-quote presel))))))
  2. 将光标放到函数名上,键入 C-u C-M-x可添加中断入口。M-x edebug-mod开启后会在菜单栏多出edebug的选项。

  3. 使用命令C-x C-f便会触发中断。

  4. n可单步执行

IELM

这是一个很方便的工具。不同于M-x只能调用命令,IELM可以使用lisp语言,对于实现emacs扩展实在是太便捷了!

更多更详细的内容还是得看文档!!

转载地址:http://fffsa.baihongyu.com/

你可能感兴趣的文章
springboot的jsp应该放在哪_健身小白用2个月亲身经历告诉你小白去健身房,应该做到哪几点...
查看>>
opencv表面缺陷检测_工业产品表面缺陷检测方法
查看>>
kettle使用数据库来生成序列_时间序列数据库Influxdb的使用
查看>>
配置babel_关于 Babel 你必须知道的
查看>>
数据丢失与重复_消息队列重复消费和数据丢失问题(石衫面试突击学习笔记)...
查看>>
摄像头 火狐_为什么谷歌浏览器打不开电脑摄像头?
查看>>
两张图片合成一张_ps技巧:大光比照片后期曝光合成技法
查看>>
码条形码属性_条码生成器如何批量生成code 11码
查看>>
和lua的效率对比测试_不同编程语言能耗不同?看这27种语言对比!
查看>>
让某控件失去焦点_常用基本控件测试用例(一)
查看>>
天气模式_今年台风活跃期即将结束!下周天气将开启“大变脸”模式
查看>>
扫码枪关闭常亮模式_生意好时最怕收银出故障,这几个扫码枪的常见问题你一定要知道...
查看>>
如何双击打开vivado工程_利用TCL重建vivado工程
查看>>
mysql的引双向链表_Mysql高手系列 - 第22篇:mysql索引原理详解(高手必备技能)
查看>>
mysql in 查询改成_MySQL not in嵌套查询改写成外连接方式
查看>>
mysql community安装_MySQL Community Server 5.7安装详细步骤
查看>>
python处理多行字符串_python多行字符串
查看>>
java冒泡排序_用java写个冒泡排序?
查看>>
linux 开发java_做开发环境的操作系统是 Linux 好还是 Windows 好?
查看>>
java正文提取_Java网页正文提取工具
查看>>