Emacs中的原语缩进

Emacs中的原语缩进,emacs,indentation,Emacs,Indentation,Emacs是否有一个简单的原语缩进模式,可以执行以下操作: 当我转到新行(按回车键)时,复制用于缩进的任何空白 按Tab键时,在按Tab键的位置插入可配置的缩进字符(空格/制表符)。只需插入空格/制表符,不要进行“智能”缩进 [可选]按Shift+Tab键时,从当前行的开头删除一个缩进字符 [可选]缩进/取消缩进选定块 问题是:这样的模式存在吗?如果,它的名字是什么 我不想开始讨论“我为什么需要这种行为?”我也不需要“聪明”的替代品,原因超出了这个话题 我只是想要一个简单的愚蠢模式 Emacs在

Emacs是否有一个简单的原语缩进模式,可以执行以下操作:

  • 当我转到新行(按回车键)时,复制用于缩进的任何空白

  • 按Tab键时,在按Tab键的位置插入可配置的缩进字符(空格/制表符)。只需插入空格/制表符,不要进行“智能”缩进

  • [可选]按Shift+Tab键时,从当前行的开头删除一个缩进字符

  • [可选]缩进/取消缩进选定块

  • 问题是:这样的模式存在吗?如果,它的名字是什么

    我不想开始讨论“我为什么需要这种行为?”我也不需要“聪明”的替代品,原因超出了这个话题

    我只是想要一个简单的愚蠢模式

    Emacs在那里已经有很多年了。某个时间某个地方一定有人问过这个问题,并可能为此编写了一个模式


    我浏览了很多“缩进相关”的话题。。。那里什么也没有。每个人都坚持“你应该服从Emacs,而不是Emacs应该服从你”。

    1.
    基本模式下,你可以重新绑定RET到
    换行和缩进

    (local-set-key (kbd "RET") 'newline-and-indent)
    
    2.要使制表符插入制表符/空格而不是缩进,应自定义
    制表符始终缩进变量:

    (setq tab-always-indent nil)
    
    要在制表符缩进和空格缩进之间进行选择,请自定义
    缩进制表符模式
    变量

    (setq indent-tabs-mode t)   ;; for tab-based indentation
    (setq indent-tabs-mode nil) ;; for space-based indentation
    

    我不知道有任何标准的方法来做点3.4.,但是开发小型定制函数来做这件事应该不会太难。

    好了,我只是写了一句:

    嗯。。默认情况下,emacs应该执行1和2@PatrickOP请求是“按tab键缩进”,而不是自动缩进。所以默认情况下,emacs不会通过按
    RET
    @kindahero缩进:哦,等等,我看错了。我收回我以前的评论。@kindahero,不完全是。无论前一行使用了什么,它都会以空格缩进。Tab也会插入空格1)和C-j一样。它不保留很多需要的空白字符,而是缩进。2)
    (setq选项卡总是缩进为零)
    实际上非常好:)谢谢!