Files
nixfiles/xdg/emacs/bindings.el

77 lines
2.3 KiB
EmacsLisp

;; bindings.el
;; Let C-o have the same function as C-x
(use-local-map (make-sparse-keymap))
(global-set-key (kbd "C-o") ctl-x-map)
(global-set-key "\C-o\C-o" 'exchange-point-and-mark)
;; assign another commnad to M-x, for running commands not bound to a key.
(global-set-key "\C-ot" 'execute-extended-command)
;; attempt to use C-w instead of backspace
(global-set-key "\C-w" 'backward-kill-word)
(global-set-key "\M-W" 'kill-region)
;; Make C-a go to the beginning of typed lines
(global-set-key "\C-a" 'back-to-indentation)
(global-set-key "\M-m" 'move-beginning-of-line)
(global-set-key (kbd "M-#") 'comment-or-uncomment-region)
(global-set-key "\C-z" 'eshell)
;; Use expand-region.
(global-set-key (kbd "M-SPC") 'er/expand-region)
;; Basic binding for hide-show mode
;; Bind
(global-set-key (kbd "C-'") 'other-window)
(global-set-key (kbd "C-,") (lambda () (interactive) (switch-to-buffer (other-buffer))))
;; Magit settings
(global-set-key (kbd "M-g s") 'magit-status)
(global-set-key (kbd "M-g M-s") 'magit-status)
(define-key ctl-x-map (kbd "g") 'magit-status)
(define-key ctl-x-map (kbd "C-g") 'magit-status)
;; Dired mode bindings
(define-key ctl-x-map (kbd "d") (lambda () (interactive) (dired (file-name-directory (or load-file-name buffer-file-name)))))
(define-key ctl-x-map (kbd "C-d") (lambda () (interactive) (dired (file-name-directory (or load-file-name buffer-file-name)))))
;; Fix minor modes overwriting my keybindings
(add-hook 'org-mode-hook
'(lambda ()
(define-key org-mode-map (kbd "C-'") nil)))
(add-hook 'flyspell-mode-hook
'(lambda ()
(define-key flyspell-mode-map (kbd "C-,") nil)))
(add-hook 'dired-mode-hook
'(lambda ()
(define-key dired-mode-map (kbd "C-o") nil)))
(add-hook 'read-only-mode-hook
'(lambda ()
(local-set-key (kbd "j")
'(lambda () (interactive) (scroll-up 3)))
(local-set-key (kbd "k")
'(lambda () (interactive) (scroll-down 3)))))
(global-set-key (kbd "C-c e") 'eval-and-replace)
;; projectile mode stuff
(add-hook 'projectile-mode-hook
'(lambda ()
(define-key projectile-mode-map (kbd "s-p") 'projectile-command-map)
(define-key projectile-mode-map (kbd "C-c p") 'projectile-command-map)))
(global-set-key [f8] 'neotree-project-dir)
(add-hook 'lsp-mode-hook
'(lambda ()
(define-key lsp-mode-map (kbd "C-c C-l") 'lsp-command-map)))