I use C-Tab and C-Shift-Tab to navigate buffer as I would do in a browser. Unfortunately, in magit-mode (which I call using magit-status), the key is bound to some diff expansion. The means that I can't switch buffers the ways I would like to as soon as one buffer is in magit-mode. I tried removing the binding using

(define-key magit-mode-map
    (kbd "C-<Tab>") nil)

However, this does not seem to have any effect. Any ideas on how to fix this?


Regarding my settings: I have a .emacs.d/buffers.el which has a line defining the key binding: (global-set-key [C-tab] 'next-buffer).

I am using use-package to load magit:

(use-package magit
  :ensure t
  (define-key magit-mode-map (kbd "C-<Tab>") nil)
  (with-eval-after-load 'magit-mode
    (define-key magit-mode-map (kbd "<C-Tab>") nil))
  (setq magit-display-buffer-function
        (lambda (buffer)
          (display-buffer buffer '(display-buffer-same-window)))))

I added the suggestion by Konstantin Morenko, but C-Tab still does not work properly.


1 Answer 1


According to Remove key binding in magit-status-mode use in init.el

(with-eval-after-load 'magit-mode
  (define-key magit-mode-map (kbd "<C-Tab>") nil))

The (with-eval-after-load FILE &opt BODY) executes BODY after the FILE is loaded, so, it will rebind keys only after the keybind in magit-mode will be created.


From the documentation of bind-key.el from use-package

;; If you have lots of keybindings set in your .emacs file, it can be hard to
;; know which ones you haven't set yet, and which may now be overriding some
;; new default in a new emacs version.  This module aims to solve that
;; problem.
;; Bind keys as follows in your .emacs:
;;   (require 'bind-key)
;;   (bind-key "C-c x" 'my-ctrl-c-x-command)
;; If you want the keybinding to override all minor modes that may also bind
;; the same key, use the `bind-key*' form:
;;   (bind-key* "<C-return>" 'other-window)

So, use in your buffers.el

(require 'bind-key)
(bind-key "<C-Tab>" 'next-buffer)
  • Thx, I used bind-key* and everything works perfectly.
    – hfhc2
    Commented Jul 29, 2016 at 15:46
  • It did not work on my setup (Emacs on Windows) until I converted the first letter of "Tab" to lower case: (kbd "<C-tab>")
    – kotchwane
    Commented May 13, 2020 at 13:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.