emacs的简单使用和配置

emacs的使用

Ted posted @ 2008年9月16日 22:35 in emacs with tags emacs , 5455 阅读html

1、emacs编辑器简介

     emacs编辑器是由C语言和LISP语言编写的。LISP(链表处理语言)是由约翰·麦卡锡在1960年左右创造的一种基于λ演算的函数式编程语言。 咱们可使用LISP来扩展emacs,从而为emacs添加更多的命令。(补:emacs -nw:以命令行的方式来运行emacs,而不启动GUI界面)git



* 自动保存功能

      若是你已经修改了一个文件,可是还没来得及存盘你的计算机就罢工了,那么你所作的修改就极可能会丢失。为了不这样的不幸发生,Emacs 会按期将正在编辑的文件写入一个“自动保存”文件中。自动保存文件的文件名的头尾各有一个“#”字符,好比你正在编辑的文件叫“hello.c”,那么它 的自动保存文件就叫“#hello.c#”。这个文件会在正常存盘以后被 Emacs 删除。
      因此,假如不幸真的发生了,你大能够从容地打开原来的文件(注意不是自动保存文件)而后输入 M-x recover file<Return> 来恢复你的自动保存文件。在提示确认的时候,输入 yes<Return>。github


* 其余shell

  1. 当emacs失去响应时,C-g命令可用来结束纸条命令的执行。其功能至关于Shell中的Ctrl+C编程

  2. 有一些 Emacs 命令被“禁用”了,以免初学者在不了解其确切功能的状况下误用而形成麻烦。若是你用到了一个被禁用的命令,Emacs 会显示一个提示消息,告诉你这个命令究竟是干什么的,询问你是否要继续,并在获得你的确定以后再执行这命令ubuntu



2、emacs编辑器的界面

1. 编辑区
    用来进行文本编辑的区域。c#


2. 回显区

      若是 Emacs 发现你输入多字符命令的节奏很慢,它会在窗格的下方称为“回显区”的地方给你提示。回显区位于屏幕的最下面一行。windows



3. 状态栏网络

  1. 位于回显区正上方的一行被称为“状态栏”。状态栏最开头的星号(*)表示你已经对文字作过改动。刚刚打开的文件确定没有被改动过,因此状态栏上显示的不是星号而是短线(-)。编程语言

  2. 状态栏中的小括号用来指明当前使用的编辑模式,默认是fundamental(主模式),emacs的主模式包括了文本模式以及编辑程序源码的Lisp模式等。



3、emacs所能提供的工做环境

  1. emacs能够执行Shell命令

  2. emacs能够做为Directory Editor(Dired)

  3. emacs能够编辑、编译以及调试程序

  4. emacs能够编辑其它主机上的文档

  5. emacs能够打印文件

  6. emacs具备年历(Calendar)以及日记功能

  7. emacs能够用来阅读man page和info文档

  8. emacs能够收发电子邮件

  9. emacs能够阅读网络上的电子布告栏(GNUS)

  10. emacs具备版本控制的功能(CVS)

  11. emacs能够提供娱乐环境(游戏功能)

    emacs所提供的这些功能,都是先唤起表明此功能的模式(mode)。emacs的模式,分红主要模式(major mode)与次要模式(minor mode)。每一次只能使用一个主模式,并且主模式是必需要的。在一个主模式下,俄能够搭配一个以上的次要模式。使用次要模式至关于启用了该次要模式所对应的插件。



4、emacs命令

  1. emacs中的每个命令都有一个命令名,命令名就是该命令所对应的LISP函数的函数名。在emacs中,咱们能够为这些命令配置快捷键,从而达到快速调用命令的目的。

  2. .使用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选择都列出来。

  3. 因为emacs中全部的命令都有一个命令名(LISP函数的函数名),所以,咱们可使用“M-x 命令名”来调用emacs中的全部的命令。


* 基本光标控制

  1. C-v:向下翻屏,与PageDown效果相同(v-> vertical)

  2. M-v:向上翻屏,与PageUp效果相同

  3. C-l:重绘屏幕,并将光标所在行置于屏幕的中央

  4. C-b:光标向前移动一格(b->backward)

  5. C-f:光标向后移动一格(f->forward)

  6. C-p:光标向前移动一行(p->previous)

  7. C-n:光标向后移动一行(n->next)

  8. M-b:光标向前移动一个单词

  9. M-f:光标向后移动一个单词

  10. C-a:光标移动到行首

  11. C-e:光标移动到行尾

  12. M-<:光标移动到文章的开头(注意:“<”的输入要shift键,实际为Alt+Shift+<)

  13. M->:光标移动到文章的结尾

  14. C-u:给命令传递参数。例如:“C-u 2 C-d”表示删除两个字符

  15. M-x goto-line n RET:调到第n行


* 编辑命令

  1. C-d:删除光标后的一个字符

  2. C-k:删除从光标到行尾的字符(k->killl)

  3. C-x u:Undo(想要redo,随便输入一个字符,在Undo)

  4. C-SPC、C-@、M-x set-mark-command:设置mark

  5. C-x h:将整个缓冲区设置为区域

  6. C-w:将区域的文本删除,并放入yanking ring中。区域指的是从mark到point(光标所处的位置称为point)之间的文本

  7. M-w:复制区域到yanking ring中

  8. C-y:将yanking ring中最后一个区域插入当前缓冲区

  9. M-j:回车而且到下一行产生适当的缩进

  10. M-m:将光标移动到当前行的第一个非空白字符上

  11. M-;:产生通用注释

  12. M-x comment-region:把块注释掉

  13. M-x kill-comment:消除注释


