Emacs的搜索功能

Emacs的搜索功能 (转自: http://www.80×86.cn/blog/blogview.asp?logID=569) Emacs入门指南(3) [ Date: 2006-03-15 12:04:44 AM | Author: 80x86 | From: Original | Sunny | Emotion Index: +2 ] 通过前两篇文章的学习,您已经可以把Emacs当作一个Better-Notepad来使用了。今天我们要学习的是Emacs中强大的搜索功能。 默认情况下,Emacs采用了一种很待殊的"增量搜索"的功能,虽然它与我们常用的搜索方法在操作习惯上有很大的不同,但习惯后确实是十分的方便。 要让Emacs开始执行搜索,可以按C-s或C-r,前者是从光标位置往后查找,后者则是往前查找。我们以C-s为例。按动C-s后,Emacs在 Minibuffer中提示: I-Search:,这时您便可以输入要搜索的关键字了,现在学习试验的阶段建议您输入时手脚慢一点,看看Emacs是如何来执行您的搜索请求的。 比如,要搜索"search"一词,您输入s,这时Emacs会把光标移动到最近一个s字母上,这里如果您暂停输入一会儿,Emacs就会把所有的s字母进行高亮。您继续输入e,这时Emacs就找到了最近的se字母组合。一直输入下去,直到Emacs找到您要找的内容,这时按回车键即可结束查找。 在查找过程中,您可以反复按动C-s或C-r来执行向后或向前的查找。如果您已经找到一了一个匹配的内容,并且按了回车键结束了查找,这时如要继续查找这个内容,您只需按两次C-s或C-r即可,第一次按动用于激活查找功能,而第二次按动则表示要继续查找。 在输入查找关键字时,如果不小心输错了,可以按动<DEL>键来清除前一个字符,请注意,在Emacs术语中,<DEL>键是指我们通常所说的<BackSpace>键,而<delete>键才表示我们键盘上的<delete>或<Del>键。 输入关键词时也有一个细节的问题,如果您输入的关键字全部是英文小字母,则Emacs会进行不区分大小写的查找。但如果输入的关键字中包含有大写字母, Emacs就会进行区分大小写的查找。另外在查找的过程中,可以通过M-c快捷键来切换区分大小字模式,可以用它来强行指定是否区分大小写。 如果不想用Emacs的增量搜索功能,也可以让Emacs进行传统的搜索,在按下C-s或C-r后,直接打一个回车键,这时Emacs就将进行非增量搜索,您可以输入你的关键字,再按回车键来执行搜索。 下面要介绍的是更为强大的正则表达式搜索功能。您可以通过按动C-M-s或C-M-r来启动正向或反向的正则表达式搜索功能,Emacs会在Minibuffer中提示Regexp I-search:,这时您便可以输入正要匹配的正则表达式了。 在正则表达式中可以使用很多的控制符号,这里我挑选几个常用的作一个简单的介绍,更全面复杂的解释可以在Emacs的手册中查到。 ‘.’ (句号): 正则表达式的中句号可以用于匹配一个任意的字符。比如正则式’a.b’就可以匹配abb,acb,adb。。。等等以a开头以b结尾的三个字符的字符串。 ‘*’: 正则表达式中的*号可以用于表示把它前面的字符重复0次或多次。比如’ff*‘可以匹配一个或多个相连的f的字符串。 ‘+’: 正则表达式中的+号与*号的作用基本相同,区别在于它表示把它前面的字符重复1次或多次,所以可知正则式’ff*‘等价与’f+’。 Emacs的正则表达式语法十分复杂与强大,请您阅读Emacs手册来对它们进行全面的学习,一定会给您的工作带来巨大的便捷,作为一篇入门教程,这里我就不再作更全面的叙述了。 http://www.learndiary.com/2006/04/emacs%E4%B8%AD%E5%BC%BA%E5%A4%A7%E7%9A%84%E6%90%9C%E7%B4%A2%E5%8A%9F%E8%83%BD%EF%BC%88%E8%BD%AC%E5%B8%96%EF%BC%89/ C – s 后切换到搜索框粘贴 Emacs 搜索, C - s 后切换到搜索框粘贴 C - s M - y http://groups.google.com/group/cn.bbs.comp.emacs/browse_thread/thread/84d2258a0d8fdf81/70af2a6296c1f7dd?lnk=raot

2013-07-16 · 1 min · 62 words · -

Emacs Markdown

Emacs Markdown 安装与配置 安装 markdown-mode 非常简单,只需将下载的 markdown-mode.el 文件置于 Emacs 可找到的路径,例如 ~/.emacs.d/modes。然后把下列内容添加到 .emacs 文件中即可: (add-to-list 'load-path "~/.emacs.d/modes") (autoload 'markdown-mode "markdown-mode.el" "Major mode for editing Markdown files" t) (setq auto-mode-alist (cons '("\.markdown" . markdown-mode) auto-mode-alist)) 这样,当 Emacs 打开扩展名为 markdown 的文件时,就会自动进入 Markdown 主模式。如果你定义的 Markdown 扩展名与此不同,那么你将需要替换上面配置内容最后一行中的 .markdown。 编辑命令 Markdown 模式将常用的编辑命令都绑定到了特定的组合键上,因此要插入某个项目,只需按相应的组合键。比如: C-c C-t n 插入 hash 样式的标题,其中 n 为 1~5,表示从第一级标题到第五级标题。 C-c C-t t 插入 underline 样式的标题,这是一级。 C-c C-t s 同上,这是二级。 C-c C-a l 插入链接,格式为 [text][/text] (url)。 ...

2013-02-24 · 1 min · 120 words · -

Emacs的缓冲区(Buffers)、窗口(Windows)和框架(Frames)

Emacs的缓冲区(Buffers)、窗口(Windows)和框架(Frames) 概念上,Emacs在两个方面有别于一般程序。首先,“窗口"的概念不同。其次,Emacs的"缓冲区"是脱离窗口或框架独立存在的。 (Emacs里的frame相当于Microsoft Windows的window概念。A frame can show several windows, each showing a buffer.) 1 窗口与框架 我们所看到的Emacs"窗口"并非Emacs的窗口,而是Emacs的图形窗口框架(GUI windows frames)。理解这个概念是必须的,因为在未有图形化窗口之前,Emacs已经可以在"终端"运行了,用Windows的术语来说,就是"控制台"程序。看看下面的图,就明白了。 1.1 缓冲区,独立于窗口与框架之外 本质上,窗口和框架只是显示缓冲区内容的工具。缓冲区内可以包含文件内容,可以是Emacs内部自定义的,譬如*Messages*,*scratch*,或*help*等,也可以是用户自定制而其中内容未写入文件的。 许多图形界面的应用程序是将图形窗口 (Emacs中称之为Frames)与一些文件紧密联系在一起的,而Emacs的将缓冲区与图形窗口分离的方式是强大又灵活的。实际上,我们在大部分时间里宁愿使用一个Emacs Frame,而使用C-x b来切换缓冲区,这要比在多个Frame中采用鼠标切换或采用切分窗口等方式更容易,尽管它们在一些情况下存有优点。 1.2 更深入地了解缓冲区 你知道该怎样获知Emacs中开了几个缓冲区及它们的详细信息吗?有三种方法可以实现: C-x C-b,显示缓冲区列表; 缓冲区菜单,列举了打开的缓冲区以及导向它们的快捷命令; 在Emacs的窗口中,摁下Ctrl键,点击鼠标左键,可以弹出缓冲区列表。 Emacs自行定义了一些缓冲区,它们的名字,通常是像*buffername*,*help*,*scratch*这样的格式,并且缓冲区列表本身就是Emacs自定义的缓冲区,如下图: 当你启动Emacs的时候,会产生*Messages*和*scratch*两个缓冲区。*Messages*是用来显示从Emacs启动开始的所有命令信 息的缓冲区,*scratch*是草稿缓冲区,你可以在其中乱写东西,但不会被保存,除非用户使用C-x C-W命令。 在用户使用 Emacs编辑文件时,所读取的文件会被复制到同名的缓冲区内。如果用户需要帮助,那么也可以打开*help*缓冲区。可打开的缓冲区的数量是没有限制 的。大部分时间,仅有一两个缓冲区被显示,还有好多即使你没看到,但它们也是存在的。你可以把缓冲区想象为一堆页面,其中仅有一页是当前页,你可以切换到 令一页,或者创建新页。每个缓冲区都关联一个主模式,它决定了在该缓冲区内,Emacs的行为。譬如,text模式,被设计为书写文档的;Lisp模式, 是用于书写Lisp程序的。用户可以在一个Emacs窗口或框架中显示多个缓冲区,要紧是记住你创建的所有缓冲区。 2 在多缓冲区模式下工作 如果你想创建一个包含文件内容的缓冲区,可以C-x C-f,Emacs会自动创建一个缓冲区并将你带入其中。如果你已经在一个缓冲区打开了这份文件的副本, 那么C-x C-f会把你带入那个已存在的缓冲区中,在此请仔细体会一下,Emacs给你带来的好处吧!而如果你要打开的文件不存在,Emacs会为你创建 一个新文件的缓冲区,并将你带入其中。 请记住: C-x C-f是打开一个文件,该命令后总是跟随这目录/文件名的,如果要打开的文件不存在,就创建新文件。 2.1 切换缓冲区 你有意识到模式行并不显示文件名,而仅仅显示缓冲区名吗?其他一些版本的Emacs可以两个名字都显示,但GNUEmacs只显示缓冲区名,这是因为通常情况下,文件名和缓冲区名是一致的,除非你去修改它们。 要在不同缓冲区之间移动,就C-x b吧。Emacs会给你提供一个默认的最近隐掉的缓冲区名,回车就可以进入。或者输入你想进入的缓冲区名字的前几个字,然后摁Tab键,Emacs会自动为你补全缓冲区名,回车进入即可。 请记住: C-x,b之后则跟随一个缓冲区的名字。如果相应缓冲区不存在,Emacs会自动创建一个新的空缓冲区,与C-x C-f的不同之处是,新建的缓冲区不与文件关联,在退出Emacs时,Emacs不会提醒你要保存缓冲区。 查看已打开的缓冲区,还有以下两种可选方式: C-x C-b,这种方法可用于终端环境中的Emacs; 在Emacs窗口中,摁下Ctrl键,点击鼠标左键。该方法只对图形化的Emacs有效。 2.2 删除缓冲区 为什么要删除缓冲区? 你的Emacs中开的缓冲区太多了,想去掉几个; 对已有文档的修改具有灾难性,将这个缓冲区干掉就可以了。 要删除缓冲区,可键入C-x k,Emacs会显示当前被显示的缓冲区名,也可键入想删除的缓冲区的名字,然后回车。如果已与文件建立关联的缓冲区,内容有了 改动,Emacs会提示你保存一下。其他情况,则缓冲区就永远的消失了。而键入M-xkill-some-buffers可成批删除缓冲区,系统会一个一 个列举已存在的缓冲区,问你是不是把它kill掉,你只需要回答`yes’or`no’就可以了。当所有的缓冲区都被kill掉之后,Emacs不会屏幕空着的,它会创建一个新的*scratch*缓冲区。 ...

2012-09-03 · 1 min · 146 words · -

Emacs24隐藏工具栏菜单栏和滚动条无效的问题

Emacs24隐藏工具栏菜单栏和滚动条无效的问题 http://blog.csdn.net/cherylnatsu/article/details/7663163 前不久发布了Emacs 24.1,下载下来编译安装后发现这样一个问题,以前旧的.emacs文件里明确设置了不显示工具栏菜单栏滚动条,但是它还是都显示了出来,旧的配置是这样的。 (tool-bar-mode nil) (menu-bar-mode nil) (scroll-bar-mode nil) 后来经过提醒才发现,新版这里已经不能用nil了,必须用0 改成: (tool-bar-mode 0) (menu-bar-mode 0) (scroll-bar-mode 0) 就好了。

2012-08-31 · 1 min · 19 words · -

Moving The Ctrl Key

Moving The Ctrl Key http://emacswiki.org/emacs/MovingTheCtrlKey Microsoft Windows AutoHotkey On Windows you can use the AutoHotkey program which uses “scripts” to remap the keyboard. This method has a couple benefits. One is scripts can be compiled to a stand alone .exe file which can be executed on a machine that doesn’t have AutoHotkey. Another is, the key re-mapping can be set to only apply in emacs; the caps lock key will behave normaly in every other program. (If that’s what you want.) ...

2012-04-23 · 2 min · 214 words · -

emacs org mode

emacs org mode Emacs 22 以后的版本已经集成了 org-mode,打开 .org 扩展的文件会自动进入 org 模式。 增减一个TODO项目的优先级 S-Up/Down move subtree/list item up/down M-S-UP/DOWN promote/demote heading M-LEFT/RIGHT insert new TODO entry/checkbox item M-S-RET insert TODO entry/ckbx after subtree C-S-RET C-RET加入新的同级标识 M-left将当前项提升一级 M-right将当前项降低一级 M-S-left将当前分支提升一级 M-S-right将当前分支降低一级 M-S-up将当前分支向上移动 M-S-down将当前分支向下移动 C-c C-x C-k删除当前分支 C-c C-x M-w复制当前分支 C-c C-x C-y粘贴分支 C-c C-w移动当前分支 C-c *为当前分支加入内容 3.1 关于TODO ITEM的基本知识和操作 设置TODO项目所有标题只要以TODO开头,就会变成TODO 项目。例如: *** TODO 付手机费 *** TODO 开会 更改TODO项目的状态 C-c C-t Rotate the TODO state of the current item among ...

2012-02-17 · 1 min · 133 words · -

设置 Emacs 的编码格式

设置 Emacs 的编码格式 查看一下 Emacs 读取文件用的编码格式。 M-x describe-coding-system 把 Emacs 的默认编码设置为 UTF-8。 在 .emacs 文件里放入下面这段代码: [lisp] ;;set the default text coding system (setq default-buffer-file-coding-system ‘utf-8) [/lisp] 可是即使我加了上面这条语句,为什么 Emacs 依然显示 org 文件为乱码呢? 原来上面这一行,只是适用于写文件的情况。当你读取一个文件的时候,可能依然会显示出乱码,因为 Emacs 读文件也是按照一定的编码规律来解读文件的。我们再用命令 M-x describe-coding-system 仔细观察一下结果里面的内容,是不是有类似下面这样一段: Priority order for recognizing coding systems when reading files: 1. iso-latin-1 (alias: iso-8859-1 latin-1) 2. utf-8 (alias: mule-utf-8) 3. iso-2022-7bit 4. iso-2022-7bit-lock (alias: iso-2022-int-1) 5. iso-2022-8bit-ss2 6. emacs-mule 7. raw-text 8. iso-2022-jp (alias: junet) 9. in-is13194-devanagari (alias: devanagari) 10. chinese-iso-8bit (alias: cn-gb-2312 euc-china euc-cn cn-gb gb2312) 11. utf-8-auto 12. utf-8-with-signature 13. utf-16 14. utf-16be-with-signature (alias: utf-16-be) 15. utf-16le-with-signature (alias: utf-16-le) 16. utf-16be 17. utf-16le 18. japanese-shift-jis (alias: shift_jis sjis cp932) 19. undecided 这就是 Emacs 在读文件时候的解码顺序!如果你的文件是以英文开头,自然会套用第一种方法。这个时候,我们还需要调整一下这个编码的先后次序。用命令 M-x prefer-coding-system 就可以调整这些顺序。调整完顺序,再打开 org 文件看一看,终于恢复原貌了。 如果你只是用命令 M-x prefer-coding-system 来设置,下次重启 Emacs 的时候,这个设置就会自动清除。如果需要每次都采用这个设置,可以把下面这行扔到 .emacs 里指定优先用 utf-8 来解码: (prefer-coding-system ‘utf-8) ...

2011-12-27 · 1 min · 145 words · -

分布式ID, 雪花算法

分布式ID, 雪花算法 https://zhuanlan.zhihu.com/p/85837641 雪花算法这一在分布式架构中很常见的玩意,但一般也不需要怎么去深入了解,一方面一般个人项目用不到分布式之类的大型架构,另一方面,就算要用到,市面上很多ID生成器也帮我们完成了这项工作。 分布式ID的特点 全局唯一性 不能出现有重复的ID标识,这是基本要求。 递增性 确保生成ID对于用户或业务是递增的。 高可用性 确保任何时候都能生成正确的ID。 高性能性 在高并发的环境下依然表现良好。 分布式ID的常见解决方案 UUID Java自带的生成一串唯一随机36位字符串 (32个字符串+4个“-”)的算法。它可以保证唯一性,且据说够用N亿年,但是其业务可读性差,无法有序递增。 SnowFlake 今天的主角雪花算法,它是Twitter开源的由64位整数组成分布式ID,性能较高,并且在单机上递增。 具体参考: https://github.com/twitter-archive/snowflake UidGenerator UidGenerator是百度开源的分布式ID生成器,其基于雪花算法实现。 具体参考: https://github.com/baidu/uid-generator/blob/master/README.zh_cn.md Leaf Leaf是美团开源的分布式ID生成器,能保证全局唯一,趋势递增,但需要依赖关系数据库、Zookeeper等中间件。 具体参考: https://tech.meituan.com/MT_Leaf.html 雪花算法的概要 SnowFlake是Twitter公司采用的一种算法,目的是在分布式系统中产生全局唯一且趋势递增的ID。 组成部分 (64bit) 1.第一位 占用1bit,其值始终是0,没有实际作用。 2.时间戳 占用41bit,精确到毫秒,总共可以容纳约69年的时间。 3.工作机器id 占用10bit,其中高位5bit是数据中心ID,低位5bit是工作节点ID,做多可以容纳1024个节点。 4.序列号 占用12bit,每个节点每毫秒0开始不断累加,最多可以累加到4095,一共可以产生4096个ID。 SnowFlake算法在同一毫秒内最多可以生成多少个全局唯一ID呢:: 同一毫秒的ID数量 = 1024 X 4096 = 4194304

2011-11-12 · 1 min · 49 words · -

emacs format, 格式化

emacs format, 格式化 http://www.blogjava.net/killme2008/archive/2011/07/26/355041.html 格式化源码是很常见的需求,emacs有个indent-region函数用于格式化选定的代码,前提是你处在某个非text mode下,如c-mode或者java-mode之类。如果要格式化整个文件,你需要先选定整个文件(C-x-h),然后调用indent-region (或者 C-M-\ )。两个命令总是麻烦,我们可以定义个函数搞定这一切,并绑定在一个特定键上,实现一键格式化: ;;格式化整个文件函数 (defun indent-whole () (interactive) (indent-region (point-min) (point-max)) (message "format successfully")) ;;绑定到F7键 (global-set-key [f7] 'indent-whole) 将这段代码添加到你的emacs配置文件 (~/.emacs),重启emacs,以后格式化源码都可以用F7一键搞定。 整理整个文件 M-x mark-whole-buffer 或者 C-x h //选中整个文件 M-x indent-region 或者 C-M- //格式化选中 整理某个函数 M-x mark-defun 或者 C-M-h //选中函数 M-x indent-region 或者 C-M- //格式化

2011-09-21 · 1 min · 49 words · -

emacs 启动 窗口最大化

emacs 启动 窗口最大化 (defun fullscreen (&optional f) (interactive) (x-send-client-message nil 0 nil “_NET_WM_STATE” 32 ‘(2 “_NET_WM_STATE_MAXIMIZED_VERT” 0)) (x-send-client-message nil 0 nil “_NET_WM_STATE” 32 ‘(2 “_NET_WM_STATE_MAXIMIZED_HORZ” 0))) (add-hook ‘window-setup-hook ‘fullscreen)

2011-08-18 · 1 min · 29 words · -

RSA

RSA Java cipher What is Java Cipher? 在计算机系统中,Java Cryptography Architecture (JCA) 是一个使用 Java 编程语言处理加解密相关操作的框架。它是 Java 安全 API 的一部分,最早是在 JDK1.1 版本的java.security包中引入的。JCA 基于”provider“架构,并且包含一系列不同作用的 API,比如加密、秘钥生成与管理、安全随机数生成、证书验证等等。这些 API 为开发人员提供了在应用代码中集成安全操作的简易方式。 Java Cryptography Extension (JCE) 是 Java 平台的一个官方标准扩展,也是 JCA 体系的一部分。JCE 为加密、密码生成和管理、消息认证码等操作提供了一个框架和具体实现。其实 Java 平台本身就包含摘要生成、数字签名等操作的接口和具体实现,JCE 提供了一个更丰富的补充。而javax.crypto.Cipher 类则是 JCE 扩展的核心。 Cipher 实例化 我们可以通过调用静态getInstance方法,传入具体的转换模式名称,就可以实例化一个 Cipher 对象。下面是实例化 Cipher 的示例代码: public class Encryptor { public byte[] encryptMessage(byte[] message, byte[] keyBytes) throws InvalidKeyException, NoSuchPaddingException, NoSuchAlgorithmException { Cipher cipher = Cipher.getInstance(“AES/ECB/PKCS5Padding”); //… } } 转换模式 (transformation) 的具体含义 转换模式 (transformation) 是 Cipher 实例化的一个核心参数。transformation 参数的格式是: 算法/工作模式/填充模式(algorithm/mode/padding),如上述示例中AES/ECB/PKCS5Padding。 ...

2011-07-28 · 1 min · 126 words · -

emacs copy current line

emacs copy current line ;;copy current line (global-set-key (kbd “C-c C-w”) ‘copy-lines) (defun copy-lines(&optional arg) (interactive “p”) (save-excursion (beginning-of-line) (set-mark (point)) (next-line arg) (kill-ring-save (mark) (point)) ) )

2011-04-30 · 1 min · 28 words · -

emacs 自动补全括号

emacs 自动补全括号 ;;; use groovy-mode when file ends in .groovy/.gradle or has #!/bin/groovy at start (autoload ‘groovy-mode “groovy-mode” “Groovy editing mode.” t) (add-to-list ‘auto-mode-alist ‘(".groovy$" . groovy-mode)) (add-to-list ‘interpreter-mode-alist ‘(“groovy” . groovy-mode)) (add-to-list ‘auto-mode-alist ‘(".gradle$" . groovy-mode)) ;;auto pair (defun code-mode-auto-pair () “autoPair” (interactive) (make-local-variable ‘skeleton-pair-alist) (setq skeleton-pair-alist ‘( (?` ?` _ “”") (?( ? _ " )") (?[ ? _ " ]") (?{ n > _ n ?} >) ...

2011-04-23 · 1 min · 99 words · -

emacs auto backup

emacs auto backup (setq backup-directory-alist ‘(("" . “~/backup/emacs/backup”))) (setq-default make-backup-file t) (setq make-backup-file t) (setq make-backup-files t) (setq version-control t) (setq kept-old-versions 2) (setq kept-new-versions 10) (setq delete-old-versions t)

2011-04-23 · 1 min · 29 words · -

emacs 插件安装

emacs 插件安装 #edis .emacs (add-to-list 'load-path "/home/wiloon/.emacs.d/lisp") ;;; use groovy-mode when file ends in .groovy or has #!/bin/groovy at start (autoload 'groovy-mode "groovy-mode" "Groovy editing mode." t) ;;files end with .groovy , open as groovy mode (add-to-list 'auto-mode-alist '(".groovy$" . groovy-mode)) (add-to-list 'interpreter-mode-alist '("groovy" . groovy-mode))

2011-04-23 · 1 min · 46 words · -

emacs 查找替换字符串

emacs 查找替换字符串 M-% (然后会出现Query replace的字样) Query replace:<被替换字符串> Query replace <被替换字符串> with:<替换字符串> Query replacing <被替换字符串> with <替换字符串>: (? for help) **查询替换命令的选项如下: ** y 或者 空格 键 替换搜索到的字符串 n 或者 Del 键 取消替换搜索到的字符串 ^ 回到前一个搜索到的字符串 ! 替换所有没有替换的与模式匹配的字符串 ESC 键 退出本次查询搜索

2011-04-16 · 1 min · 38 words · -

emacs 配置/config

emacs 配置/config 中文环境 之后,在~/.Xresources (如果没有的话,自己建一个) ,加入下面内容: Xft.antialias: 1 Xft.hinting: 1 Xft.hintstyle: hintfull 调用X Window系统中的字体,并且开启抗锯齿。 之后在~/.emacs下面加入 (custom-set-variables ;; custom-set-variables was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. '(inhibit-startup-screen t)) (custom-set-faces ;; custom-set-faces was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. ) ; source: http://steve.yegge.googlepages.com/my-dot-emacs-file (defun rename-file-and-buffer (new-name) "Renames both current buffer and file it's visiting to NEW-NAME." (interactive "sNew name: ") (let ((name (buffer-name)) (filename (buffer-file-name))) (if (not filename) (message "Buffer '%s' is not visiting a file!" name) (if (get-buffer new-name) (message "A buffer named '%s' already exists!" new-name) (progn (rename-file filename new-name 1) (rename-buffer new-name) (set-visited-file-name new-name) (set-buffer-modified-p nil)))))) (setq frame-title-format "emacs@%b") ; Set default window size (setq default-frame-alist \`((height . 35) (width . 123))) ;; Set font ;;设置DejaVu Sans Mono为默认情况下的字体,字号为12号。 ;;然后再设置一个字符集,设置字符集字体为WenQuanYi Micro Hei(文泉驿微米黑),当编码为非拉丁字母时, ;;系统自动会在/etc/fonts/cond.avail中寻找编码,比如汉字,就对应han,泰文就对应thai,等等. (set-default-font "DejaVu Sans Mono-11") (set-fontset-font (frame-parameter nil 'font) 'han '("WenQuanYi Micro Hei")) ;; the following function is to scroll the text one line down while keeping the cursor (defun scroll-down-keep-cursor () (interactive) (scroll-down 3)) ;; set cursor as bar (setq-default cursor-type \`bar) ;; hide tool bar (tool-bar-mode 0) ;; hide menu bar (menu-bar-mode 0) ;; hide scroll bar (scroll-bar-mode 0) ;;enable select to clipboard (setq x-select-enable-clipboard t) ;;允许使用C-z作为命令前缀 (define-prefix-command 'ctl-z-map) (global-set-key (kbd "C-z") 'ctl-z-map) ;;用C-z i快速打开~/.emacs文件。 (defun open-init-file ( ) (interactive) (find-file "~/.emacs")) (global-set-key "\C-zi" 'open-init-file) ;;启用ibuffer支持,增强\*buffer\* (require \`ibuffer) (global-set-key (kbd "C-x C-b") \`ibuffer) ;show line number (global-linum-mode t) ;;auto backup (setq backup-by-copying t ;自动备份 backup-directory-alist '(("." . "~/.saves")) ;自动备份在目录"~/.saves"下 delete-old-versions t ;自动删除旧的备份文件 kept-new-versions 6 ;保留最近的6个备份文件 kept-old-versions 2 ;保留最早的2个备份文件 version-control t) ;多次备份 ;显示光标所在的行号列号 (setq column-number-mode t) http://murphytalk.github.io/posts/2005/03/03/gai-bian-emacschuang-kou-biao-ti-ge-shi/#.WJpliCFNzWU ...

2011-04-16 · 2 min · 319 words · -