Intellij idea 标签行开头的Emacs退格类似intellij?

Intellij idea 标签行开头的Emacs退格类似intellij?,intellij-idea,emacs,backspace,Intellij Idea,Emacs,Backspace,在intellij中,当您在新行开始处的制表符缩进为4时,按backspace键,它会在前面的所有空白处退格,并转到前一行的制表符缩进为4 在emacs中,在相同的情况下,它会在单个空间中退格 如何使emacs表现得像intelij的退格系统?有这个插件吗 以下是在intelij中单击backspace时发生的情况的示例: 我相信这已经接近你想要的了: (defun my-backspace () (interactive) (let* ((end (save-excursion

在intellij中,当您在新行开始处的制表符缩进为4时,按backspace键,它会在前面的所有空白处退格,并转到前一行的制表符缩进为4

在emacs中,在相同的情况下,它会在单个空间中退格

如何使emacs表现得像intelij的退格系统?有这个插件吗

以下是在intelij中单击backspace时发生的情况的示例:


我相信这已经接近你想要的了:

(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)

如果前一行有文本,该怎么办?返回到上一行文本的结尾还是返回到当前行的开头?另外,
C-hk Backspace
的输出是什么?你不应该让Emacs太像其他东西-只要学会用Emacs“语言”的最佳方式来做,并专注于更重要的事情,否则你可能会因为你的特殊情况而失去其他东西。如果前一行有文本,它应该退格到前一行文本的末尾。这非常有效,除了c-electric-backspace不是一个函数;然后我将c-electric-backspace更改为(删除backward char 1)。现在,一切都按照预期进行,除了当我打开文件时(ergoemacs中的ctrl+o),backspace键什么都不做。你知道怎么解决吗?