Я использую следующую умную вкладку defun в моем .emacs для завершения слова или просто для стандартной вкладки:
(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)))))
Однако, когда я использую magit-status
для интеграции с git Git, я мог предварительно выбрать файл, в который была внесена модификация, нажать вкладку и сразу же увидеть diff в этом файле, чтобы увидеть, что было изменено. Однако всякий раз, когда я пытаюсь открыть вкладку, в мини-буфере появляется следующая ошибка:
indent-relative: Buffer is read-only: #<buffer *magit: my_project*
Есть какие-нибудь мысли по поводу приближения к этому и, возможно, применения смарт-вкладки выше только для определенных режимов?
Спасибо!