热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Emacs常用基本操作

按键约定组合按键Emacs中大量的按键操作都是各式各样的组合按键(快捷键),下面是几种通常的约定:Ctrl键:表示为CAlt键:表示为MShift键:表示为S组合按键:比如向下移动


按键约定

组合按键

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



  • Ctrl键:表示为C

  • Alt键:表示为M

  • Shift键:表示为S

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


按键顺序

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

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

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


特殊按键



  • 表示输入内容,用方括号括起来:[输入的内容]

  • 表示回车键:

  • 表示其他键:比如表示退格键(删除键),表示删除键,表示TAB键,表示左箭头键,表示右箭头键,表示上箭头键,表示下箭头键,表示F5键。


Quick Start

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



  • C-x C-f [文件路径] :打开一个文件

  • C-n:将光标向下移动一行

  • C-p:将光标向上移动一行

  • C-g:取消之前的按键(将会成为最常用的按键之一)

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

  • C-x C-c:退出Emacs


常用操作分类汇总

文件操作



  • C-x C-f [文件路径] :打开一个文件

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

  • C-x 4 f [文件路径] :在一个新的窗格(缓冲区)中打开文件

  • C-x 5 f [文件路径] :在一个新的窗口中打开文件


移动操作



  • 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),用于重做上次的撤销动作(撤销之后后悔了,想恢复重做)

  • :删除当前光标前的一个字符

  • C-:删除当前光标前的一个单词

  • C-d:删除当前光标后的一个字符

  • M-:剪切当前光标前的一个字符到剪贴板

  • M-d:剪切当前光标后的一个字符到剪贴板

  • C-k:剪切从光标到行尾的字符到剪贴板

  • C-y:粘贴剪贴板中的文本到当前光标位置

  • M-w:复制当前选中的字符

  • C-w:剪切当前选择的字符到剪贴板

  • C-a C-k:剪切一整行到剪贴板中,其实也可以用于删除一整行

  • C-e :在当前行下方插入一空行

  • 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 :查看当前缓冲区的编码格式

  • C-x r :列出当前的所有编码

  • C-x f utf-8 :改变当前缓冲区的编码为utf-8


命令与函数操作



  • M-x [函数名] :执行一个函数

  • M-S-! [命令] :执行一个命令行命令

  • M-x shell :在一个新窗格中、当前目录位置打开命令行


一些常用操作



  • M-x goto-line [行号] :跳转到某一行,将其绑定到快捷键C-c j

;; 快速跳到某一行
(global-set-key (kbd "C-c j") 'goto-line)


  • M-x electric-pair-mode :打开括号配对模式


缓冲区



  • C-x C-b:在一个新窗格中列出当前所有的缓冲区

  • C-x b xxx :切换到名为xxx的缓冲区

  • C-x k xxx :关闭一个名为xxx的缓冲区(如果直接按回车,默认关闭的是当前缓冲区)

  • C-x s:一个个询问是否保存当前每个缓冲区的内容

  • M-x kill-some-buffers :一个个询问是否关闭当前打开的缓冲区

  • C-x :在多个缓冲区之间切换

  • C-x :在多个缓冲区之间切换


配置相关



  • C-x d S-~ :打开Emacs配置文件所在路径

  • C-h v load-path :查看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] :查看elisp文档


命令行操作

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



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




