Emacs常用基本操作
按键约定
组合按键
Emacs中大量的按键操作都是各式各样的组合按键(快捷键),下面是几种通常的约定:
Ctrl
键:表示为C
Alt
键:表示为M
Shift
键:表示为S
- 组合按键:比如向下移动一行的组合按键是
Ctrl+n
,就表示为:C-n
,其含义表示同时按下键盘上的Ctrl
和n
键。
按键顺序
有时候用多个组合按键来表示一种操作,比如以下按键序列:C-x C-f [文件路径] <RET>
就表示打开文件
的操作,它表示这样的操作含义:先同时按下Ctrl
和x
键,然后松开,紧接着马上再同时按下Ctrl
和f
键,然后再松开,然后在下方的输入栏中输入文件路径,输入完之后按回车键(用<RET>
表示),最后就打开了一个文件。
还有一种按键顺序:C-x o
,表示切换到另外一个缓冲区,它是这样一组按键:先同时按下Ctrl
和x
键,然后松开,然后紧接着按字母o
键。
还有另外一种按键顺序,比如以下按键序列:C-u [10] C-p
,就表示这样的操作含义:先同时按下Ctrl
和u
键,然后松开,然后依次按1
和0
键,然后松开,最后再同时按Ctrl
和p
键。这组按键达到的效果就是把光标从当前位置往上移动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常用基本操作的更多相关文章
- [Emacs] 常用快捷键-- 生存指南
Emacs 常用快捷键--生存指南 主要用来记录自己常用到的快捷键,记住这些快捷键可以保证你在Emacs中生存. 有可能不全,但是够用了(简单写文本). 保存和退出 使用 C-x C-s 保存文件. ...
- MatplotLib常用基本操作
本文记录matlibplot常用基本操作,都是基本功能,不涉及复杂联合操作,其中各用法详细用法可参考官网: 1. 基本画图操作 ##mofan_matplotlib.pyplot import mat ...
- Emacs常用命令快速参考
原文地址 Emacs常用命令的汇总,来自Emacs参考卡片 注意:以下命令中标注的按键,大写的C代表Control,在键盘上通常是Ctrl键,而M代表Meta,在键盘上通常是Alt键,S则代表Shif ...
- Emacs学习阶段小结-Emacs常用快捷键总结
首先推荐一下Emacs自带的Emacs Tutorial,跟着这个做一边,两三个小时,基本的使用就能掌握了.之后的神教程就有很多了,比如<Sams.Teach.Yourself.Emacs.in ...
- emacs常用指令
虽然平时用Dev,但考试的时候linux下没有Dev,只能用emacs了…… 这里记录一些我常用的指令和配置文件中的代码行. 指令: 1.c-x 1:只留一个窗口 2.c-x 2:分成上下两个窗口 3 ...
- emacs 常用命令
C stands for Ctrl and M stands for Alt REFERENCE FORM EMACS TUTORIAL 表述不一定正确,仅供参考,主要是要多实践,一开始可能会不习惯 ...
- 的vim和emacs常用配置记录
因为经常改变工作环境,所以在这里记录一下我的.vimrc文件和.emacs文件的内容. vimrc的配置文件,主要是设置语法高亮,和tab键的宽度,个人喜欢设置为4个空格的分量. " set ...
- mysql常用基本操作
mysql常用操作 查看都有哪些库 show databases; 查看某个库的表 use 库名; show tables; 查看表的字段 desc 表名; 当前是哪个用户 select user() ...
- Emacs常用命令汇总
注意:以下命令中标注的按键,大写的C代表Control,在键盘上通常是Ctrl键,而M代表Meta,在键盘上通常是Alt键,S则代表Shift,在键盘上通常是Shift键,也就是 C Control ...
随机推荐
- 洛谷 [P1024]一元三次方程求解【二分答案】
题目链接:https://www.luogu.org/problemnew/show/P1024 题目描述 有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程.给出该方程中各项的系数(a,b ...
- 一些数学上的概念理解(持续更新qwq)
致敬百度百科qwq 本文摘自百度百科,只是对于信竞范围内的知识做一个小总结qwq,持续更新ing··· 满射: 如果每个可能的像至少有一个变量映射其上(即像集合B中的每个元素在A中都有一个或一个以上的 ...
- spring的i o c简单回顾
1.springIOC是一个创建对象的容器,他负责将我们需要的对象帮我们创建出来,创建时间是:当我们从上下文环境中读取此对象时就会帮我们创建,严格意义上来讲它是一种编程思想不是一种技术. 2.依赖注入 ...
- BZOJ.1901.Dynamic Rankings(线段树套平衡树 Splay)
题目链接or Here 题意:n个数,有两个操作:1.修改某个数为v:2.询问一段区间第k小的数 如果没有修改,则可以用线段树,每个节点P[a,b]存储大小为b-a+1的数组,代表其中的数 同时,这个 ...
- BZOJ.4530.[BJOI2014]大融合(LCT)
题目链接 BZOJ 洛谷 详见这 很明显题目是要求去掉一条边后两边子树sz[]的乘积. LCT维护的是链的信息,那么子树呢? 我们用s_i[x]来记录轻边连向x的子树的和(记作虚儿子),那么sum[x ...
- 使用time模块,转化时间格式
import time ''' 时间戳:表示1970年开始计算的偏移量.我们运用type(时间戳)是float类型 结构化时间:9个元素组成的数组 格式化时间字符串 ''' '''获取当前时间戳''' ...
- Cocos Creator 的Hello World
1,创建项目[参考来源:官方文档] 在 Dashboard 中,打开 新建项目 选项卡,选中 Hello World 项目模板. 然后在项目路径栏中指定一个新项目存放路径,路径的最后一部分就是项目文件 ...
- Unity 4.0 中的新动画系统——MecAnim
分享一个文档资料,关于动画系统的,版本应该很老了,但是有借鉴意义的: Unity 4.0 已于 2012 年 11 月 15 日正式发布,Unity 每一次版本的提升,都给游戏开发者带来惊喜,这一次也 ...
- [原创]Java性能优化权威指南读书思维导图4
[原创]Java性能优化权威指南读书思维导图4
- Java知识回顾 (5)数组、日期与时间, StringBuffer和StringBuilder
一.数组 数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同. dataType[] arrayRefVar; // 首选的方法 或 dataType arra ...