emacs有用的

简介: 光标移动命令、翻页命令、查找、替换等最基本的编辑命令在启动emacs后按下C-h t可以看到很详细的介绍,或者也可以在菜单中找到。

光标移动命令、翻页命令、查找、替换等最基本的编辑命令在启动emacs后按下C-h t可以看到很详细的介绍,或者也可以在菜单中找到。emacs其它菜单项点击后的帮助文档都是info文档,阅读info文档只需要记住七个按键就可以:u---up,回上层结点;p---previous,前一个结点;n---next,后一个结点;空格---向下翻一页;TAB---转到下一个超链接;i---搜索index;s---搜索文字。知道这些命令阅读info文档已经非常轻松,其实空格翻页都不用记,info文档中滚动和翻页等命令和emacs是一样的。另外还有shift-TAB转向上一个超链接。g—goto node,快速跳到指定的结点处。

1.        M-x make-command-summary会列出当前所能用的所有命令。

2.         

3.        修改了.emacs文件后是可以使用M-x load-file命令重新载入.emacs文件并使其生效的。例如,M-x load-file c:/.emacs

4.         

5.        M-x load-file, M-x eval-buffer与C-x C-e:

6.        这是查找不用重新启动emacs使新的配置生效时看到的三种方法。使用C-h f load-file可以查看load-file函数的用法。其中:

7.        M-x load-file:用法为load-file filename。作用是载入名为filename的lisp文件并执行其中的代码。如果载入的文件不是有效的lisp语言文件,就输出一条错误信息。

8.         

9.        M-x eval-buffer:用法为(eval-buffer &optional buffer printflag filename unibyte do-allow-print)。其作用是将当前缓冲区的内容作为lisp代码来执行。在emacs中使用C-h f eval-buffer可以看到关于这个函数的各个参数的详细说明。

10.      

11.     C-x C-e:这是eval-last-sexp命令的快捷键。这条命令把光标前面的内容作为lisp代码执行,并在mini buffer中输出信息。如果带有命令前缀,则将输出信息输出到当前缓冲区中。可以使用C-h k C-x C-e来查看详细说明。

12.      

13.     emacs中还有很多以eval开头的函数,都是用作动态执行某些内容的。可以使用C-h f,然后输入eval,连续按两次TAB,来查看它们。

14.      

15.     在自己的使用过程中,M-x load-file有可能会影响emacs的界面。因此,用M-x eval-buffer更好一些。

16.      

17.     ;;设置在emacs的标题栏中显示当前正在编辑的缓冲区的名字:

18.     (setq frame-title-format "emacs - %b")

19.      

20.     ;;设置emacs启动时的初始目录,使用C-x C-f打开文件时emacs就会在这个目录下找

21.     (setq default-directory "d:/mydocuments/mysourcecode/myselfcode/c_c++/adps/")

22.      

23.     ;;不产生备份文件

24.     (setq make-backup-files nil)

25.      

26.     ;; 自动保存

27.     (setq auto-save-mode nil)

28.      

29.     ;;设置emacs执行出错时进入调试状态,能看到emacs出错时的具体调用栈

30.     (setq debug-on-error 1)

31.      

32.     ;;允许emacs和外部其他程序的粘贴

33.     (setq x-select-enable-clipboard t)

34.      

35.     ;;设置编译命令

36.     (setq compile-command (concat "c:/mingw/bin/g++ -g " "/"" buffer-file-name "/""))

37.      

38.     ;;设置调试命令

39.     (setq gud-gdb-command-name "c:/mingw/bin/gdb --annotate=3")

40.      

41.     ;;自动扫描函数名

42.     (setq imenu-auto-rescan 1)

43.      

44.     ;; 当光标在行尾上下移动的时候,始终保持在行尾。

45.     (setq track-eol t)

46.      

47.     ;;ido的配置,ido就是在打开文件或者是在转向其它buffer的时候提供非常方便的功能,

48.     ;;可以看emacs中提供的文档

49.     (ido-mode t)

50.      

51.     ;;去掉工具栏,去掉工具栏的方法很多,这是最简单的一种

52.     (tool-bar-mode nil)

53.      

54.     ;;去掉菜单栏

55.     (menu-bar-mode nil)

56.      

57.     ;;去掉滚动条

58.     (set-scroll-bar-mode nil)

59.      

60.     ;;让选中的区域高亮显示 

61.     (setq-default transient-mark-mode t)

62.      

63.     ;; 行尾自动加上一个新行,怪不得以前使用gcc编译时总是显示行尾没有新行的警告。

64.     (setq require-final-newline t)

65.      

66.     ;;写代码的时候在下面的mode条上显示当前光标在哪个函数中,还有设置当前

67.     ;;所在行高亮什么的,都在cc-mode里面,可以看cc-mode的文档

68.     (which-function-mode 1)

69.      

70.     ;;不显示启动信息,看起来舒服点,但好像并不能加快启动速度

71.     (setq inhibit-startup-message t)

72.      

73.     ;;用y和n来代替yes和no。

74.     (fset 'yes-or-no-p 'y-or-n-p)

