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~这样的后缀的。通常用于为一个旧的版本创建子版本。

目录
相关文章
|
设计模式 Java 数据库连接
只要100行代码,实现文本编辑器中的草稿箱功能
大家都用过网页中的富文本编辑器,编辑器通常都会附带草稿箱、撤销等操作。下面用一段代码来实现一个这样的功能。假设,我们在GPer社区中发布一篇文章,文章编辑的过程需要花很长时间,中间也会不停地撤销、修改,甚至可能要花好几天才能写出一篇精品文章,因此可能会将已经编辑好的内容实时保存到草稿箱。
124 1
|
4月前
|
IDE 开发工具 开发者
Emacs有什么优点,用Emacs写程序真的比IDE更方便吗?
Emacs有什么优点,用Emacs写程序真的比IDE更方便吗?
|
5月前
|
开发工具
Vim 编辑器:高效文本编辑的瑞士军刀
**Vim 概览:** Vim 是一个功能丰富的文本编辑器,以其高度可定制性著称。文章介绍了 Vim 的高效使用技巧,包括快捷打开文件、命令行模式下的常用命令、查找与替换、删除和复制文本。还讨论了配置 `.vimrc` 文件以自定义设置,如改变 leader 键、设置缩进和高亮,并展示了安装插件如 vim-airline 和 vim-snazzy 的方法。通过这些技巧,用户能提升 Vim 使用效率。
61 5
|
5月前
|
开发工具 Linux 程序员
20. 【Linux教程】emacs 编辑器
20. 【Linux教程】emacs 编辑器
47 0
|
6月前
|
开发工具
【专栏】Vim的可视模式是其强大之处,允许图形化选择文本
【4月更文挑战第28天】Vim的可视模式是其强大之处,允许图形化选择文本,。通过`v`、`V`和`Ctrl + v`进入。基本操作包括选择文本、复制/剪切(`y`、`d`)、粘贴(`p`)及退出(Esc或`<C-c>`)。高级技巧涉及结合其他Vim命令、宏录制和与系统剪贴板交互。掌握可视模式能大幅提升文本编辑效率。
116 1
|
6月前
|
Linux 开发工具
Linux的基础编程——vi/vim编辑器(六)
Linux的基础编程——vi/vim编辑器(六)
66 0
Linux的基础编程——vi/vim编辑器(六)
|
Unix Shell Linux
第九章、vim程序编辑器
第九章、vim程序编辑器
72 0
|
Ubuntu Linux Windows
Linux源码阅读工具:ctags
Linux源码阅读工具:ctags
189 0
|
Shell Linux 开发工具
《Linux命令行与shell脚本编程大全》第十章 使用编辑器
主要介绍vim, nano, emacs,KWrite,Kate,GNOME 10.1 vim Unix系统最初的编辑器 10.1.1检查vim软件包 先搞明白你所用的Linux系统是哪种vim软件包。
1225 0