标签行开头的 Emacs 退格键类似于 intellij?

Emacs backspace at beginning of tabbed line similar to intellij?

在 intellij 中,当你在一个新行的开始缩进比方说 4 的制表符缩进时,你按下返回space,它返回spaces 到所有前面的 whitespace 并转到上一行的制表符缩进 4。

在 emacs 中,在相同的情况下,它通过单个 space 返回space。

如何使 emacs 的行为像 intelij 的后台space 系统?有这个插件吗?

以下是您在 intelij 中回击space时发生的情况的示例:

我相信这很接近你想要的:

(defun my-backspace ()
  (interactive)
  (let* ((end (save-excursion
                (end-of-line)
                (point)))
         (beginning (save-excursion
                      (beginning-of-line)
                      (point))))
    (if (string-match "^[ \t]*$" (buffer-substring beginning end))
        (progn
          (beginning-of-line)
          (kill-line)
          (previous-line)
          (indent-for-tab-command)
          (end-of-line))
      (c-electric-backspace))))

 (define-key c-mode-map (kbd "DEL") 'my-backspace)