如何在自定义主要模式下设置选项卡行为?

How to set tab behaviour in a custom major mode?

目前我正在编写的主要模式下按Tab键将点移动一定数量的空格。

我想要发生的更像是 python 模式如何使制表符将整行移动到正确的缩进。

有人知道这是怎么做到的吗?

在主模式函数中适当设置indent-line-function,例如像

(defun my-mode-indent-line (&optional _arg)
  ...)

(define-derived-mode my-mode prog-mode "MyMode"
  "Have fun with My Mode."
  ...
  (setq-local indent-line-function #'my-mode-indent-line)
  ...)