zoukankan      html  css  js  c++  java
  • 改变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]

    ********************************************************************/

  • 相关阅读:
    通过Form添加数据到数据库里
    如何取消服务器/主机空间目录脚本的执行权限
    一个人的网站开发
    3.1.2 新版视频教程震撼发布(30集)
    P类问题,NP,NPC,HPHard,coNP,NPI问题 的简单认识
    随机算法与近似算法
    python to exe
    ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' (using password: NO)
    anaconda + pyqt5 + pycharm 安装,测试
    C++ 结构体初始化
  • 原文地址:https://www.cnblogs.com/james1207/p/3310701.html
Copyright © 2011-2022 走看看