其他操作系统估计也差不多。

安装

如果使用brew就是brew install emacs。安装后不会在Applications里面显示一个程序,需要在命令行里执行emacs

使用

进入和退出

上面刚说了一种进入的方法。如果想用Emacs直接打开文件,就敲个空格输入文件就好了。跟Vim一样。

退出的快捷键是C-x C-c。就是按住Ctrl键,先后点击x和c,然后松开Ctrl键。

基本概念

  • Frame

    emacs会占据整个命令行窗口,这个窗口就称为Frame。

  • Point

    编辑点所在的位置称为Point。EMACS中的的光标是一个黑色宽块,它会盖在一个字符上,不管是字母还是汉字。Point是在这个黑光标左侧这个位置。比如下面这个例子,光标盖住了一个汉字:



    那点就是在“日”这个字的前面。你输入的时候会打到“日”的前面。

  • Echo Area

    Frame的最下面一行称为Echo Area —— 显示区。顾名思义,它的一个重要作用就是用来显示信息的。比如输入的命令会显示在这,敲击的快捷键则不会。敲命令的时候一秒内不会显示,万一你一秒就敲完了呢。超过一秒还没完成就会显示,并且你继续敲的任何字符都会直接显示不会再等一秒了。

    这里还会显示错误信息和执行状态。比如快捷键C-x =(按住Ctrl键再按一下x,放开手再按=。如果还按着Ctrl键,会变成C-x C-=不能被识别)会显示Point的信息:

记住Emacs是高度可定制的,所以任何东西都可以查一下:我不想这样该咋弄

上面这张图里你能看到显示区上面有一行写了UUU什么的,这一行称为Mode line —— 模式行。目前不用特别关心它。

而第一张你也能看到最上面有一行黑背景的行,写着File Edit什么的。这个就是菜单栏 —— Menu bar。咦,一个命令行里的东西还有菜单吗?


  • Menu Bar

    菜单栏里的任何操作都不能用鼠标点击(点击了没效果)。

    要在命令行里打开菜单需要敲击F10。效果如下



    选择菜单的快捷键和在Emacs里移动光标的完全一样,C-n (next line), C-p (previous line), C-f (forward), C-b (backward) 。或者用方向键。回车执行。

快捷键

学习Emacs可能最想看的就是它的keymapping了。

Emacs的快捷键离不开两个辅助键,一个是Ctrl键,一个是ESC键。Mac 上是这样,其他系统不保证。

  • Ctrl键缩写成C,需要按住后再按其他键,然后放开Ctrl键
  • Esc键缩写是M,不用按住,而是按一下里吗放开,然后继续按其他键

    呀?Esc还有这种用法,那Emacs的退出键是啥?是Esc Esc Esc,也就是按三次。

常用快捷键

  • 基本编辑命令:

    C-x C-s:保存文件。

    C-x C-f:打开文件。

    C-x C-c:退出 Emacs。

    C-g:中断当前命令或退出正在进行的操作。

    C-z:挂起 Emacs,将其放入后台。可以使用 fg 命令恢复。

  • 光标移动:

    C-f:向前移动一个字符。

    C-b:向后移动一个字符。

    C-n:移动到下一行。

    C-p:移动到上一行。

    M-f 和 M-b:向前和向后移动一个单词。

  • 编辑操作:

    C-space:设置/取消选择。

    C-w:剪切选择的文本。

    M-w:复制选择的文本。

    C-y:粘贴之前剪切或复制的文本。

    M-/:补全文本。

  • 搜索和替换:

    C-s:向前搜索。

    C-r:向后搜索。

    M-%:替换。

  • 帮助:

    C-h t:打开 Emacs 教程。

    C-h k:查看按键绑定的说明。

    C-h f:查看函数的说明。

  • 窗口和缓冲区:

    C-x 1:关闭其他窗口。

    C-x 2:在上下方向分割窗口。

    C-x 3:在左右方向分割窗口。

    C-x o:在窗口之间切换。

最后

就先这些吧。Emacs的强大需要大家自己去摸索去体会,不然肯定还不如vim和vsc好用。

