按键约定

组合按键

Emacs中大量的按键操作都是各式各样的组合按键(快捷键),下面是几种通常的约定:

  • Ctrl键:表示为C
  • Alt键:表示为M
  • Shift键:表示为S
  • 组合按键:比如向下移动一行的组合按键是Ctrl+n,就表示为:C-n,其含义表示同时按下键盘上的Ctrln键。

按键顺序

有时候用多个组合按键来表示一种操作,比如以下按键序列:C-x C-f [文件路径] <RET>就表示打开文件的操作,它表示这样的操作含义:先同时按下Ctrlx键,然后松开,紧接着马上再同时按下Ctrlf键,然后再松开,然后在下方的输入栏中输入文件路径,输入完之后按回车键(用<RET>表示),最后就打开了一个文件。

还有一种按键顺序:C-x o,表示切换到另外一个缓冲区,它是这样一组按键:先同时按下Ctrlx键,然后松开,然后紧接着按字母o键。

还有另外一种按键顺序,比如以下按键序列:C-u [10] C-p,就表示这样的操作含义:先同时按下Ctrlu键,然后松开,然后依次按10键,然后松开,最后再同时按Ctrlp键。这组按键达到的效果就是把光标从当前位置往上移动10行。

特殊按键

  • 表示输入内容,用方括号括起来:[输入的内容]
  • 表示回车键:<RET>
  • 表示其他键:比如<Backspace>表示退格键(删除键),<Delete>表示删除键,<TAB>表示TAB键,<Left>表示左箭头键,<Right>表示右箭头键,<Up>表示上箭头键,<Down>表示下箭头键,<f5>表示F5键。

Quick Start

文本操作,无外乎打开文件、编辑文件、保存文件,涉及的核心、最高频命令非常简单,整理如下:

  • C-x C-f [文件路径] <RET>:打开一个文件
  • C-n:将光标向下移动一行
  • C-p:将光标向上移动一行
  • C-g:取消之前的按键(将会成为最常用的按键之一)
  • C-x C-s:保存文件
  • C-x C-c:退出Emacs

常用操作分类汇总

文件操作

  • C-x C-f [文件路径] <RET>:打开一个文件
  • C-x C-s:保存文件
  • C-x 4 f [文件路径] <RET>:在一个新的窗格(缓冲区)中打开文件
  • C-x 5 f [文件路径] <RET>:在一个新的窗口中打开文件

