Emacs 编辑器

安装

centos

$ yum install emacs

Emacs 的操作

Emacs 的启动

emacs使用图形化界面编辑文件,并不使用类似于vim的命令行界面

打开emacs

$ emacs

通过emacs打开文件,文件不存在时,创建新文件:

$ emacs hello.txt

模式行是emacs界面倒数第二行。模式行显示状态信息。包括以下几个字段:

-:--- buf pos L# (Pattern)

  • 冒号后面的 3 个字符中前 2 个字符表示缓冲区中文本的状态。
    • --表示缓冲区未被编辑。
    • ** 表示缓冲区文本已经被修改。
    • %% 表示只读缓冲区中文本未被修改。
    • %* 表示只读缓冲区中文本已经被修改。
  • buf 显示窗口缓冲的名字,一般为文件名。
  • pos 可指示以下选项:
    • All 表示显示了整个文件
    • Top 表示显示了文件的开始部分
    • Bot 表示显示了文件的末尾部分
    • NN% 表示在窗口顶部以上的部分显示缓冲区文件的百分比。
  • L# 表示字母 L 后跟当前光标所在行的行号
  • (Pattern) 表示缓冲区中有效的模式。可用主模式包括:
    • Fundamental 模式
    • Text 模式
    • Lisp 模式
    • C 模式
    • 其他模式

emacs窗口的最后一行是回显行。提示符出现在该区域,用户可以在此输入信息,回显意味着用户输入的信息会在该行显示,但只有当用户输人暂停时,命令才会回显。命令执行完毕后,回显行会显示“done”。在命令执行过程中,若时间较长,会显示“..”的信息。如果命令不能执行,将会在回显行显示错误信息。在命令输人过程中,用户可以按Ctrl+G组合键退出。回显行也可用来读取命令的参数,比如要打开的文件名。当回显行被用作此类输入时,该行被称为小缓冲区。在这种情况下,回显行以提示字符串开头,后跟光标。

Emacs 的退出

  • 先按 Ctrl+X 组合键,再按 Ctrl+S 键 : 保存文件并退出 Emacs
  • 先按 Ctrl+X 组合键,再按 Ctrl+C 键 : 不保存文件退出 Emacs
  • 先按 Ctrl+X 组合键,再按 Ctrl+W 键 : 另存为文件

文件与缓冲区操作

缓冲区的实质是对打开的文件进行切换、保存和关闭等操作。当用户打开文件时,Emacs自动为其创建一个缓冲区,保存文件的内容,还可以对文件进行编辑。当用户打开下一个文件时,之前的文件仍存在Emacs中,但是只有一个Emacs显示为当前缓冲区。用户可以执行切换命令,切换到需要的缓冲区。一些关于文件和缓冲区的操作命令:

  • 先按 Ctrl+X 组合键,再按 Ctrl+F 键 : 搜索并打开文件(此时在回显行直接回车会列出当前目录所有文件,包括隐藏文件)
  • 先按 Ctrl+X 组合键,再按 Ctrl+V 键 : 打开另一个文件以替换当前打开的文件
  • 先按 Ctrl+X 组合键,再按 Ctrl+I 键 : 在光标所在处插入文件
  • 按组合键 Alt+X : 恢复自动保存的文件
  • 先按 Ctrl+X 组合键,再按 Ctrl+B 键 : 切换缓冲区
  • 先按 Ctrl+X 组合键,再按 Ctrl+S 键 : 保存缓冲区
  • 按 Ctrl+G 组合键 : 撤销命令

Emacs 的基本操作

光标的移动

Ctrl+F 将光标向前移动一个字符
Ctrl+B 将光标向后移动一个字符
Ctrl+P 将光标移动到上一行
Ctrl+N 将光标移动到下一行
Ctrl+A 将光标移到当前行的行首
Ctrl+E 将光标移到当前行的行尾
Ctrl+V 将光标向前移动一屏
Alt+V 将光标向后移动一屏
Alt+F 将光标向前移动一个单词
Alt+B 将光标向后移动一个单词
Alt+< 将光标移到文本开头
Alt+> 将光标移到文本末尾

删除

Backspace 删除光标前的一个字符
Ctrl+D 删除光标处的字符
Ctrl+X,再按 U 撤销上次修改
Alt+D 删除光标后的一个单词
Ctrl+K 删除从光标到该行行尾的所有字符
Ctrl+X,再按 Backspace 删除前一句
Ctrl+W 删除两个位置间的所有文本

重排

重排是对文本中的内容重新编辑,进行复制、粘贴和删除等一系列操作。选中的一段文字表示区域,区域的起点叫作标记。光标移动到的位置和标记之间就是区域。光标在文本中的位置叫作光标点。

Ctrl+空格键 在当前点位置设置标记
Ctrl+X,Ctrl+X 互换光标点和标记的位置,该命令可以用来显示标记的位置如,对于 xample.txt 文件,将光标移动到第 2 行首字母 T 上。Ctrl+空格键,在屏幕底部的回显行会显示信息“Mark set”。将光标移至文件末尾设置点,按组合键 Ctrl+X,Ctrl+X,互换光标点和标记,显示出标记的位置,确保设置了标记。按 Ctrl+W,删除选中的文本。被删除的文本放置在缓冲区内,可以重新插入文本的其他位
置。将光标放于第 2 行,按 Ctrl+Y 组合键,在光标位置插入被删除的文本

搜索和替换

Ctrl+S 向前递增搜索
Ctrl+R 向后递增搜索
替换命令需要提供两个参数:搜索字符串和替换字符串。每一个参数都以 Enter 键结束。
命令按键为:先按 Alt+Shift+5 组合键,然后输入要搜索的字符串,再按 Enter 键,Emacs
会提示输入要替换的字符串,输完按 Enter。

空格键或 Y 替换当前匹配并进入下一匹配处
Delete 键或 N 忽略此次匹配并进入到下一匹配处,(逗号)键 显示替换结果
Enter 键或 Q 直接退出
.(句号)键 替换当前匹配并退出
!键 直接替换剩下的所有匹配
^键 回到前一匹配处

大小写字母转换

将光标放在单词前
Alt+U 将整个单词转为大写
Alt+L 将整个单词转为小写
Alt+C 将首字母改为大写
Ctrl+X,Ctrl+U 将指定区域改为大写
Ctrl+X,Ctrl+L 将指定区域改为小写

帮助操作

Ctrl+H 调用 Emacs 的帮助

窗口操作

Ctrl+X,再按 2 将当前窗口水平分割为两个窗口
Ctrl+X,再按 3 将当前窗口垂直分割为两个窗口
Ctrl+X,再按> 向右滚动当前窗口
Ctrl+X,再按< 向左滚动当前窗口
Ctrl+X,再按 0 删除当前窗口
Ctrl+X,再按 O 将光标放在其他窗口上
Ctrl+X,再按 1 删除当前窗口外的所有窗口

Emacs 环境下编译并运行 C/C++程序

使用emacs的命令行模式

$ emacs -nw

先按 Ctrl+X,再 Ctrl+F,打开文件 test.c
Ctrl+X,Ctrl+S,保存文件
编译文件,Alt+X,输入“eshell”命令进入缓冲区
输入“gcc test.c -o test” 命令以编译源文件,并通过“./test”命令运行程序