Archived
Initial commit for v1.0 of Simply Emacs.
This commit is contained in:
Executable
+83
@@ -0,0 +1,83 @@
|
||||
;;; init-git.el --- Magit configuration -*- lexical-binding: t; -*-
|
||||
|
||||
;;; Commentary:
|
||||
;; Use Magit with its native keybindings while preserving Evil's window
|
||||
;; management.
|
||||
;;
|
||||
;; Magit buffers are displayed in a dedicated side window on the right.
|
||||
;;
|
||||
;; Custom keybindings:
|
||||
;; C-c C-g - Open Magit
|
||||
;; C-w - Evil window map
|
||||
;; j - Next section
|
||||
;; k - Previous section
|
||||
;; q - Kill Magit buffer and close the side window
|
||||
|
||||
;;; Code:
|
||||
|
||||
(use-package magit
|
||||
:after evil
|
||||
|
||||
:bind
|
||||
(("C-c C-g" . magit-status))
|
||||
|
||||
:config
|
||||
|
||||
;; Magit appearance and behaviour.
|
||||
|
||||
;; Highlight the exact characters that changed.
|
||||
(setq magit-diff-refine-hunk 'all)
|
||||
|
||||
;; Show more surrounding context in diffs.
|
||||
(setq magit-diff-context-lines 5)
|
||||
|
||||
;; Show all transient options.
|
||||
(setq transient-default-level 5)
|
||||
|
||||
;; Don't ask about saving modified buffers.
|
||||
(setq magit-save-repository-buffers 'dontask)
|
||||
|
||||
;; Display Magit in a dedicated side window on the right.
|
||||
|
||||
(add-to-list
|
||||
'display-buffer-alist
|
||||
'("\\*magit"
|
||||
(display-buffer-in-side-window)
|
||||
(side . right)
|
||||
(slot . 0)
|
||||
(window-width . 0.45)
|
||||
(dedicated . t)))
|
||||
|
||||
;; Custom commands.
|
||||
|
||||
(defun my/magit-quit ()
|
||||
"Kill the current Magit buffer and close its window."
|
||||
(interactive)
|
||||
(quit-window t))
|
||||
|
||||
;; Keybindings.
|
||||
|
||||
(dolist (map '(magit-mode-map
|
||||
magit-status-mode-map
|
||||
magit-log-mode-map
|
||||
magit-diff-mode-map
|
||||
magit-revision-mode-map))
|
||||
(with-eval-after-load 'magit
|
||||
(when (boundp map)
|
||||
(let ((keymap (symbol-value map)))
|
||||
;; Keep Evil window commands.
|
||||
(define-key keymap (kbd "C-w") evil-window-map)
|
||||
|
||||
;; Vim-style movement.
|
||||
(define-key keymap (kbd "j") #'magit-section-forward)
|
||||
(define-key keymap (kbd "k") #'magit-section-backward)
|
||||
|
||||
;; Quit Magit.
|
||||
(define-key keymap (kbd "q") #'my/magit-quit)))))
|
||||
|
||||
(with-eval-after-load 'which-key
|
||||
(which-key-add-key-based-replacements
|
||||
"C-c C-g" "Magit")))
|
||||
|
||||
(provide 'init-git)
|
||||
;;; init-git.el ends here
|
||||
Reference in New Issue
Block a user