Frage

Ich verwende den folgenden Smart-Registerkarte defun in meiner .emacs für entweder nach Beendigung auf einem Wort oder nur ein Standard-Tab zu tun:

(global-set-key [(tab)] 'smart-tab)
(defun smart-tab ()
  "This smart tab is minibuffer compliant: it acts as usual in
    the minibuffer. Else, if mark is active, indents region. Else if
    point is at the end of a symbol, expands it. Else indents the
    current line."
  (interactive)
  (if (minibufferp)
      (unless (minibuffer-complete)
        (dabbrev-expand nil))
    (if mark-active
        (indent-region (region-beginning)
                       (region-end))
      (if (looking-at "\\_>")
          (dabbrev-expand nil)
        (indent-for-tab-command)))))

Allerdings, wenn ich magit-status für Git Git Integration mit bin, kann ich vorher eine Datei auswählen, die eine Änderung, Hit Registerkarte hatte, und sofort einen Diff auf dieser Datei sehen, um zu sehen, was geändert worden ist. Jedes Mal, wenn ich eine Registerkarte jetzt versuchen, bekomme ich die folgenden Fehler in meinem Mini-Puffer.

indent-relative: Buffer is read-only: #<buffer *magit: my_project*

Alle Gedanken zu diesem Thema nähern und vielleicht Smart-Tab oben auf bestimmte Modi Anwendung nur?

Danke!

War es hilfreich?

Lösung

Ich bin der Maintainer von Smart-Registerkarte verfügbar von GitHub . Die neueste Version eine kleinere Modus definiert, die sich in einem schaltet sich aus, Nur-Lese-Puffer oder die Minipuffer, so dass Dinge wie Ido-Modus und magit richtig arbeiten. Es ist auch besser auf Situationen Umgang mit dem Sie die Taste Lauf ein anderer Befehl als indent-for-tab-command, wie org-Modus möchten. Ich empfehle Ihnen, die GitHub-Version verwenden, da es eine Menge von den Kopfschmerzen der Basisversion mit einem globalen Keybinding vermeidet.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top