add keybindings
This commit is contained in:
6 files changed
+179
-9
No files matched your search
@@ -109,6 +109,7 @@ If freezing sometimes, decrease it. If stuttering, increase it.")
|
|||||||
(require 'init-edit)
|
(require 'init-edit)
|
||||||
(require 'init-theme)
|
(require 'init-theme)
|
||||||
(require 'init-vertico)
|
(require 'init-vertico)
|
||||||
|
(require 'init-keybindings)
|
||||||
|
|
||||||
(require 'which-key)
|
(require 'which-key)
|
||||||
(setq which-key-show-early-on-C-h t)
|
(setq which-key-show-early-on-C-h t)
|
||||||
|
|||||||
@@ -20,13 +20,6 @@
|
|||||||
"symbol-overlay")
|
"symbol-overlay")
|
||||||
|
|
||||||
|
|
||||||
;;; mwim
|
|
||||||
(lazy-load-global-keys
|
|
||||||
'(("C-a" . mwim-beginning-of-code-or-line)
|
|
||||||
("C-e" . mwim-end-of-code-or-line))
|
|
||||||
"mwim")
|
|
||||||
|
|
||||||
|
|
||||||
(setq backward-delete-char-untabify-method 'hungry)
|
(setq backward-delete-char-untabify-method 'hungry)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,92 @@
|
|||||||
|
;; -*- coding: utf-8; lexical-binding: t; -*-
|
||||||
|
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;; open file ;;
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
(defun creature/open-init-file ()
|
||||||
|
"Open init file."
|
||||||
|
(interactive)
|
||||||
|
(find-file (expand-file-name "init.el" creature/config-dir)))
|
||||||
|
|
||||||
|
(defun creature/open-in-external-app (file-path)
|
||||||
|
(if (eq system-type 'windows-nt)
|
||||||
|
(w32-shell-execute "open" (replace-regexp-in-string "/" "\\\\" file-path))
|
||||||
|
(start-process "" nil "xdg-open" file-path)))
|
||||||
|
|
||||||
|
(defun creature/open-file-or-directory-in-external-app (arg)
|
||||||
|
(interactive "P")
|
||||||
|
(if arg
|
||||||
|
(creature/open-in-external-app (expand-file-name default-directory))
|
||||||
|
(let ((file-path (if (derived-mode-p 'dired-mode)
|
||||||
|
(dired-get-file-for-visit)
|
||||||
|
buffer-file-name)))
|
||||||
|
(if file-path
|
||||||
|
(creature/open-in-external-app file-path)
|
||||||
|
(message "No file associated to this buffer")))))
|
||||||
|
|
||||||
|
(defun creature/sudo-edit (&optional arg)
|
||||||
|
(interactive "P")
|
||||||
|
(let ((fname (if (or arg (not buffer-file-name))
|
||||||
|
(read-file-name "File: ")
|
||||||
|
buffer-file-name)))
|
||||||
|
(find-file
|
||||||
|
(cond ((string-match-p "^/ssh:" fname)
|
||||||
|
(with-temp-buffer
|
||||||
|
(insert fname)
|
||||||
|
(search-backward ":")
|
||||||
|
(let ((last-match-end nil)
|
||||||
|
(last-ssh-hostname nil))
|
||||||
|
(while (string-match "@\\\([^:|]+\\\)" fname last-match-end)
|
||||||
|
(setq last-ssh-hostname (or (match-string 1 fname)
|
||||||
|
last-ssh-hostname))
|
||||||
|
(setq last-match-end (match-end 0)))
|
||||||
|
(insert (format "|sudo:%s" (or last-ssh-hostname "localhost"))))
|
||||||
|
(buffer-string)))
|
||||||
|
(t (concat "/sudo:root@localhost:" fname))))))
|
||||||
|
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;; indentation ;;
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
(defvar creature/indent-sensitive-modes
|
||||||
|
'(asm-mode
|
||||||
|
coffee-mode
|
||||||
|
elm-mode
|
||||||
|
haml-mode
|
||||||
|
haskell-mode
|
||||||
|
slim-mode
|
||||||
|
makefile-mode
|
||||||
|
makefile-bsdmake-mode
|
||||||
|
makefile-gmake-mode
|
||||||
|
makefile-imake-mode
|
||||||
|
python-mode
|
||||||
|
yaml-mode)
|
||||||
|
"Modes which disable auto-indenting.")
|
||||||
|
|
||||||
|
(defun creature/fallback-indent-func ()
|
||||||
|
(unless (member major-mode creature/indent-sensitive-modes)
|
||||||
|
(save-excursion
|
||||||
|
(if (region-active-p)
|
||||||
|
(progn
|
||||||
|
(indent-region (region-beginning) (region-end))
|
||||||
|
(message "Indented selected region."))
|
||||||
|
(progn
|
||||||
|
(indent-region (point-min) (point-max))
|
||||||
|
(message "Indented buffer.")))
|
||||||
|
(whitespace-cleanup))))
|
||||||
|
|
||||||
|
(defun creature/indent-region-or-buffer ()
|
||||||
|
"Indent a region if selected, otherwise the whole buffer."
|
||||||
|
(interactive)
|
||||||
|
(if (and (bound-and-true-p prettier-mode)
|
||||||
|
(bound-and-true-p prettier-version)
|
||||||
|
(not (region-active-p)))
|
||||||
|
|
||||||
|
(progn
|
||||||
|
(save-excursion
|
||||||
|
(prettier-prettify))
|
||||||
|
(message "Indented prettier buffer."))
|
||||||
|
|
||||||
|
(creature/fallback-indent-func)))
|
||||||
|
|
||||||
|
|
||||||
|
(provide 'init-func)
|
||||||
@@ -5,6 +5,16 @@
|
|||||||
'(("C-x g" . magit-status))
|
'(("C-x g" . magit-status))
|
||||||
"magit")
|
"magit")
|
||||||
|
|
||||||
|
(lazy-load-local-keys
|
||||||
|
'(("gc" . magit-clone)
|
||||||
|
("gff" . magit-find-file)
|
||||||
|
("gfc" . magit-find-git-config-file)
|
||||||
|
("gfs" . magit-stage-file)
|
||||||
|
("gi" . magit-init)
|
||||||
|
("gl" . magit-list-repositories)
|
||||||
|
("gs" . magit-status))
|
||||||
|
creature/map "magit")
|
||||||
|
|
||||||
;; gpg config
|
;; gpg config
|
||||||
(defun kill-gpg-agent-when-emacs-exit ()
|
(defun kill-gpg-agent-when-emacs-exit ()
|
||||||
"Kill `gpg-agent' for security when Emacs be killed."
|
"Kill `gpg-agent' for security when Emacs be killed."
|
||||||
|
|||||||
@@ -0,0 +1,74 @@
|
|||||||
|
;; -*- coding: utf-8; lexical-binding: t; -*-
|
||||||
|
|
||||||
|
;;; mwim
|
||||||
|
(lazy-load-global-keys
|
||||||
|
'(("C-a" . mwim-beginning-of-code-or-line)
|
||||||
|
("C-e" . mwim-end-of-code-or-line))
|
||||||
|
"mwim")
|
||||||
|
|
||||||
|
|
||||||
|
(require 'init-func)
|
||||||
|
(lazy-load-set-keys
|
||||||
|
'(("C-x k" . kill-this-buffer)
|
||||||
|
("C-x K" . kill-buffer)
|
||||||
|
("C-M-\\" . creature/indent-region-or-buffer)))
|
||||||
|
|
||||||
|
|
||||||
|
(lazy-load-set-keys
|
||||||
|
'(("bb" . switch-to-buffer)
|
||||||
|
("bd" . kill-current-buffer)
|
||||||
|
("be" . eval-buffer)
|
||||||
|
|
||||||
|
("fi" . creature/open-init-file)
|
||||||
|
("fo" . creature/open-file-or-directory-in-external-app)
|
||||||
|
("fj" . dired-jump)
|
||||||
|
("ff" . find-file)
|
||||||
|
("fp" . find-file-at-point)
|
||||||
|
("fs" . save-buffer)
|
||||||
|
|
||||||
|
("hf" . describe-function)
|
||||||
|
("hF" . describe-face)
|
||||||
|
("hv" . describe-variable)
|
||||||
|
("hk" . describe-key)
|
||||||
|
("ho" . describe-symbol)
|
||||||
|
("hp" . describe-package)
|
||||||
|
("qk" . save-buffers-kill-emacs)
|
||||||
|
("qq" . save-buffers-kill-terminal)
|
||||||
|
|
||||||
|
("w" . creature/transient-window)
|
||||||
|
("SPC" . execute-extended-command))
|
||||||
|
creature/map)
|
||||||
|
|
||||||
|
|
||||||
|
(require 'transient)
|
||||||
|
(transient-define-prefix creature/transient-window ()
|
||||||
|
"Show menu buffer for window operations."
|
||||||
|
:transient-suffix 'transient--do-stay
|
||||||
|
:transient-non-suffix 'transient--do-exit
|
||||||
|
[["Jump"
|
||||||
|
("d" "Window down" windmove-down)
|
||||||
|
("u" "Window up" windmove-up)
|
||||||
|
("l" "Window left" windmove-left)
|
||||||
|
("r" "Window right" windmove-right)
|
||||||
|
("p" "Window Previous" (lambda ()
|
||||||
|
(interactive)
|
||||||
|
(other-window -1))
|
||||||
|
)
|
||||||
|
("n" "Window next" other-window)]
|
||||||
|
|
||||||
|
["Size reset"
|
||||||
|
("{" "Height shrink" shrink-window)
|
||||||
|
("}" "Height enlarge" enlarge-window)
|
||||||
|
("[" "Width shrink" shrink-window-horizontally)
|
||||||
|
("]" "Width enlarge" enlarge-window-horizontally)
|
||||||
|
("=" "Banlance" balance-windows :transient nil)]
|
||||||
|
|
||||||
|
["Operation"
|
||||||
|
("-" "Split below" split-window-below)
|
||||||
|
("/" "Split right" split-window-right)
|
||||||
|
("m" "Delete Others" delete-other-windows :transient nil)
|
||||||
|
("k" "Delete window" delete-window)
|
||||||
|
]])
|
||||||
|
|
||||||
|
|
||||||
|
(provide 'init-keybindings)
|
||||||
@@ -34,9 +34,9 @@
|
|||||||
"cape")
|
"cape")
|
||||||
|
|
||||||
|
|
||||||
(lazy-load-global-keys
|
(lazy-load-local-keys
|
||||||
'(("fr" . consult-recent-file))
|
'(("fr" . consult-recent-file))
|
||||||
"consult" creature/prefix-key)
|
creature/map "consult")
|
||||||
(with-eval-after-load 'consult
|
(with-eval-after-load 'consult
|
||||||
(recentf-mode 1))
|
(recentf-mode 1))
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user