移动操作

  • C-n:将光标向下移动一行
  • C-p:将光标向上移动一行
  • C-b:将光标左移一个字符
  • C-f:将光标右移一个字符
  • M-f:将光标右移一个单词
  • M-b:将光标左移一个单词
  • C-v:向下移动一屏
  • M-v:向上移动一屏
  • C-l:将当前光标所在行移动到屏幕中央(注意:这里是字母L
  • C-a:将光标移到行首
  • C-e:将光标移到行尾
  • M-S-<:将光标移动到文件开头
  • M-S->:将光标移动到文件末尾
  • M-m:将光标移动到行首的第一个非空白字符

查找与替换操作

  • C-s [查找的内容]:向前查找
  • C-r [查找的内容]:向后查找
  • C-M-s [查找的内容]:向前正则查找
  • C-M-r [查找的内容]:向后正则查找
  • M-S-%:查找并替换,操作步骤如下:按下M-S-%键启动查找替换,输入要被替换的词,回车,然后输入要替换的词,再回车。被替换的词此时会高亮起来,这时,输入y替换并跳到下一个,输入n忽略并跳到下一个,输入q结束,输入!替换剩下的全部。

文本选择操作

  • C-S-e:选中从当前位置到行尾的文本
  • C-S-n:从当前位置开始往下选中一行文本
  • C-S-p:从当前位置开始往上选中一行文本
  • C-S-f:从当前位置开始往后选中一个字符
  • C-S-b:从当前位置开始往前选中一个字符
  • M-S-f:从当前位置开始往后选中一个单词
  • M-S-b:从当前位置开始往前选中一个单词
  • M-S-e:选中从当前位置开始到当前句尾的文本
  • M-S-a:选中从当前位置开始到当前句首的文本
  • C-S-@ [其他移动操作]:从一个起始位置,选中连续的字符,比如C-S-@ C-e就表示选中从当前光标位置到行尾的所有字符
  • C-S-v:向下选择一屏
  • M-S-v:向上选择一屏
  • C-S-l:让当前光标所在行居中
  • C-x h:全选

文本编辑操作

  • 插入文本:只要光标在当前缓冲区,就可以直接输入插入文本。
  • C-k:删除光标到行尾的所有字符
  • C-u [N] [操作序列]:重复执行一个操作序列N次
  • C-/C-x u:撤销(undo)上次操作,多次按可以撤销之前的多次操作
  • C-g C-/:重做(redo),用于重做上次的撤销动作(撤销之后后悔了,想恢复重做)
  • <Backspace>:删除当前光标前的一个字符
  • C-<Backspace>:删除当前光标前的一个单词
  • C-d<Delete>:删除当前光标后的一个字符
  • M-<Backspace>:剪切当前光标前的一个字符到剪贴板
  • M-d:剪切当前光标后的一个字符到剪贴板
  • C-k:剪切从光标到行尾的字符到剪贴板
  • C-y:粘贴剪贴板中的文本到当前光标位置
  • M-w:复制当前选中的字符
  • C-w:剪切当前选择的字符到剪贴板
  • C-a C-k:剪切一整行到剪贴板中,其实也可以用于删除一整行
  • C-e <RET>:在当前行下方插入一空行
  • C-x C-q:让当前buffer在“只读”和“读写”两种编辑模式之间切换

多窗格与多窗口

首先要明确一下Emacs中窗格与窗口的概念的区别:每个窗格其实就是一个缓冲区,一个窗口中可以同时打开多个窗格,而窗口就是像Windows那样的GUI窗口。

  • C-x 1:仅保留当前窗格,关闭其他窗格
  • C-x 2:在垂直方向打开2个窗格
  • C-x 3:在水平方向打开2个窗格
  • C-x o:在不同窗格之间切换
  • C-x 0:关闭当前窗格
  • C-x S-{:减小当前窗格的水平宽度
  • C-x S-}:缩小当前窗格的水平宽度
  • C-x S-^:增大当前窗格的垂直高度
  • C-M-v:在另一个窗格中向下滚动一屏(但光标还保留在当前窗格)
  • C-M-S-v:在另一个窗格中向上滚动一屏(但光标还保留在当前窗格)
  • M-x make-frame:打开一个新窗口
  • M-x delete-frame:关闭当前窗口
  • C-z:挂起当前的窗口(相当于最小化当前的窗口)

文本编码

  • M-x describe-coding-system <RET>:查看当前缓冲区的编码格式
  • C-x <RET> r <TAB>:列出当前的所有编码
  • C-x <RET> f utf-8 <RET>:改变当前缓冲区的编码为utf-8

命令与函数操作

  • M-x [函数名] <RET>:执行一个函数
  • M-S-! [命令] <RET>:执行一个命令行命令
  • M-x shell <RET>:在一个新窗格中、当前目录位置打开命令行

一些常用操作

  • M-x goto-line <RET> [行号] <RET>:跳转到某一行,将其绑定到快捷键C-c j
;; 快速跳到某一行
(global-set-key (kbd "C-c j") 'goto-line)
  • M-x electric-pair-mode <RET>:打开括号配对模式

缓冲区

  • C-x C-b:在一个新窗格中列出当前所有的缓冲区
  • C-x b xxx <RET>:切换到名为xxx的缓冲区
  • C-x k xxx <RET>:关闭一个名为xxx的缓冲区(如果直接按回车,默认关闭的是当前缓冲区)
  • C-x s:一个个询问是否保存当前每个缓冲区的内容
  • M-x kill-some-buffers <RET>:一个个询问是否关闭当前打开的缓冲区
  • C-x <Left>:在多个缓冲区之间切换
  • C-x <Right>:在多个缓冲区之间切换

配置相关

  • C-x d S-~ <RET>:打开Emacs配置文件所在路径
  • C-h v load-path <RET>:查看Emacs的加载路径

帮助操作

  • C-h t:查看Emacs快速指南
  • C-h f:查看一个函数(命令)的帮助文档
  • C-h S-?M-x [help]:查看帮助
  • C-h c [命令序列]:显示命令序列对应的函数名
  • C-h k [命令序列]:显示命令序列的详细文档(打开一个新窗格)
  • C-h a [关键词]:打开一个新窗格列出所有含有此关键词的命令
  • C-h i:查看信息字典文档
  • C-h r:查看使用手册
  • C-h m:查看当前缓冲区的major mode和minor mode及其介绍
  • C-h b:查看和当前缓冲区绑定的快捷键列表
  • C-h v [变量名]:查看某个变量的值
  • C-h w [函数名]:查看某个函数绑定的快捷键
  • C-h i m [elisp] <RET>:查看elisp文档

命令行操作

以下操作都是在系统命令行中的操作:

  • emacs -nw -Q:在命令行中打开Emacs,-nw参数表示:no window-Q参数表示:不显示欢迎界面。在命令行打开Emacs后,各项操作和按键与在GUI窗口中是一致的

作者:m2fox
链接:https://www.jianshu.com/p/89b689a586b3
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

Emacs常用基本操作的更多相关文章

  1. [Emacs] 常用快捷键-- 生存指南

    Emacs 常用快捷键--生存指南 主要用来记录自己常用到的快捷键,记住这些快捷键可以保证你在Emacs中生存. 有可能不全,但是够用了(简单写文本). 保存和退出 使用 C-x C-s 保存文件. ...

  2. MatplotLib常用基本操作

    本文记录matlibplot常用基本操作,都是基本功能,不涉及复杂联合操作,其中各用法详细用法可参考官网: 1. 基本画图操作 ##mofan_matplotlib.pyplot import mat ...

  3. Emacs常用命令快速参考

    原文地址 Emacs常用命令的汇总,来自Emacs参考卡片 注意:以下命令中标注的按键,大写的C代表Control,在键盘上通常是Ctrl键,而M代表Meta,在键盘上通常是Alt键,S则代表Shif ...

  4. Emacs学习阶段小结-Emacs常用快捷键总结

    首先推荐一下Emacs自带的Emacs Tutorial,跟着这个做一边,两三个小时,基本的使用就能掌握了.之后的神教程就有很多了,比如<Sams.Teach.Yourself.Emacs.in ...

  5. emacs常用指令

    虽然平时用Dev,但考试的时候linux下没有Dev,只能用emacs了…… 这里记录一些我常用的指令和配置文件中的代码行. 指令: 1.c-x 1:只留一个窗口 2.c-x 2:分成上下两个窗口 3 ...

  6. emacs 常用命令

    C stands for Ctrl and M stands for Alt  REFERENCE FORM EMACS TUTORIAL 表述不一定正确,仅供参考,主要是要多实践,一开始可能会不习惯 ...

  7. 的vim和emacs常用配置记录

    因为经常改变工作环境,所以在这里记录一下我的.vimrc文件和.emacs文件的内容. vimrc的配置文件,主要是设置语法高亮,和tab键的宽度,个人喜欢设置为4个空格的分量. " set ...

  8. mysql常用基本操作

    mysql常用操作 查看都有哪些库 show databases; 查看某个库的表 use 库名; show tables; 查看表的字段 desc 表名; 当前是哪个用户 select user() ...

  9. Emacs常用命令汇总

    注意:以下命令中标注的按键,大写的C代表Control,在键盘上通常是Ctrl键,而M代表Meta,在键盘上通常是Alt键,S则代表Shift,在键盘上通常是Shift键,也就是 C Control ...

随机推荐

  1. ImportError: cannot import name cbook

    Faster RCNN训练的时候,出现错误: from matplotlib import path, transforms File , in <module> from . impor ...

  2. 如何使用 Git LFS 提交大文件?

    参考资料: An open source Git extension for versioning large files Git LFS的使用 如何使用 Git LFS 提交大文件? Git LFS ...

  3. js算法初窥05(算法模式02-动态规划与贪心算法)

    在前面的文章中(js算法初窥02(排序算法02-归并.快速以及堆排)我们学习了如何用分治法来实现归并排序,那么动态规划跟分治法有点类似,但是分治法是把问题分解成互相独立的子问题,最后组合它们的结果,而 ...

  4. BZOJ.1443.[JSOI2009]游戏Game(二分图博弈 匈牙利)

    题目链接 \(Description\) 一个\(N*M\)的有障碍的棋盘,先手放置棋子后,从后手开始轮流移动棋子,不能走重复的位置,不能移动的输.求在哪些位置放棋子是先手必胜的. \(Solutio ...

  5. 洛谷P1063 能量项链(区间DP)(环形DP)

    To 洛谷.1063 能量项链 题目描述 在Mars星球上,每个Mars人都随身佩带着一串能量项链.在项链上有N颗能量珠.能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数.并且,对于相邻的 ...

  6. 潭州课堂25班:Ph201805201 第十四课 异常,处理 (课堂笔记)

    程序难免会出现错误 : 语法错误 : 逻辑错误: AttributeError  -->>  试图访问一个对象没有的属性, IOError  ---->>  输入输出异常 In ...

  7. 20172302 《Java软件结构与数据结构》第三周学习总结

    2018年学习总结博客总目录:第一周 第二周 第三周 教材学习内容总结 第五章 队列 1.队列是一种线性集合,其元素从一端加入,从另一端删除:队列元素是按先进先出(FIFO(First in Firs ...

  8. 将文件打包成apk

    Android Studio的打包成apk文件 https://blog.csdn.net/woaichimahua/article/details/54427528

  9. Java容器:HashTable, synchronizedMap与ConcurrentHashMap

    首先需要明确的是,不管使用那种Map,都不能保证公共混合调用的线程安全,只能保证单条操作的线程安全,在这一点上各Map不存在优劣. 前文中简单说过HashTable和synchronizedMap,其 ...

  10. WTL中最简单的实现窗口拖动的方法(转)

    目前,很多基于对话框的应用程序中对话框都是不带框架的,也就是说对话框没有标题栏.众所周知,窗口的移动都是通过鼠标拖动窗口的标题栏来实现的,那么现在应用程序中的对话框没有了标题栏,用户如何移动对话框呢? ...