在Mac上使用Emacs初步的更多相关文章

  1. 体验CoreCLR的stack unwinding特性在Linux/Mac上的初步实现

    有了stack unwinding特性,才能在.NET程序中获取调用堆栈(call stack)信息,才能在异常时显示调用堆栈信息.这个特性之前只在Windows上有实现,Linux/Mac上的实现最 ...

  2. mac 上sed

    mac上sed和liunx是不一样的,所以有些指令可能不通用,需要将mac上sed替换成gun的: Install Homebrew First, visit Homebrew homepage an ...

  3. Mac上MySQL忘记root密码且没有权限的处理办法&workbench的一些tips (转)

    忘记Root密码肿么办 Mac上安装MySQL就不多说了,去mysql的官网上下载最新的mysql包以及workbench,先安装哪个影响都不大.如果你是第一次安装,在mysql安装完成之后,会弹出来 ...

  4. 让 asp.net 在 mac 上飞

    .NET 不跨平台一直饱受争议,虽然微软前端时间放出些消息,要支持.NET跨平台的发展,但是微软一直坚持着不主动.不拒绝.不负责的三不态度,仍然用一种软件帝国的心态,折腾着一些毫无新意的东西.微软想要 ...

  5. Mono 4.0 Mac上运行asp.net mvc 5.2.3

    Mono 4.0 已经发布,二进制包已经准备好,具体的发布说明参见:http://www.mono-project.com/docs/about-mono/releases/4.0.0/. 今天在Ma ...

  6. 剖析并利用Visual Studio Code在Mac上编译、调试c#程序

    0x00 前言 一周多以前的微软的Build大会上,微软发布了一个让很多人眼前一亮的工具,也是本文的主角——Visual Studio Code.很多使用Windows的朋友都很高兴,认为又多了一个很 ...

  7. PSD文件在MAC上和在WINDOWS上的大小有本质区别

    因为偷懒在MAC上的美工,发我的PSD文件,我就直接在上面做了= =后来不知道为什么无论我怎么合并图层.PSD的大小永远都是107M....然后忍无可忍重新画就从107M变成2M.....MAC为什么 ...

  8. 在Mac上使用Visual Studio Code开发/调试.NET Core代码

    .Net Core 1.0终于发布了,Core的一大卖点就是跨平台.这个跨平台不只是跨平台运行,而且可以跨平台开发.今天抽空研究了下在Mac下如何使用VS Code来开发.NET Core程序,并且调 ...

  9. phabricator在mac上的搭建

    环境:OS X Yosemite 10.10.5 前提:phabricator主要是由php写的,而且是以website方式运行的,所以mac上要先安装好 php + nginx(或apache) + ...

  10. mac 上的 python

    1.mac 上的 python 自己感觉很乱 1.额外安装的 自带的 python27-apple /System/Library/Frameworks/Python.framework/Versio ...

随机推荐

  1. 检索增强生成RAG-书生浦语大模型实战营学习笔记3&大语言模型8

    大语言模型学习-8.检索增强生成RAG 书生浦语大模型实战营学习笔记3 本文主要涉及检索增强生成相关基础知识,也包括第二期实战营的第3课的内容 动机 当今大语言模型存在幻觉现象,即大模型会无意义或不忠 ...

  2. LVS负载均衡(6)--LVS调度算法详解

    目录 1. LVS调度算法详解 1.1 静态调度算法 1.1.1 RR调度算法 1.1.2 WRR调度算法 1.1.3 SH调度算法 1.1.4 DH调度算法 1.2 动态调度算法 1.2.1 LC调 ...

  3. 在jeecg-boot中密码的使用

    1.生成密码并入库保存 String id= SnowflakeIdUtil.nextValue();//生成id operatCompany.setId(id); String salt = oCo ...

  4. pageoffice 6 实现pdf加盖印章和签字功能

    PageOffice支持两种电子印章方案,可实现对Word.Excel.PDF文档加盖PageOffice自带印章或ZoomSeal电子印章(全方位保护.防篡改.防伪造).Word和Excel的盖章功 ...

  5. 在线电子表格编辑器 Luckysheet

    下载地址 不知道地址正不正经,我先用着,网上找的地址,不知道是不是可信任的,疑似官网的两个地址都打不开, https://github.com/dream-num/Luckysheet zip包  h ...

  6. 在 Inno Setup iss 打包过程 中检测 .NET 6 / .net 5 / .NET Core 运行环境是否存在或已安装

    为了将 .NET 5 / .NET Core 应用程序部署到客户机,我们可以编写 Inno Setup 代码来判断客户机是否安装了必要的运行环境..NET 官方仓库 中提供了一个名为 NetCoreC ...

  7. JavaSE什么是面向对象?

    目录 重点!!!面向对象 面向过程与面向对象 面向过程的程序思想 面向对象程序思想 类和对象(面向对象的核心概念) 类: 类的结构 对象:(Everything is an object) 重点!!! ...

  8. 解决 idea web项目没有小蓝点的问题

    在idea导入web项目,项目没有显示小蓝点,无法添加 java文件和运行.如下图的springboot-schedule 和 springboot-test 都没有蓝点: 解决方案一: 点击 Fil ...

  9. WIN10 WIN11 12代 13代 大小核 电源选项

    WIN10 WIN11 12代 13代 大小核;性能核:电源选项:P-core,E-core; 说明: WIN10 也是能正常用 12,13代大小核的. 方法: 1.右键开始菜单,选择"Wi ...

  10. winform遍历控件的Controls.OfType<>方法

    页面TextBox控件较多时,可以使用类似的名字,方便遍历时整体的修改,可以使用Controls.OfType<TextBox>()获取所有文本框: 需要引用命名空间System.Linq ...