Emacs Tutorial 学习

一、启动学习手册
1)进入Emacs,Help -> Emacs Tutorial
2)进入Emacs,C-h t

二、学习备忘
1)页面浏览快捷键

C-v     向前移动一屏
M-v     向后移动一屏
C-l     重绘屏幕,并将光标所在行置于屏幕的中央(是 CONTROL-L,不是 CONTROL-1)

2)光标移动快捷键

F 代表 forward(前进)B 代表 backward(回退)N 代表 next(下一行)P 代表 previous(上一行)

C-f     向右移动一个字符
C-b     向左移动一个字符
M-f     向右移动一个词【对中文是移动到下一个标点符号】
M-b     向左移动一个词【对中文是移动到上一个标点符号】

C-n     移动到下一行
C-p     移动到上一行
C-a     移动到行首
C-e     移动到行尾

M-a     移动到句首
M-e     移动到句尾

M-< 移到文件头

M-> 移到文件尾

3)前缀参数的使用
大部分的 Emacs 命令接受数字参数,并且对于多数命令而言,这些数字参数的作用是指定命令的重复次数。为一个命令指定数字参数(也就是重复次数)的方法是:先输入 C-u,然后输入数字作为参数,最后再输入命令。这种数字参数也称为
“前缀参数”,意思是说这个参数是先于使用它的命令而输入的。如下示:

C-u 8 C-f 会向前移动 8 个字符

注意: C-v 和 M-v 则属于另一种类型的例外。当给定一个参数时,它们将滚动你指定的“行数”,而不是“屏数”。举例来说,C-u 8 C-v 将屏幕向下滚动 8 行,而不是 8 屏。

4)在 EMACS 失去响应的时候解决方法
如果 Emacs 对你的命令失去响应,你可以用

C-g

来安全地终止这条命令。
C-g也可以终止一条执行过久的命令。
C-g 还可以取消数字参数和只输入到一半的命令。

5)命令解释

C-h k

后面再接想要解释的命令 比如

C-h k C-f

6)空格操作
Emacs 可以有多个窗格,每个窗格显示不同的文字。

C-x 1   只保留一个窗格(也就是关掉其它所有窗格)

7)删除(delete)和移除(kill)操作

<Delback>    删除光标前的一个字符
C-d              删除光标后的一个字符

M-<Delback>  移除光标前的一个词
M-d               移除光标后的一个词

C-k          移除从光标到“行尾”间的字符
M-k          移除从光标到“句尾”间的字符

删除区域内容
首先把光标移动到你想要移除的区域的一端,然后按

C[email protected] 或 C-SPC

(任一即可,SPC指空格)【注意,C-SPC 往往被中文用户设定成输入法热键,如果这样,C-SPC 就被系统拦截而无
法传递给 Emacs 了,因此这里还是推荐使用[email protected]。】,然后将光标移动到另一端,再按

C-w

就可以把位于这两点之间的所有文字移除了。

8)移除(kill)和删除(delete)的区别
“移除(kill)”和“删除(delete)”的不同在于被移除的东西可以找回来,而被删除的就不行了。
【实际上,移除掉的东西虽然看起来“消失”了,但实际上被 Emacs 记录了下来,因此还可以找回来;而删除掉的东西虽然也可能还在内存里,但是已经被
Emacs“抛弃”了,所以就找不回来了。】重新插入被移除的文字称为“召回(yank)”。一般而言,那些可能消除很多文字的命令会把消除掉的文字记录
下来(它们被设定成了“可召回”),而那些只消除一个字符
或者只消除空白的命令就不会记录被消除的内容(自然你也就无法召回了)。

9)召回(yanking)
召回的命令是

C-y

M-y

它会在光标所在处插入你最后移除的文字。
如果你一次连按了好几下 C-k,那么所有被移除的行会被存储在一起,只要一个C-y 就可以把它们都召回。

C-y
可以召回最近一次移除的内容,那如何召回前几次移除的内容呢?它们当然没有丢,你可以用 M-y 来召回它们。在用 C-y
召回最近移除的文字之后,紧接着再按 M-y 就可以召回再前一次被移除的内容,再按一次 M-y 又可以召回再上一次的……连续使用 M-y
直到找到你想要召回的东西,然后什么也不用做,继续编辑就行了。
如果连续按 M-y 很多次,你可能会回到起始点,也就是最近移除的文字。
【这实际上是一个环。】

