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

最新文章

  1. 关于DOM的操作以及性能优化问题-重绘重排
  2. 使用NUGet自动下载(还原)项目中使用的包
  3. 获取本机的IP地址(局域网)与主机名称
  4. 前端页面div float 后高度 height 自适应的问题
  5. javascript设计模式-迭代器模式(Iterator)
  6. delphi xe5 android 开发实现手机打电话和发短信
  7. HTML5最佳实践
  8. VMware Workstation(虚拟机软件) V10.0 简体中文版可以安装了
  9. django管理数据库之中文字符编码问题
  10. 2. Spring 的 HelloWorld
  11. The Moon and Sixpence摘抄
  12. SpringBoot初体验及原理解析
  13. 存储过程+Jquery+WebService实现三级联动:
  14. OC转场动画UIViewControllerTransitioningDelegate
  15. DNN例子
  16. JavaScript基础事件(6)
  17. C#直接用数字定义背景颜色
  18. PHP处理表单数据的一个安全回顾(记录教训)
  19. Ubuntu 12.04 部署 PostGIS 2.1
  20. Linux系统下tomcat安装配置

热门文章

  1. js闭包计数器及闭包的思考
  2. 介绍Dynamics 365 Customer Engagement中的备用键(alternate key)
  3. SAP 不支持交货单中同一个物料多个行项目HU与序列号组合发货场景
  4. Android studio将一个项目作为module导入另一个项目
  5. R Data Frame
  6. 一文解读HTTP (转)
  7. 解决Mac下java多版本共存问题
  8. python获取指定文件夹下的文件和文件夹
  9. 关于CCTextFieldTTF的几点注意事项
  10. JavaScript调用mysql查询bigint数据精度失真解决方案