作者:m2fox
链接:https://www.jianshu.com/p/89b689a586b3
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
推荐阅读
  • Python与R语言在功能和应用场景上各有优势。尽管R语言在统计分析和数据可视化方面具有更强的专业性,但Python作为一种通用编程语言,适用于更广泛的领域,包括Web开发、自动化脚本和机器学习等。对于初学者而言,Python的学习曲线更为平缓,上手更加容易。此外,Python拥有庞大的社区支持和丰富的第三方库,使其在实际应用中更具灵活性和扩展性。 ... [详细]
  • 结语 | 《探索二进制世界:软件安全与逆向分析》读书笔记:深入理解二进制代码的逆向工程方法
    结语 | 《探索二进制世界:软件安全与逆向分析》读书笔记:深入理解二进制代码的逆向工程方法 ... [详细]
  • 提升工作效率:掌握这些技巧,IDEA 使用效率翻倍 | IDEA 高效操作指南
    提升工作效率:掌握这些技巧,IDEA 使用效率翻倍 | IDEA 高效操作指南 ... [详细]
  • 本文详细介绍了在 Python 中使用 OpenCV 进行图像处理的各种方法和技巧,重点讲解了腐蚀(erode)和膨胀(dilate)操作,以及开运算和闭运算的应用。腐蚀操作可以去除前景物体的边缘部分,而膨胀操作则可以扩展前景物体的边界。开运算和闭运算则是结合这两种基本操作,用于消除图像中的噪声和填充空洞,提高图像处理的效果。通过具体的代码示例和实际应用案例,读者可以深入理解这些技术在图像处理中的重要作用。 ... [详细]
  • 基于Node.js的高性能实时消息推送系统通过集成Socket.IO和Express框架,实现了高效的高并发消息转发功能。该系统能够支持大量用户同时在线,并确保消息的实时性和可靠性,适用于需要即时通信的应用场景。 ... [详细]
  • 本文介绍了使用 Python 编程语言高效抓取微博文本和动态网页图像数据的方法。通过详细的示例代码,展示了如何利用爬虫技术获取微博内容和动态图片,为数据采集和分析提供了实用的技术支持。对于对网络数据抓取感兴趣的读者,本文具有较高的参考价值。 ... [详细]
  • Python网络爬虫入门:利用urllib库进行数据抓取
    Python网络爬虫入门:利用urllib库进行数据抓取在数据科学和Web开发领域,Python凭借其简洁高效的特性成为首选语言。本文主要介绍了如何在Windows环境下使用Python的urllib库进行基本的网络数据抓取。考虑到命令行操作的不便,作者选择了Jupyter Notebook作为开发环境,不仅简化了配置过程,还提供了直观的数据处理和可视化功能。通过实例演示,读者可以轻松掌握urllib的基本用法,为深入学习网络爬虫技术打下坚实基础。 ... [详细]
  • Java 零基础入门:SQL Server 学习笔记(第21篇)
    Java 零基础入门:SQL Server 学习笔记(第21篇) ... [详细]
  • 可转债数据智能抓取与分析平台优化
    本项目旨在优化可转债数据的智能抓取与分析平台。通过爬取集思录上的可转债信息(排除已发布赎回的债券),并结合安道全教授提出的三条安全线投资策略,新增了建仓线、加仓线和重仓线,以提供更精准的投资建议。 ... [详细]
  • voc生成xml 代码
    目录 lxmlwindows安装 读取示例 可视化 生成示例 上面是代码,下面有调用示例 api调用代码,其实只有几行:这个生成代码也很简 ... [详细]
  • 如何构建和部署C# Windows服务应用程序
    本文介绍了如何从零开始构建和部署C# Windows服务应用程序。通过详细步骤和代码示例,帮助读者掌握创建、配置和部署Windows服务的关键技术点,适合初学者和有经验的开发人员参考。 ... [详细]
  • 在Android平台上利用FFmpeg的Swscale组件实现YUV与RGB格式互转
    本文探讨了在Android平台上利用FFmpeg的Swscale组件实现YUV与RGB格式互转的技术细节。通过详细分析Swscale的工作原理和实际应用,展示了如何在Android环境中高效地进行图像格式转换。此外,还介绍了FFmpeg的全平台编译过程,包括x264和fdk-aac的集成,并在Ubuntu系统中配置Nginx和Nginx-RTMP-Module以支持直播推流服务。这些技术的结合为音视频处理提供了强大的支持。 ... [详细]
  • MySQL性能优化与调参指南【数据库管理】
    本文详细探讨了MySQL数据库的性能优化与参数调整技巧,旨在帮助数据库管理员和开发人员提升系统的运行效率。内容涵盖索引优化、查询优化、配置参数调整等方面,结合实际案例进行深入分析,提供实用的操作建议。此外,还介绍了常见的性能监控工具和方法,助力读者全面掌握MySQL性能优化的核心技能。 ... [详细]
  • 技术日志:深入探讨Spark Streaming与Spark SQL的融合应用
    技术日志:深入探讨Spark Streaming与Spark SQL的融合应用 ... [详细]
  • 本文深入探讨了IO复用技术的原理与实现,重点分析了其在解决C10K问题中的关键作用。IO复用技术允许单个进程同时管理多个IO对象,如文件、套接字和管道等,通过系统调用如`select`、`poll`和`epoll`,高效地处理大量并发连接。文章详细介绍了这些技术的工作机制,并结合实际案例,展示了它们在高并发场景下的应用效果。 ... [详细]
author-avatar
阿日小子很顽强_756
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有