10)撤销(UNDO)

C-x u

11)文件操作

C-x C-f   寻找一个文件

C-x C-s 储存这个文件

12)缓冲区(BUFFER)
Emacs 把每个编辑中的文件都放在一个称为“缓冲区(buffer)”的地方。每寻找到一个文件,Emacs 就在其内部开辟一个缓冲区。用下面的命令可以列出当前所有的缓冲区:

C-x C-b   列出缓冲区

不管存在多少缓冲区,任何时候都只能有一个“当前”缓冲区,也就是你正在编辑的这个。如果你想编辑其它的缓冲区,就必须“切换”过去。上面讲过,用

C-x C-f

是一种办法。不过还有一个更简单的办法,那就是用

C-x b

这条命令,你必须输入缓冲区的名称。

如果有多个缓冲区都需要保存的话,使用下面命令

C-x s   保存多个缓冲区

13)命令集扩展
Emacs 的命令就像天上的星星,数也数不清。把它们都对应到 CONTROL 和 META组合键上显然是不可能的。Emacs 用扩展(eXtend)命令来解决这个问题,扩展命令有两种风格:

C-x     字符扩展。  C-x 之后输入另一个字符或者组合键。
M-x     命令名扩展。M-x 之后输入一个命令名。

14)shell中挂起emacs
C-z 会把 Emacs“挂起”,也就是说,它会回到 shell但不退出 Emacs。在常用的 shell 中,通常可以用“fg”或者“%emacs”命令再
次回到 Emacs 中。

15)字符串替换的快速输入

M-x repl s<Return>

16)自动保存及崩溃恢复
自动保存文件的文件名的头尾各有一个“#”字符,比如你正在编辑的文件叫“hello.c”,那么它的自动保存文件就叫“#hello.c#”。这个文件会在正常存盘之后被 Emacs 删除。
一旦系统崩溃
重启系统后,打开原来的文件 如 hello.c,然后输入

M-x recover file<Return>

来恢复你的自动保存文件。

17) 回显区(ECHO AREA)
回显区位于屏幕的最下面一行。

18) 状态栏(MODE LINE)
位于回显区正上方的一行被称为“状态栏”。状态栏上会显示一些信息,比如:
--:**  TUTORIAL.cn       (Fundamental)--L670--54%----------------

19)主模式
Emacs 的主模式林林总总。有用来编辑程序代码的――比如 Lisp 模式;也有用来编辑各种自然语言文本的――比如 Text 模式。任何情况下只能应用一个主模式,其名称会显示在状态栏上,也就是现在显示“Fundamental”的地方。
主模式通常会改变一些命令的行为。比方说,不管编辑什么语言的程序代码,你都可以用一个相同的命令来添加注释。但是在不同的语言中注释的语法往往是不同的,这时不同的主模式就会用各自不同的语法规则来添加注释。主模式都是可
以用 M-x 启动的扩展命令,

M-x fundamental-mode

就可以切换到 Fundamental模式。

20)搜索

C-s 向前搜索
C-r 向后搜索

在 一次渐进式搜索中,Emacs 会尝试跳到搜索目标出现的位置。要跳到下一个命中位置,就再按一次 C-s。如果找不到目标,Emacs 会发出“哔”的一声,告诉你搜索失败。在整个过程中,都可以用 C-g 来终止搜索。【你会发现 C-g 会让光标回到搜索开始的位置,而 <Return> 则让光标留在搜索结果上,这是很有用的功能。】

21)多窗格操作

C-x 2        将屏幕划分成两个窗格且光标在上一个窗格中
 C-M-v       向下滚动下方的窗格
 C-M-S-v   向上滚动下方的窗格

C-x o 将光标移到其它窗格,连续使用可以遍历所有窗格

C-x 1 只保留当前在编辑的窗格

22)最通用的离开命令

ESC ESC ESC 离开

时间: 2024-10-10 01:07:08

Emacs Tutorial 学习的相关文章

emacs 新手笔记(一) —— 阅读【emacs tutorial】

