改变Emacs下的注释代码方式以支持当前行(未选中情况下)的注释/反注释
Emacs下支持多行代码的注释/反注释,命令是comment-or-uncomment-region。
我喜欢把它绑定在快捷键C-c C-/上,如下:
(global-set-key [?\C-c ?\C-/] 'comment-or-uncomment-region)
这样当选定多行代码的时候就可以方便的进行注释/反注释了。
但是这个命令有一个小问题,那就是只能针对当前选中的行(region)做操作。
如果当前没有选中任何行的话就什么也不做。
用过Eclipse的同学都知道,在Eclipse里面用C-/来进行注释/反注释操作时,
如果选中多行则注释/反注释选中行,如果什么都没有选中,则针对当前光标所在行进行操作。
这个功能还是比较方便的,如何能让Emacs也能做到这一点呢?
在自己的.emacs追加如下函数定义就可以了,这个函数会加入针对region的判断和处理:
(defun my-comment-or-uncomment-region (beg end &optional arg)
(interactive (if (use-region-p)
(list (region-beginning) (region-end) nil)
(list (line-beginning-position)
(line-beginning-position 2))))
(comment-or-uncomment-region beg end arg)
)
(global-set-key [remap comment-or-uncomment-region] 'my-comment-or-uncomment-region)
现在Emacs的行为接近于Eclipse了,不过还是有几处细微的不同:
(1)它不会像Eclipse那样,在选中多行注释的时候,把其中的空行也加上注释
(2)Eclipse的注释一律加在一行顶头的位置,而Emacs会加在相应indent对齐的位置。
当然,具体的行为方式在Emacs中肯定是可以调整的,对我来说现在Emacs的方式已经可以满足我的需要了。
参考url:http://www.emacswiki.org/emacs/WholeLineOrRegion
/********************************************************************
* 不落魄的书生的记事簿[blog.csdn.net/songyuanyao]
********************************************************************/
改变Emacs下的注释代码方式以支持当前行(未选中情况下)的注释/反注释的更多相关文章
- MySQL分页优化中的“INNER JOIN方式优化分页算法”到底在什么情况下会生效?
本文出处:http://www.cnblogs.com/wy123/p/7003157.html 最近无意间看到一个MySQL分页优化的测试案例,并没有非常具体地说明测试场景的情况下,给出了一种经典的 ...
- 关于img标签浏览器自带的边框,清除边框的解决方式(即img[src=""] img无路径情况下,灰色边框去除解决方法)
详解img[src=""] img无路径情况下,灰色边框去除解决方法 1.Js解决办法 <html> <head> <meta charset=&qu ...
- UITabBar 设置选中、未选中状态下title的字体颜色
一.如果只是设置选中状态的字体颜色,使用 tintColor 就可以达到效果 self.tabBar.tintColor = [UIColor redColor]; 二.但如果要将未选中状态和选中状 ...
- C#编译时出现“不安全代码只会在使用 /unsafe 编译的情况下出现”错误的解决
原因是:在编译的代码里面有不安全类型unsafe方法或类!解决方法:将项目属性页中生成下的“允许不安全代码”复选框打上对勾即可,方法如下:项目属性对话框->生成->允许不安全代码块 选中即 ...
- 不安全代码只会在使用 /unsafe 编译的情况下出现
在你的项目属性页面里面,把是否包含unsafe代码的选项选上
- vs2008 "不安全代码只会在使用 /unsafe 编译的情况下出现"的解决方法
原因是:在编译的代码里面有不安全类型unsafe方法或类! 解决方法:将项目的“可编译不安全代码”属性设置为true就可以了,方法如下:项目属性对话框->配置属性->生成->允许不安 ...
- unity, monodevelop 不安全的代码只会在使用/unsafe编译的情况下出现
http://blog.sina.com.cn/s/blog_6b3661a90102wx2g.html
- windows环境下,svn未备份情况下重新恢复
公司有个同事在未打招呼的情况下把公司服务器进行重新装系统,崩溃啊.SVN之前未备份,还好SVN的库(Repositories)还在,如下图: 恢复办法如下: 由于之前安装的就是VisualSVN-Se ...
- api 爬虫 避免相同 input 在信息未更新 情况下 重复请求重复
限
随机推荐
- CentOS中使用shell的命令补全
习惯debian的用户都知道shell中的自动补全功能非常实用,其中在CentOS中也可以有同样的功能. 只需要安装 bash-completion 包即可. rpm -ivh http://www. ...
- iOS 请求数据 error
解决办法如下: 0x1 ->请求数据时加上缺少的类型 AFHTTPSessionManager *manager = [selfAFHTTPSessionManager];// manag ...
- 键盘过滤第一个例子ctrl2cap(4.1~4.4)汇总,测试
键盘过滤第一个例子ctrl2cap(4.1~4.4)汇总,测试 完整源代码 /// /// @file ctrl2cap.c /// @author wowocock /// @date 2009-1 ...
- windows下apache+wsgi+web.py环境搭建
首先安装好wsgi模块并启用:1.下载地址:我本机是python2.7 http://code.google.com/p/modwsgi/downloads/detail?name=mod_wsgi- ...
- Citrix XenApp6.5 另类发布文档
快捷方式.文档发布 第一种方式: 1. 创建快捷方式 2. 创建批处理文件(例如:lnk.bat),并输入以下内容: Start c:\users\public\desktop\adobe ...
- hdu 4063 Aircraft(计算几何+最短路)
不说了...说多了都是泪...从昨天下午一直wa到现在,直到刚刚才让人帮我找到所谓的“bug”,其实也算不上bug... 这个题的思路就是:找出平面上的所有点:所有圆的交点以及所有圆的圆心.然后依次判 ...
- const关键字详解
const在函数前与函数后的区别 一 const基础 如果const关键字不涉及到指针,我们很好理解,下面是涉及到指针的情况: int b = 500; ...
- linux cmd
Linux查找包含特定字符串的文件名的方法 Pasted from <http://www.jbxue.com/LINUXjishu/9790.html> find .|xargs gre ...
- 总结:js中4类修改样式的方法
前言 最近在写一个扩展右键菜单的插件,既然是插件,想着一步到位,把相关的style样式设置都丢进js文件中,直接加载一个js文件便可以使用该插件,所以今天就研究了下js批量的插入样式的方法,即addS ...
- 【项目分析】利用C#改写JAVA中的Base64.DecodeBase64以及Inflater解码
原文:[项目分析]利用C#改写JAVA中的Base64.DecodeBase64以及Inflater解码 最近正在进行项目服务的移植工作,即将JAVA服务的程序移植到DotNet平台中. 在JAVA程 ...