Emacs缩进功能

dar*_*sky 4 c emacs indentation cc-mode

cc-mode在Emacs 工作,我发现缩进非常烦人.

作为一个VIM用户,我几乎习惯了更长的缩进,以及尽可能多地按Tab键选项卡.

在Emacs中,我的TAB映射到goto-line.首先,哪个函数设计用于缩进当前行(或者点之后的内容)?indent-region很烦人,因为你需要突出显示该区域.

第二,修复缩进的最佳方法是什么?

谢谢,

acu*_*ich 8

您可以看到当前正在使用哪种Tab键M-x describe-variable RET c-indentation-style(但正如文档所述,不要直接设置此变量,而是使用M-x c-set-style).

变量c-basic-offset是控制标签的内容cc-mode,它的默认值set-from-style意味着标签将继承自你设置的C风格,M-x set-c-style它允许你从一组内置样式中选择(见下文),或者你可以创建你的自己的风格.您可以看到如何定义样式M-x describe-variable RET c-style-alist,然后您可以使用其中一个作为模板M-x c-add-style.

  • gnu - 自由软件基金会为GNU程序中的C代码祝福的编码风格.
  • k&r - C代码的经典Kernighan和Ritchie风格.
  • bsd - 在Eric Allman之后也被称为"Allman风格".
  • whitesmith - 通过Whitesmiths C附带的例子推广,这是一个早期的商业C编译器.
  • stroustrup - C++代码的经典Stroustrup风格.
  • ellemtel - 由"C++编程,规则和建议"定义的流行C++编码标准,Erik Nyquist和Mats Henricson,Ellemtel ^ 1.
  • linux - Linux(内核)的C编码标准.
  • python - Python扩展模块的编码标准^ 2.
  • java - 编辑Java代码的样式.请注意,当您输入java-mode时,c-default-style的默认值将安装此样式.
  • awk - 编辑AWK代码的样式.请注意,当您输入awk-mode时,c-default-style的默认值将安装此样式.
  • user - 这是您创建的特殊样式.它由所有样式变量的出厂默认值组成,这些变量由您使用Customization界面进行的自定义修改,或者通过在.emacs文件的顶层编写setqs和c-set-offsets来修改(请参阅Config Basics).样式系统在初始化时创建此样式,之后不会对其进行修改.

更新:

其他人建议使用tab键来插入\t制表符,但请不要强制插入制表符!正如StackOverflow的创建者之一所说的那样,"只有白痴会使用标签来格式化他们的代码".现在这有点苛刻,但值得注意的是,即便是两个最大的竞争对手谷歌微软也同意这一点(即使他们默认建议使用不同数量的空间).

谷歌说:

仅使用空格,并一次缩进2个空格.

微软说:

不应在代码中使用制表符(\ 0x09).所有缩进都应该用4个空格字符完成.

此外,emacswiki有一个关于Tabs is Evil的部分.

所以,出去解决吧!