一、emacs编辑器简介
emacs编辑器是由C语言和LISP语言编写的。LISP(链表处理语言)是由约翰·麦卡锡在1960年左右创造的一种基于λ演算的函数式编程语言。 我们可以使用LISP来扩展emacs,从而为emacs添加更多的命令。(补:emacs -nw:以命令行的方式来运行emacs,而不启动GUI界面)
* 自动保存功能
如果你已经修改了一个文件,但是还没来得及存盘你的计算机就了,那么你所做的修改就很可能会丢失。为了避免这样的不幸发生,Emacs 会定期将正在编辑的文件写入一个“自动保存”文件中。自动保存文件的文件名的头尾各有一个“#”字符,比如你正在编辑的文件叫“hello.c”,那么它 的自动保存文件就叫“#hello.c#”。这个文件会在正常存盘之后被 Emacs 删除。
所以,假如不幸真的发生了,你大可以从容地打开原来的文件(注意不是自动保存文件)然后输入 M-x recover file<Return> 来恢复你的自动保存文件。在提示确认的时候,输入 yes<Return>。
* 其他
- 当emacs失去响应时,C-g命令可用来结束纸条命令的执行。其功能相当于Shell中的Ctrl+C
- 有一些 Emacs 命令被“禁用”了,以避免初学者在不了解其确切功能的情况下误用而造成麻烦。如果你用到了一个被禁用的命令,Emacs 会显示一个提示消息,告诉你这个命令到底是干什么的,询问你是否要继续,并在得到你的肯定之后再执行这命令
二、emacs编辑器的界面
1. 编辑区
用来进行文本编辑的区域。
2. 回显区
如果 Emacs 发现你输入多字符命令的节奏很慢,它会在窗格的下方称为“回显区”的地方给你提示。回显区位于屏幕的最下面一行。
3. 状态栏
- 位于回显区正上方的一行被称为“状态栏”。状态栏最开头的星号(*)表示你已经对文字做过改动。刚刚打开的文件肯定没有被改动过,所以状态栏上显示的不是星号而是短线(-)。
- 状态栏中的小括号用来指明当前使用的编辑模式,默认是fundamental(主模式),emacs的主模式包括了文本模式以及编辑程序源码的Lisp模式等。
三、emacs所能提供的工作环境
- emacs可以执行Shell命令
- emacs可以作为Directory Editor(Dired)
- emacs可以编辑、编译以及调试程序
- emacs可以编辑其它主机上的文档
- emacs可以打印文件
- emacs具有年历(Calendar)以及日记功能
- emacs可以用来阅读man page和info文档
- emacs可以收发电子邮件
- emacs可以阅读网络上的电子布告栏(GNUS)
- emacs具有版本控制的功能(CVS)
- emacs可以提供娱乐环境(游戏功能)
emacs所提供的这些功能,都是先唤起代表此功能的模式(mode)。emacs的模式,分成主要模式(major mode)与次要模式(minor mode)。每一次只能使用一个主模式,而且主模式是必须要的。在一个主模式下,俄可以搭配一个以上的次要模式。使用次要模式相当于启用了该次要模式所对应的插件。
四、emacs命令
- emacs中的每一个命令都有一个命令名,命令名就是该命令所对应的LISP函数的函数名。在emacs中,我们可以为这些命令配置快捷键,从而达到快速调用命令的目的。
- .使用emacs来执行命令的方法有两种:(1).使用Ctrl键 (2).使用Meta键。所有emacs命令都可以用Meta键表示出来,键盘上如果没有Meta键,则可以用Alt键或ESC键来代替。常用的emacs命令通常会有一个快捷键与之相连。快捷键通常是以Ctrl来开头(C-x C-c)。如果要使用Meta键来表达与“Ctrl-x Ctrl-c”相同的效果,则使用“M-x save-buffers-kill-emacs”。使用Meta键,可以利用emacs的completion功能。使用emacs的completion功能的方法是将部分字符串键入后,再按下TAB、SPACE或?键即可。
(1).TAB键:尽可能将其的字填满。
(2).SPACE键:将分隔符(-)之前的字填满。
(3).?:将所有可能的completion选择都列出来。
- 由于emacs中所有的命令都有一个命令名(LISP函数的函数名),因此,我们可以使用“M-x 命令名”来调用emacs中的所有的命令。
* 基本光标控制
- C-v:向下翻屏,与PageDown效果相同(v-> vertical)
- M-v:向上翻屏,与PageUp效果相同
- C-l:重绘屏幕,并将光标所在行置于屏幕的中央
- C-b:光标向前移动一格(b->backward)
- C-f:光标向后移动一格(f->forward)
- C-p:光标向前移动一行(p->previous)
- C-n:光标向后移动一行(n->next)
- M-b:光标向前移动一个单词
- M-f:光标向后移动一个单词
- C-a:光标移动到行首
- C-e:光标移动到行尾
- M-<:光标移动到文章的开头(注意:“<”的输入要shift键,实际为Alt+Shift+<)
- M->:光标移动到文章的结尾
- C-u:给命令传递参数。例如:“C-u 2 C-d”表示删除两个字符
- M-x goto-line n RET:调到第n行
* 编辑命令
- C-d:删除光标后的一个字符
- C-k:删除从光标到行尾的字符(k->killl)
- C-x u:Undo(想要redo,随便输入一个字符,在Undo)
- C-SPC、C-@、M-x set-mark-command:设置mark
- C-x h:将整个缓冲区设置为区域
- C-w:将区域的文本删除,并放入yanking ring中。区域指的是从mark到point(光标所处的位置称为point)之间的文本
- M-w:复制区域到yanking ring中
- C-y:将yanking ring中最后一个区域插入当前缓冲区
- M-j:回车并且到下一行产生适当的缩进
- M-m:将光标移动到当前行的第一个非空白字符上
- M-;:产生通用注释
- M-x comment-region:把块注释掉
- M-x kill-comment:消除注释
* 查找与替换
- C-s:向后搜索,光标将停在第一个匹配的字符串处。再按一次C-s将继续搜索下一个匹配的字符串。如果要停止搜索,则使用C-g,此时光标将会回到搜索开始的位置
- C-r:向前搜索
- M-x replace-string:替换
* 文件操作
- C-x c-f:打开文件,如果文件不存在则创建
- C-x C-s:保存文件。第一次存盘时,emacs会将文件重命名来备份。重命令的规则通常是在原文件名后加上一个“~”字符。如果要关闭emacs的自动备份功能,使用 M-x customize-variable <Return> make-backup-files <Return>
- C-x C-w:将文件“另存为”
- C-x C-v:打开一个新文件,并关闭当前缓冲区
- C-x C-r:以只读的方式打开文件
- C-x i:将文件插入光标当前位置
* 缓冲区
- Emacs 把每个编辑中的文件都放在一个称为“缓冲区(buffer)”的地方。每打开一个文件,Emacs 就在其内部开辟一个缓冲区用来保存打开的文件的数据。ESC ESC ESC命令可以用来退出打开的小缓冲区,比如:命令提示窗格等
- C-x C-b 列出当前所有的缓冲区(b->buffer)
- C-x b 缓冲区名:切换到指定的缓冲区(例如:C-x b M<tab>:切换到以M开头的缓冲区)
- C-x s:保存emacs中所有的缓冲区(s->save)
- C-x right:切换到下一个缓冲区
- C-x left:切换到前一个缓冲区
- C-x C-c:退出emacs,并询问用户是否保存
- C-x k:关闭缓冲区
- C-z:将emacs挂起,然后回到Shell中,并不退出emacs。之后,我们可以使用%emacs或fg命令来回到emacs
* 窗口
Emacs 可以有多个窗格,每个窗格显示不同的文字。
- C-x 0:关闭光标所在的窗口
- C-x 1:保留光标所在的窗格,并将其扩大到整个屏幕,同时关掉所有其它的窗格
- C-x 2:水平分割当前窗口
- C-x 3:垂直分割当前窗口
- C-x o:在emacs的窗格中进行切换(o->other)
- C-M-v:滚动下方的窗格。一般在我们使用下方的窗格进行参考,而又不想将光标切换到下一个窗格时使用
* 使用帮助
- C-h c 快捷键:显示快捷键的简要说明
- C-h k 快捷键:显示快捷键所对应的命令名及其详细说明
- C-h a 关键字:显示包含有指定关键字的命令
- C-h i:查看Info文档
* 在emacs中运行shell命令
- M-! cmd RET:打开一个名为“*Shell Command Output*“的窗口,并把该命令的执行结果显示在其中。按下”C-x 1“组合键可以关闭这个窗口。由于Shell命令的输出是在一个编辑缓冲区里,因此我们可以对它进行编辑、保存等操作。
- M-| cmd RET:运行Shell命令,并使用编辑窗口中选定的区域作为该Shell命令的输入,然后可以选择是否用该Shell命令的输出来替换编辑窗口中选中的区域。
- C-u M-! cmd RET:执行一条Shell命令,并将其输出放到编辑区中光标所在的位置处,而不将其输出到”Shell Command Output“窗口。
- M-x shell:运行一个子Shell,该子Shell对应于emacs中的一个名为”*Shell*"的缓冲区,此后,我们就可以交互式的运行Shell命令了。
- M-x term:运行一个子Shell,该子Shell对应于emacs中的一个名为“*Terminal*”的缓冲区。使用该命令获得的子Shell是一个完整的Shell的模拟,与我们直接在Shell中操作没有什么差别。
- M-x eshell:运行emacs shell。该Shell为emacs自己实现的一个shell,而前面运行的shell都为系统中的shell程序(例如:/bin/csh等)。我们可以通过设置变量shell-file-name来设置emacs所使用的默认shell
* Dired功能
- emacs的Dired(Directory Editor)功能使emacs缓冲区能够用来显示目录列表,并可以用来进入目录的子目录。Dired缓冲区是只读的,不能够被修改。
- C-x d:进入Dired
* emacs配置文件
emacs配置文件通常位于计算机的 $HOME 目录,如果是 MS Windows (Windows 2000, Windows XP以上),默认是 c:\Documents and Settings\username\Application Data\,这个适用于 Emacs22 以上的版本。Emacs21 默认的 $HOME 目录在 C:\ 。当然也可以通过环境变量 $HOME 重新设置,总之在比较大众化的操作系统中,你都可以通过C-x C-f ~/.emacs 来编辑您的个性化配置文件。
;;显示时间
(display-time)
;;显示行号
(column-number-mode t)
(show-paren-mode t)
;;设置TAB宽度为4
(setq default-tab-width 4)
;;以下设置缩进
(setq c-indent-level 4)
(setq c-continued-statement-offset 4)
(setq c-brace-offset -4)
(setq c-argdecl-indent 4)
(setq c-label-offset -4)
(setq c-basic-offset 4)
(global-set-key "\C-m" 'reindent-then-newline-and-indent)
(setq indent-tabs-mode nil)
(setq standard-indent 4)
;;开启语法高亮。
(global-font-lock-mode 1)
;;设置默认工作目录
(setq default-directory "/home/test/source/")
;; 去掉滚动条
(set-scroll-bar-mode nil)
;;关闭开启画面
(setq inhibit-startup-message t)
(setq indent-tabs-mode t)
;;不产生备份文件
(setq make-backup-files nil)
;;设置自定义变量
(custom-set-variables
'(column-number-mode t)
'(current-language-environment "UTF-8")
'(display-time-mode t)
'(ecb-options-version "2.32")
'(mouse-1-click-in-non-selected-windows t)
'(mouse-drag-copy-region t)
'(mouse-yank-at-point t)
'(save-place t nil (saveplace))
'(show-paren-mode t)
'(transient-mark-mode t))
(custom-set-faces
;;选择小工具栏图标
(tool-bar-mode -1)
rectangle(列)模式编辑 和emacs shell(摘抄)
不敢独享,与大家分享。也可以在Emacs中用C-x C-h列出全部命令,查找C-x r c,所有列模式命令都是以C-x r开始的
C-x r C-@ point-to-register
C-x r SPC point-to-register
C-x r + increment-register
C-x r b bookmark-jump
C-x r c clear-rectangle
先用C-space或者C-@设一个mark,移动光标到另一点,使用C-x r c可以清楚mark到光标处的矩形区域,该区域留下空白。
C-x r d delete-rectangle
删除矩形区域,不留空白,后面的字符前移
C-x r f frame-configuration-to-register
C-x r g insert-register
C-x r i insert-register
将某个寄存器的内容插入某处
C-x r j jump-to-register
C-x r k kill-rectangle
就是剪切某个选定的矩形区域,用C-x r y可以贴上
C-x r l bookmark-bmenu-list
C-x r m bookmark-set
C-x r n number-to-register
C-x r o open-rectangle
在选定的矩形区域插入空白
C-x r r copy-rectangle-to-register
将选定的矩形区域复制到某个寄存器
C-x r s copy-to-register
C-x r t string-rectangle
在选定区域所有列前插入同样的字符
C-x r w window-configuration-to-register
C-x r x copy-to-register
C-x r y yank-rectangle
类似于矩形区域的粘贴,就是将刚用C-x r k剪切的矩形区域粘贴过来
C-x r C-SPC point-to-register
摘自:http://chandlewei.blogbus.com/logs/15583440.html
在 Emacs 里面同时打开多个 shell 会话:
通过重命名shell所在缓冲区的名字可以开启多个shell
E-x shell
E-x rename-buffer shellA
E-x shell
这时就开启了两个不相干的shell:shellA 和*shell*
也可以通过其他方式来开启shell,例如:
1. M-x eshell 开启Emacs Shell
2. M-x term 开启linux终端,可以指定你要的终端SHELL。但是这个可能会拦截你的EMACS命令。
整理你的屏幕:
通过C-c C-o可以清除上次命令的输出,特别是对于cat或dmesg这种产生大量输出的命令。
详细文章:http://www.ibm.com/developerworks/cn/aix/library/0811_yangbh_emacs2/index.html
文章来源:
http://x-spirit.spaces.live.com/Blog/cns!CC0B04AE126337C0!826.entry
分享到:
相关推荐
Emacs是一款强大的文本编辑器,深受程序员和高级用户喜爱,因其高度可定制性和丰富的扩展功能而闻名。这个压缩包包含了三本关于Emacs的重要书籍,旨在帮助用户从初识到熟练掌握这款工具。 《Survive in Emacs》是...
其它与 Emacs 相关的工作环境 与 Emacs 有关的议题 如何起动 Emacs 如何离开 Emacs EMACS 的萤幕安排 Emacs 的缓冲区与视窗 Emacs 的基本编辑指令 如何载入档案与储存档案 Emacs 的基础编辑指令 何谓 ...
4. **share**:这个目录包含了许多与Emacs相关的共享资源,如Lisp库、主题、帮助文档等。Lisp库是Emacs的核心,因为Emacs几乎所有的功能都是用Emacs Lisp语言编写和扩展的。在这里,你可以找到预定义的模式文件,...
在编写Python代码时,可能会有包含标准导入和注释模板。通过绑定快捷键或者在特定模式下触发,Emacs可以快速插入这些模板,减少手动输入的时间。 要使用这些模板,通常需要在`.emacs`中配置`yasnippet`或者`auto-...
标签 "源码 工具" 表明这个 .emacs 文件可能包含了一些与源代码编辑相关的工具和配置,比如语法高亮、自动补全、代码折叠等功能,这些对于开发人员来说非常有用。 压缩包内的文件名称 "markdown-mode.el" 和 ...
### Emacs用户手册中文版知识点概览 #### 一、Emacs简介与发展史 - **GNU与Emacs**:Emacs是GNU项目的一部分,由Richard Stallman于1975年在MIT创立的Free Software Foundation (FSF)发起。GNU旨在创建一个完全...
### Emacs多年使用总结 #### 一、第三方扩展...以上就是Emacs的一些高级功能和使用技巧的总结。Emacs的强大之处在于其高度的可定制性和丰富的插件生态系统,通过学习和掌握这些功能,可以大大提高编程和写作的效率。
在Emacs 26.1中,有一些显著的更新和改进: 1. **性能提升**:新版本通常会带来性能的优化,Emacs 26.1也不例外。它可能包括更快的启动速度、更流畅的操作体验,以及对大文件处理的优化。 2. **新功能与改进**:每...
以下是一些常见的安装步骤: 1. **使用包管理器安装**: - 对于基于Debian的系统(如Ubuntu): ``` sudo apt update sudo apt install emacs ``` - 对于基于Red Hat的系统(如CentOS): ``` sudo yum ...
Emacs是一款强大的文本编辑器,尤其受到程序员和高级用户的喜爱,因为它提供了丰富的功能和高度的可定制性。作为一款“好用的代码剪辑软件”,Emacs不仅支持编写各种编程语言,还具备代码高亮、自动补全、语法检查、...
### Emacs使用详解 #### 一、Emacs简介 Emacs是一种功能极其强大的文本编辑器,在Unix和类Unix系统(如Linux)中广泛使用。对于熟悉它的用户来说,Emacs不仅是一个简单的文本编辑器,更是一个完整的开发环境。由于...
Emacs是一款强大的文本编辑器,深受程序员和程序员爱好者们的喜爱,因其高度可定制性和丰富的扩展功能而闻名。本文将深入探讨Emacs的配置与插件使用,帮助新手快速上手。 首先,我们要明白Emacs的基本配置是提升其...
然而,网络上流传的`emacs.d`配置包可能并不完整,可能会缺少一些必要的文件,导致初学者在导入这些配置时遇到问题。这可能是由于每个人的Emacs环境和需求不同,他们可能只包含了对自己工作流程至关重要的部分。 这...
《Survive in Emacs》是为初学者准备的一份详尽的Emacs编辑器入门指南,旨在帮助用户快速熟悉并掌握这款强大的开源文本编辑器。Emacs不仅是一个编辑器,更是一个功能丰富的集成开发环境(IDE),它提供了丰富的...
在压缩包文件名称列表中,`my-site-start.d`和`site-lisp`是两个可能与Emacs配置相关的目录或文件。`my-site-start.d`可能是用户自定义的启动脚本目录,Emacs在启动时会遍历该目录下的所有Lisp文件并执行,这允许...
emacs 教程 Writing GNU Emacs Extensions pdf
4. `Projectile`: 该项目管理工具允许用户快速在项目文件之间切换,查找文件,执行项目相关的命令,如编译、测试等,是提高多文件项目开发效率的好帮手。 除了这些核心组件,还可以安装其他插件以增强Emacs的功能。...
为了提升效率,推荐安装和配置一些常用的Emacs插件。比如,` Projectile` 是一个项目管理工具,能帮你轻松导航项目中的文件;`Org-Mode` 是一个强大的组织和笔记系统,可以用来规划任务、做笔记甚至创建幻灯片;`...
- **示例配置**:压缩包可能提供了一些预设的配置文件,供用户参考和修改。 - **自动加载**:配置文件中可以设置插件的自动加载,使Emacs启动后立即具备所需功能。 5. **Emacs社区与资源** - **MELPA** 和 **...