zoukankan      html  css  js  c++  java
  • emacs c/c++ 中使用的命令大杂烩

    emacs c/c++ 中使用的命令大杂烩

    注释,缩进,光标移动等

    键盘操作 键盘操作对应函数名 说明
    ESC Ctrl indent-region 对光标和标记之间的每行文本进行缩进
    ESC ; indent-for-comment 如果没有选中任何文本,则在光标所在行的最后加上:/* */;如果选中了文本,则注释掉选中的文本;如果选中的文本已经是被注释的了,则去掉注释。
    ESC j /* */里写注释的时候,换行,并自动缩进到和上一行相同的位置。
    ctrl x ; 设置控制缩进的变量comment-column。注:具体的缩进值,由变量comment-column,来决定
    ctrl u ctrl space 让光标跳回上一个mark
    ESC q 把注释整形
    ESC ctrl a beginning-of-defun 移动光标到函数的开头
    ESC ctrl e end-of-defun 移动光标到函数的末尾
    ESC ctrl h c-mark-function 移动光标到函数的开头,并把mark放到函数的末尾,即把整个函数的内容复制了,在按ctrl y时,粘贴的就是整个函数的内容。

    在条件编译块间移动

    当读开源的源码时,发现为了应对不同的系统,有很多条件编译在里面,有了以条件编译块为单位的移动,简直是一种极大的恩赐。

    键盘操作 键盘操作对应函数名 说明
    ctrl c ctrl u c-up-conditonal 当光标在条件编译块中时,把光标移动到当前条件编译块的起始位置
    ctrl c ctrl p c-backwark-conditonal 当光在条件编译块的起始行时,把光标移动到上一个条件编译块的起始位置
    ctrl c ctrl n c-forward-conditonal 当光在条件编译块的起始行时,把光标移动到当前条件编译块的末尾位置

    请看下面的例子,假设...处都有上百行的代码。

    #ifdef aaa  //-----①
    ... //-----④
    #else
    ... //-----
    #endif
    ... //-----②
    #ifdef bbb//-----③
    ... //-----
    #else
    ... //-----
    #endif
    

    1,当光标在①的行首时,按ctrl c ctrl n,光标移动到②的行首

    2, 当光标在②或者③时,按ctrl c ctrl p,光标移动到①的行首

    3,当光标在④时,按ctrl c ctrl u,光标移动到①的行首

    选择代码的样式(缩进等)(函数名:c-set-style)

    自动换行(ctrl c ctrl a)(c-toggle-auto-state)

    当输入【;】,【{】, 【}】会自动换行并缩进

    饥饿删除(ctrl c ctrl d)(c-toggle-hungry-state)

    当按【backspace】键时,如果光标前有多个空格,或者回车,会把他们全部删除

    通过一个函数(c-toggle-auto-hungry-state)设置:既能自动换行,也能饥饿删除

    c/c++ 学习互助QQ群:877684253

    本人微信:xiaoshitou5854

  • 相关阅读:
    TV
    [转载]如果看了这篇文章你还不懂傅里叶变换,那就过来掐死我吧
    search result
    floating-camera
    HDU 1032.The 3n + 1 problem【注意细节】【预计数据不强】【8月21】
    C语言socket send()数据缓存问题
    Marlin固件之—:基础入门与測试
    java语句顺序有时非常重要
    Android Studio 使用正式签名进行调试
    插入排序、交换排序、选择排序、归并排序、基数排序
  • 原文地址:https://www.cnblogs.com/xiaoshiwang/p/11872129.html
Copyright © 2011-2022 走看看