75.      

基本编辑:

C-o 插入一个新的换行,光标留在换行符前面。即”open-line”命令的快捷键。一般的回车之后光标是在换行符的后面。

C-x C-o 命令delete-black-lines的快捷键。删除从光标所在行的下一行起的所有连续的空行。

C-x z 重复执行命令。C-x 后面有几个z就重复执行几次。

M-x list-command-history 显示执行过的命令。有点像dos-key。

C-x 1 最大化当前光标所在的窗口。

C-x 2 将当前光标所在的窗口分成上下两个窗口。

C-x 3 将当前光标所在的窗口分成左右两个窗口。

M-x follow-mode 尤其是做翻译工作时非常好用。

 

查找替换:

C-s 命令isearch-forward的快捷键。向前做incremental search。

C-r 向后做incremental search。

在查找的时候想中断查找可以按回车或者C-g,按回车结束查找则光标停留在当前位置上,按C-g结束查找则光标返回到开始查找的那个位置上。重复按C-s向前查找下一个。

关于emacs的替换命令输入M-x replace再按两次TAB会列出所有的替换命令,包括查询替换和不查询替换的,正则表达式替换和非正则表达式替换的。emacs中的正则表达式语法可以在info文档中找到,做法是打开一份info文档,输入g,然后输入regexp按TAB,会自动列出关于正则表达式的那些结点。

M-x list-matching-lines 另开一个buffer列出当前buffer中所有匹配正则表达式的那些行。

 

版本控制:

在windows中下载解压rcs后使用前要先定义一个环境变量TZ,表示当前的时区。上次自己点击windows下面那个时间区域,看到是GMT+08:00,于是就这样设置了,可是这样设置以后发现RCS记录的时间和自己的系统时间相差很大。最近在网上看到,这个环境变量的值应该设置为JST-8的。

C-x v i指定对当前的文件使用版本控制。

C-x v v或者是check in或者是check out,这个不用自己操心,只要记住在编辑文件前来一次,保存的时候再来一次,就可以了。当前文件到底是处于lock还是unlock的状态在emacs的mode栏里可以看出来。如果是类似RCS:1.3这样的,表示当前处于lock状态,就是说当前自己编辑的只是一个副本,那个1.3版本是已经被记录在案了,不能修改了,这个时候如果按下C-x v v,则会产生一个1.4版本出来。如果类似RCS-1.3这样的,表示当前处于unlock状态,如果想编辑文件,必须先使用一次C-x v v 来先lock这个文件。

C-x v ~ VERSION查看指定版本号为VERSION的版本。查看时文件是只读的,且有一个后缀,比如查看test.cpp的1.3版本,则输入C-x v ~ 1.3,这个buffer的名字是test.cpp.~1.3~。创建一个旧版本的Branch的时候就不能用这个命令转到旧版本了。

C-x v =将当前缓冲区的内容和该文件的主版本比较。

C-u C-x v = FILE <RET> OLDVERS <RET> NEWVERS将OLDVERSION版本和NEWVERSION版本进行比较。

C-x v g将当前缓冲区中的文件每一行属于哪个版本都高亮显示出来。

C-x v l查看当前文件的版本控制历史。

C-x v u撤消操作。假设你从test.cpp的1.3版本中check out出来一份副本,然后编程,最后感觉不好,但是文件已经存盘了,就可以使用这个命令回到1.3版本时候的样子。使用这条命令后,文件的最新版本还是1.3版本,但是如果使用了C-x v c,那么1.3版本就会被一起拿掉了。

C-x v c见上。

C-u C-x v v这是转到另一个版本的一真正方法。上面的C-x v ~只是查看另一个版本,这个命令是转到那个版本,缓冲区中是没有~VERSION~这样的后缀的。通常用于为一个旧的版本创建子版本。

目录
相关文章
|
2月前
|
Linux 开发工具
Linux的基础编程——vi/vim编辑器(六)
Linux的基础编程——vi/vim编辑器(六)
34 0
Linux的基础编程——vi/vim编辑器(六)
|
8月前
|
Unix Shell Linux
第九章、vim程序编辑器
第九章、vim程序编辑器
49 0
|
Ubuntu Linux Windows
Linux源码阅读工具:ctags
Linux源码阅读工具:ctags
152 0
|
Linux Shell Ubuntu
《Linux命令行与shell脚本编程大全》第十八章 图形化桌面环境中的脚本编程
18.1 创建文本菜单 直接上例子吧:   1 #!/bin/bash   2 function menu   3 {   4         clear   5         echo   6         echo -e "\t\t\tSys Admin Menu\n"   7         echo -e "\t1.
1279 0
|
Shell Linux 开发工具
《Linux命令行与shell脚本编程大全》第十章 使用编辑器
主要介绍vim, nano, emacs,KWrite,Kate,GNOME 10.1 vim Unix系统最初的编辑器 10.1.1检查vim软件包 先搞明白你所用的Linux系统是哪种vim软件包。
1195 0
|
开发工具
我也说说Emacs吧(7) - lisp基础
lisp的基础:变量和表处理
1629 0