首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在文本模式下在Emacs中设置4个空格缩进?

如何在文本模式下在Emacs中设置4个空格缩进?
EN

Stack Overflow用户
提问于 2018-03-22 07:55:19
回答 2查看 0关注 0票数 0

TAB使用主模式按下缓冲区时,我一直没有成功让Emacs从8个空间制表符切换到4个空间制表符text-mode。我已将以下内容添加到我的.emacs

代码语言:javascript
复制
(setq-default indent-tabs-mode nil)
(setq-default tab-width 4)

;;; And I have tried
(setq indent-tabs-mode nil)
(setq tab-width 4)

无论我如何更改我的.emacs文件(或我的缓冲区的局部变量),TAB按钮始终会执行相同的操作。

  1. 如果上面没有文字,请缩进8个空格
  2. 如果上一行有文本,请缩进第二个单词的开头

尽管我爱Emacs,但这变得令人讨厌。有没有办法让Emacs在上一行没有文本的情况下至少缩进4个空格?

EN

Stack Overflow用户

发布于 2018-03-22 17:26:54

简短的回答:

关键是告诉emacs在缩进时插入任何你想要的东西,这是通过改变缩进线功能来完成的。将它更改为插入一个选项卡然后将选项卡更改为4个空格而不是将其更改为插入4个空格更容易。以下配置将解决你的问题:

代码语言:javascript
复制
(setq-default indent-tabs-mode nil)
(setq-default tab-width 4)
(setq indent-line-function 'insert-tab)

说明:

来自缩进由Major Mode @ emacs手动控制:

每种主要模式的一个重要功能是自定义键以正确缩进正在编辑的语言。 [...] indent-line-function变量是由(和​​各种命令使用的,比如在调用缩进区域时)缩进当前行的函数。indent-by-to-mode命令只不过是调用这个函数。 [...] 默认值是许多模式的缩进相对值。

来自indent-relative @ emacs手册:

缩进相对空间在前一个非空行的下一个缩进点之前。 [...] 如果前一个非空行在列起始点之后没有缩进点,那么将执行“制表符到制表符”。

只需将indent-line-function的值更改为insert-tab函数,并将tab插入配置为4个空格即可。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100007738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档