[emacs tutorial]是熟悉 emacs 的入门资料.一共几十个命令,不需硬记,勤练即可. 翻页命令: C-v:向前移动一屏 M-v:向后移动一屏 C-l:重绘屏幕,并将光标所在行置于屏幕的中央 光标控制: C-n:移动到下一行(next) C-p:移动到上一行(previous) C-f:向右移动一个字符(forward) C-b:向左移动一个字符(backward) M-f:向右移动一个词[对中文是移动到下一个标点符号] M-b:向左移动一个词[对中文是移动到上一个标点符号] C-

FFmpeg的tutorial 学习

一.前言: 这是一个学习 FFmpeg 的 tutorial 系列. 这个是一个对初学者比较友好的FFmpeg学习教程,作者一步步引导我们实现了一个音视频同步的播放器. 参考链接: 原文地址: http://dranger.com/ffmpeg/ 比较新的代码Github地址: https://github.com/mpenkov/ffmpeg-tutorial 中文博客参考地址: http://blog.csdn.net/liujiakunit/article/details/46899229

Django 1.7 Tutorial 学习笔记

官方教程在这里 : Here 写在前面的废话:)) 以前学习新东西,第一想到的是找本入门教程,按照书上做一遍.现在看了各种网上的入门教程后,我觉得还是看官方Tutorial靠谱.书的弊端一说一大推 本文不是对Tutorial的翻译,只是写下一些想法: 我是为了开发自己的网站而学习的django的(www.liuruiqi.me),Digital Ocean默认使用postgresql数据库,所以首先安装: sudo apt-get install postgresql sudo apt-get

深度学习 Deep Learning UFLDL 最新 Tutorial 学习笔记 1:Linear Regression

1 前言 Andrew Ng的UFLDL在2014年9月底更新了! 对于开始研究Deep Learning的童鞋们来说这真的是极大的好消息! 新的Tutorial相比旧的Tutorial增加了Convolutional Neural Network的内容,了解的童鞋都知道CNN在Computer Vision的重大影响.并且从新编排了内容及exercises. 新的UFLDL网址为: http://ufldl.stanford.edu/tutorial/ 2 Linear Regression

Python Tutorial 学习(四)--More Control Flow Tools

4.1 if 表达式 作为最为人熟知的if.你肯定对这样的一些表达式不感到陌生: >>> x = int(raw_input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: ... x = 0 ... print 'Negative changed to zero' ... elif x == 0: ... print 'Zero' ... elif

Python Tutorial 学习(六)--Modules

6. Modules 当你退出Python的shell模式然后又重新进入的时候,之前定义的变量,函数等都会没有了. 因此, 推荐的做法是将这些东西写入文件,并在适当的时候调用获取他们. 这就是为人所知的脚本文件. 随着编程的深入,代码的增多,你可能又会将代码存到不同的文件中方便管理. 你会想到去使用之前的编程中已经写好了的一个函数的定义. Python有自己的方式去实现这些.它会将这些保存了定义的函数,类等的文件(文件夹)称作module; 一个module中的定义的函数 类等可以被导入到另一个

深度学习 Deep Learning UFLDL 最新Tutorial 学习笔记 5:Softmax Regression

Softmax Regression Tutorial地址:http://ufldl.stanford.edu/tutorial/supervised/SoftmaxRegression/ 从本节开始,难度开始加大了,我将更详细地解释一下这个Tutorial. 1 Softmax Regression 介绍 前面我们已经知道了Logistic Regression,简单的说就判断一个样本属于1或者0,在应用中比如手的识别,那么就是判断一个图片是手还是非手.这就是很简单的分类.事实上,我们只要把L

emacs快捷键学习(一)--Linux最强大的编辑器

emacs是一个很强大的编辑器.常用的快捷键总结如下: 退出emacs:ctrl+x ctrl+c 移动到下一屏:ctrl+v 移动到上一屏:alt+v 将光标所在行移动到屏幕中间:ctrl+l 将光标移动到上一行:ctrl+p(previous) 将光标移动到下一行:ctrl+n(next) 将光标右移:ctrl+f(forward) 将光标左移:ctrl+b(backward) 将光标移动到下一个词:alt+f(forward) 对于中文文档则是移动到下一个标点符号 将光标移动到上一个词:a

Python Tutorial 学习(一)--Whetting Your Appetite

Whetting Your Appetite [吊你的胃口]... 这里就直接原文奉上了... If you do much work on computers, eventually you find that there’s some task you’d like to automate. For example, you may wish to perform a search-and-replace over a large number of text files, or renam