emacs 缩进
emacs提供一些编码风格,可以使用M-x c-set-style
来选择你喜欢的编码风格。
Possible completions are:
awk bsd cc-mode ellemtel gnu java
k&r linux python stroustrup user whitesmith
当你开发c/c++时,上面的这些风格对于,if,while,for所用的大括号的缩进,有点不尽人意。具体来说是下面的样子:
if(...)
{//-----①
...
}
while(...)
{//-----①
...
}
for(...)
{//-----①
...
}
看着非常不爽,我想要下面的样子:
if(...)
{
...
}
while(...)
{
...
}
for(...)
{
...
}
如何解决呢?
步骤1:把光标移动到①处。
步骤2:按ctrl-c ctrl-o(函数:c-set-offset )后,minibuffer的显示如下:
注意:显示的【substatement-open】是函数c-set-offset的第一个参数。
步骤3:按回车后,minibuffer的显示如下:
可以输入数字,特殊字符。特殊字符包括【+
, -
, ++
, --
, *
, /
】。
这些特殊字符的含义:指出是变量 c-basic-offset
的多少倍。
零:代表和上一行对齐,不继续缩进。所以【{】就和上一行对齐了,达到了我的目的。
n:代表在对齐上一行的基础上,在缩进n个空格。
+:
c-basic-offset
times 1-:
c-basic-offset
times −1++:
c-basic-offset
times 2--:
c-basic-offset
times −2*:
c-basic-offset
times 0.5/:
c-basic-offset
times −0.5
步骤4:选中if,for,while区域按TAB。
完成上面4个步骤后,if,while,for所用的大括号的缩进,就和if,while,for对齐。
想让上面的设置永久生效的化,就写如.emacs里。
(add-hook 'c-mode-common-hook
(lambda ()
(c-set-offset 'substatement-open 0)))
另外如果开启了自动换行和饥饿删除功能,配合缩进设置就更好用了。
(add-hook 'c-mode-common-hook
(lambda ()
(c-set-offset 'substatement-open 0)
(c-toggle-auto-hungry-state)));;启动自动换行和饥饿删除功能
最后,当你发现任何地方的缩进不是你想要的,都可以通过调用函数c-set-offset,并指定参数和缩进的值,来实现。当不知道参数是啥的时候,就把光标放到那一行,按ctrl-c ctrl-o后,在minibuffer上显示的名字就是你想要的参数的名字。
c/c++ 学习互助QQ群:877684253
本人微信:xiaoshitou5854
emacs 缩进的更多相关文章
- linuxtoy.org资源
https://linuxtoy.org/archives.html Archives 在 Android 系统上安装 Debian Linux 与 R (2015-07-14) Pinos:实现摄像 ...
- [emacs] emacs调整C代码的缩进格式等
相比于VIM,emacs在默认配置下写C代码还真是不好用. 好多东西都要调整,其中最麻烦的就是缩进.调啊调,调了好久. 勉强形成一个配置如下: (add-hook 'c-mode-hook (lamb ...
- emacs设置tab缩进
这两天使用Emacs自带的JavaScriptMode时,发现与其它编辑器下缩进不同,而且用emacs重新缩进对齐后,再用其它的编辑器打时缩进却乱掉了.分析应该是Tab缩进的问题,在.emacs中增加 ...
- Emacs 配置文件
以下是我整理的 emacs 配置文件,供刚开始玩 emacs 的同学参考.网上有人说:emacs 是神的编辑器,如果能够用到这样的编辑器,那这个人就是神了.从我个人的经验来看,emacs 是一把利器, ...
- (翻译)Emacs Hooks
Table of Contents 1. 51.2.2 Hooks 51.2.2 Hooks Hooks(钩子或挂钩,为了保持文章的纯正性,这种专有名词不做翻译,后续以hooks为主),是定制化Ema ...
- Emacs学习心得之 基础配置
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Emacs学习心得之 基础配置 1.前言2.基础配置 一.前言 本篇博文记录了Emacs的一 ...
- emacs 新手笔记(三) —— 为 emacs 做一点简单的定制
ilocker:关注 Android 安全(新入行,0基础) QQ: 2597294287 在 emacs 启动时,会加载 ~/.emacs 文件.在该文件中编辑一些 lisp 代码,是一种最为简单的 ...
- Emacs杂谈(一)Emacs环境 c++ 快捷键
最近头脑发热(抽),重装了电脑,改成linux的ubuntu系统,熟悉一下环境,顺便转载相关emacs知识. //插播一则通知:似乎linux上vector不能用,会内存炸错,若有人可以解答,请用评论 ...
- emacs最简单入门,只要10分钟
macs最简单入门,只要10分钟 windwiny @2013 无聊的时候又看到鼓吹emacs的文章,以前也有几次想尝试,结果都是玩不到10分钟就退出删除了. 这次硬着头皮,打开几篇文章都看完 ...
随机推荐
- vue-cli引用vant使用rem自适应
摘要 由于需要用到弹出层但是懒得造轮子所以使用vant 介绍 使用的node包管理器为yarn vue-cli版本4 rem计算方式为index.html的js脚本计算 安装vant yarn add ...
- DOM HTML
DOM HTML HTML DOM 允许 JavaScript 改变 HTML 元素的内容. 改变 HTML 输出流 JavaScript 能够创建动态的 HTML 内容: 今天的日期是: Tue J ...
- QT--HTTP图片下载器
QT--HTTP图片下载器 1.http使用前提 QT += core gui network //必须加上network 2.必须头文件 #include <QNetwork ...
- 如何判断Linux系统安装在VMware上?
如何判断当前Linux系统是否安装在VMware上面呢? 因为公司大部分服务器位于VMware上,也有小部分系统部署在物理机上面.今天老大要求统计一下VMware和物理机上服务器的数量,个人简单测试. ...
- GO 使用静态链接库编译 生成可执行文件 使用第三方 .a 文件,无源码构造
go build 和 go install 都需要使用源码来进行编译.但是有时候我们只有.a或者.so文件.并不能获取到第三方库的源码,这时我们需要静态链接库编译的技巧: 上图是实验前的文件分布. 使 ...
- Druid-代码段-4-1
所属文章:池化技术(一)Druid是如何管理数据库连接的? 本代码段对应主流程4,丢弃连接的守护线程: //连接池瘦身,参考主流程4 public class DestroyConnectionThr ...
- day90_11_12
一.路由与正则. 1.当函数中需要参数,而不在路由中匹配的时候需要使用default方法: @app.route('/index/<testreg("\d+"):nid> ...
- C语言中,嵌套的if语句的一些经验...
double f(double x){double result;if(x<0)result=-x+sin(x);else if(x==0)result=0; else if(10> ...
- Sublime和VSCode生成基础HTML代码
我们在编写前端页面时,常希望能自动生成基础的HTML代码.而在Sublime和VSCode就有这样的功能 在Sublime中,在编辑栏输入html,然后敲Tab键,则自动生成代码如下: <!DO ...
- 07-selenium、PhantomJS(无头浏览器)
selenium(自动化测试工具可用于在爬虫中解决js动态加载问题) 简介(本质就是模仿浏览器工作) Selenium 是什么?一句话,自动化测试工具.它支持各种浏览器,包括 Chrome,Safar ...