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分钟就退出删除了. 这次硬着头皮,打开几篇文章都看完 ...
随机推荐
- form-data、x-www-form-urlencoded、raw、binary的区别(非原创)
文章大纲 一.form-data介绍二.x-www-form-urlencoded介绍三.raw介绍四.binary介绍五.参考文章 一.form-data介绍 http请求中的multipart/f ...
- cookie,webstorage的理解
在前两天的开发时,遇到一个问题,需要将一个网页在预加载时,优先出一个弹出框,但是再次加载时不希望它出现,在经过一段时间的搜索和尝试之后,发现了大多使用的两种方式:生成cookie和webStorage ...
- Hive表的几种存储格式
Hive的文件存储格式: textFile textFile为默认格式 存储方式:行存储 缺点:磁盘开销大:数据解析开销大:压缩的text文件,hive无法进行合并和拆分 sequencefile 二 ...
- macOS 10.15 开启 HiDPI
普通的显示,接上 MacBook 发现原生的分辨率设置在 2K 显示器上字体很小,换成 1080P 分辨率显示效果又特别模糊.下面介绍MacBook强行开启 HiDPI. 什么是 HiDPI 它使用横 ...
- AcWing 901. 滑雪
地址 https://www.acwing.com/problem/content/description/903/ 题目描述给定一个R行C列的矩阵,表示一个矩形网格滑雪场. 矩阵中第 i 行第 j ...
- maven help 插件
maven help 插件 <build> <plugins> <plugin> <groupId>org.apache.maven.plugins&l ...
- Docker安装MySQL 8.0并挂载数据及配置文件
安装部署环境 Ubuntu 18.04.3 LTS Docker 19.03.2 MySQL latest(8.0.17) 下载镜像 # docker从仓库中拉取最新版的mysql镜像,如果没加标签的 ...
- 简单App项目的运行
我和我的同伴两个人从网上下载一个仿微信登录源码,导入到eclipse中,两人结队练习这个源代码的操作, 运行项目到Android虚拟器上,显示效果为 我们还运行这个项目到手机设备上,显示效果为 接 ...
- 【OCR技术系列之二】文字定位于切割
要做文字识别,第一步要考虑的就是怎么将每一个字符从图片中切割下来,然后才可以送入我们设计好的模型进行字符识别.现在就以下面这张图片为例,说一说最一般的字符切割的步骤是哪些. 当然,我们实际上要识别的图 ...
- P站全新官方精选集Pixivision
P站是一个主要由日本艺术家所组成的虚拟社群,主打插画.漫画.二次元作品网上沟通. 不过好消息是,P站全新的精选网站Pixivision上线了,多种语言界面,国内用户访问毫无压力. 近期精选的一系列作品 ...