2015-10-06 3 views
0

Dans intellij, quand vous êtes à un retrait de tabulation disons 4, au début d'une nouvelle ligne, et vous appuyez sur retour arrière, il parcourt tous les espaces précédents et passe à l'onglet retrait de 4 à la précédente ligne.Emacs retour arrière au début de la ligne à onglet similaire à intellij?

Dans emacs, dans la même situation, il recule d'un seul espace.

Comment faire pour que emacs se comporte comme le système d'arrière-plan d'intelij? Y a-t-il un plugin pour ça?

Voici un exemple de ce qui se passe lorsque vous appuyez sur backspace dans intelij: enter image description here

enter image description here

+0

Que devrait-il faire en cas est le texte sur la ligne précédente? Retour à la fin du texte sur la ligne précédente ou retour au début de la ligne en cours? Aussi, quelle est la sortie de 'C-h k Backspace'? –

+0

Emacs ne devrait pas trop ressembler à autre chose - il suffit d'apprendre à le faire de la meilleure manière dans le «langage» d'Emacs et de se concentrer sur des choses plus importantes, sinon vous risquez de perdre quelque chose grâce à vos personnalisations . –

+0

S'il y a du texte sur la ligne précédente, il faut revenir en arrière à la fin du texte sur la ligne précédente. – Noah

Répondre

1

Je crois que c'est proche de ce que vous voulez:

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

Cela fonctionne parfaitement, sauf que le retour arrière c-électrique n'est pas une fonction; J'ai ensuite changé c-electric-backspace en (delete-backward-char 1). Maintenant tout se comporte comme prévu, sauf que lorsque je vais ouvrir un fichier (ctrl + o dans ergoemacs), la touche backspace ne fait rien. Une idée sur la façon de résoudre ce problème? – Noah

+0

Ah, ça va, ça a l'air de marcher maintenant. – Noah