* 查找与替换

  1. C-s:向后搜索,光标将停在第一个匹配的字符串处。再按一次C-s将继续搜索下一个匹配的字符串。若是要中止搜索,则使用C-g,此时光标将会回到搜索开始的位置

  2. C-r:向前搜索

  3. M-x replace-string:替换


* 文件操做

  1. C-x c-f:打开文件,若是文件不存在则建立

  2. C-x C-s:保存文件。第一次存盘时,emacs会将文件重命名来备份。重命令的规则一般是在原文件名后加上一个“~”字符。若是要关闭emacs的自动备份功能,使用 M-x customize-variable <Return> make-backup-files <Return>

  3. C-x C-w:将文件“另存为”

  4. C-x C-v:打开一个新文件,并关闭当前缓冲区

  5. C-x C-r:以只读的方式打开文件

  6. C-x i:将文件插入光标当前位置


* 缓冲区

  1. Emacs 把每一个编辑中的文件都放在一个称为“缓冲区(buffer)”的地方。每打开一个文件,Emacs 就在其内部开辟一个缓冲区用来保存打开的文件的数据。ESC ESC ESC命令能够用来退出打开的小缓冲区,好比:命令提示窗格等

  2. C-x C-b   列出当前全部的缓冲区(b->buffer)

  3. C-x b 缓冲区名:切换到指定的缓冲区(例如:C-x b M<tab>:切换到以M开头的缓冲区)

  4. C-x s:保存emacs中全部的缓冲区(s->save)

  5. C-x right:切换到下一个缓冲区

  6. C-x left:切换到前一个缓冲区

  7. C-x C-c:退出emacs,并询问用户是否保存

  8. C-x k:关闭缓冲区

  9. C-z:将emacs挂起,而后回到Shell中,并不退出emacs。以后,咱们可使用%emacs或fg命令来回到emacs



* 窗口

Emacs 能够有多个窗格,每一个窗格显示不一样的文字。

  1. C-x 0:关闭光标所在的窗口

  2. C-x 1:保留光标所在的窗格,并将其扩大到整个屏幕,同时关掉全部其它的窗格

  3. C-x 2:水平分割当前窗口

  4. C-x 3:垂直分割当前窗口

  5. C-x o:在emacs的窗格中进行切换(o->other)

  6. C-M-v:滚动下方的窗格。通常在咱们使用下方的窗格进行参考,而又不想将光标切换到下一个窗格时使用



* 使用帮助

  1. C-h c 快捷键:显示快捷键的简要说明

  2. C-h k 快捷键:显示快捷键所对应的命令名及其详细说明

  3. C-h a 关键字:显示包含有指定关键字的命令

  4. C-h i:查看Info文档



* 在emacs中运行shell命令

  1. M-! cmd RET:打开一个名为“*Shell Command Output*“的窗口,并把该命令的执行结果显示在其中。按下”C-x 1“组合键能够关闭这个窗口。因为Shell命令的输出是在一个编辑缓冲区里,所以咱们能够对它进行编辑、保存等操做。

  2. M-| cmd RET:运行Shell命令,并使用编辑窗口中选定的区域做为该Shell命令的输入,而后能够选择是否用该Shell命令的输出来替换编辑窗口中选中的区域。

  3. C-u M-! cmd RET:执行一条Shell命令,并将其输出放到编辑区中光标所在的位置处,而不将其输出到”Shell Command Output“窗口。

  4. M-x shell:运行一个子Shell,该子Shell对应于emacs中的一个名为”*Shell*"的缓冲区,此后,咱们就能够交互式的运行Shell命令了。

  5. M-x term:运行一个子Shell,该子Shell对应于emacs中的一个名为“*Terminal*”的缓冲区。使用该命令得到的子Shell是一个完整的Shell的模拟,与咱们直接在Shell中操做没有什么差异。

  6. M-x eshell:运行emacs shell。该Shell为emacs本身实现的一个shell,而前面运行的shell都为系统中的shell程序(例如:/bin/csh等)。咱们能够经过设置变量shell-file-name来设置emacs所使用的默认shell


* Dired功能

  1. emacs的Dired(Directory Editor)功能使emacs缓冲区可以用来显示目录列表,并能够用来进入目录的子目录。Dired缓冲区是只读的,不可以被修改。

  2. 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)



///////////////////////////////////////

 另外附上  emacs lisp的简明教程, 水木清华出品,,啧啧

http://smacs.github.io/elisp/


////////////////////////////////////////

原本使用emacs主要是做为在ubuntu或者debian下的c 学习工具, 找到一个简单好用的emacs配置的插件,

http://emacs-ide.tuxfamily.org

Emacs-IDE


安装到emacs中也很简单

  • 点击下载到本机 : eide-2.1.0.tar

  • 进入到emacs中而且运行命令:

    M-x package-install-file RET eide-2.1.0.tar

  • 在您的 ~/.emacs文件中添加以下2行

    (package-initialize)
    (eide-start)

  • 重启emacs就能够了

////////////////////////////////////////

另一个比较好的emacs作C的IDE的教程

http://tuhdo.github.io/c-ide.html以及配置

相关文章
相关标签/搜索