Emacs - add keymapping
[dotfiles.git] / emacs.d / config.org
index 38a77d1..192f403 100644 (file)
@@ -608,7 +608,23 @@ set height in mode line
     :config
     (ido-mode 1)
     (ido-everywhere 1)
-    (add-to-list 'completion-ignored-extensions ".pyc"))
+    (add-to-list 'completion-ignored-extensions ".pyc")
+
+
+    (define-key ido-buffer-completion-map (kbd "C-w") #'ido-delete-backward-word-updir)
+    (define-key ido-file-completion-map (kbd "C-w") #'ido-delete-backward-word-updir)
+    (define-key ido-file-dir-completion-map (kbd "C-w") #'ido-delete-backward-updir)
+    ;; (define-key ido-file-dir-completion-map (kbd "C-i") #'ido-copy-current-word)
+    
+    ;; (dolist (map (list
+    ;;               ido-buffer-completion-map
+    ;;               ido-file-completion-map
+    ;;               ido-file-dir-completion-map
+    ;;               ido-common-completion-map))
+    ;;   (define-key map (kbd "C-w") #'ido-delete-backward-word-updir)
+    ;;   ;; (define-key map (kbd "C-i") #'ido-copy-current-file-name)
+    ;;   )
+    )
 
   (icomplete-mode t)
 #+END_SRC
@@ -1246,7 +1262,9 @@ and Defined keys, using vi keybindings, Refer abo-abo's setting [[https://github
       (define-key map "n" nil)
       (define-key map "p" nil)
       (define-key map "v" 'recenter-top-bottom)
-      (define-key map "i" 'magit-section-toggle)))
+      (define-key map "i" 'magit-section-toggle))
+    (define-key magit-mode-map "q" (lambda () (interactive)
+                                     (magit-mode-bury-buffer t))))
 #+END_SRC
 
 * Eshell
@@ -1971,6 +1989,8 @@ here on Mac, just use "open" commands to pen =.pdf=,  =.html= and image files
     ;; should map both (kbd "TAB") and [tab],https://github.com/company-mode/company-mode/issues/75
     (define-key company-active-map (kbd "TAB") #'company-complete-selection)
     (define-key company-active-map [tab] #'company-complete-selection)
+    (define-key company-active-map (kbd "C-w") nil)
+    (define-key company-active-map (kbd "C-h") nil)
     (global-company-mode)
     ;; magig-commit is text-modeh
     (setq company-global-modes '(not org-mode magit-status-mode text-mode eshell-mode gfm-mode markdown-mode)))
@@ -2182,28 +2202,6 @@ Refer [[https://www.emacswiki.org/emacs/AutoInsertMode][AutoInsertMode]] Wiki
 
 #+END_SRC
 
-*** Run Perl
-Change the compile-command to set the default command run when call =compile=
-Mapping =s-r= (on Mac, it's =Command + R= to run the script. Here =current-prefix-arg= is set
-to call =compilation=  interactively.
-#+BEGIN_SRC emacs-lisp :tangle yes :results silent
-  ;; this has be implemented in below compile part
-  ;; (defun my-perl-hook ()
-  ;;   (progn
-  ;;     (setq-local compilation-read-command nil)
-  ;;     (set (make-local-variable 'compile-command)
-  ;;          (concat "/usr/bin/perl "
-  ;;                  (if buffer-file-name
-  ;;                      (shell-quote-argument buffer-file-name))))
-  ;;     (local-set-key (kbd "s-r")
-  ;;                    (lambda ()
-  ;;                      (interactive)
-  ;;                                         ;                       (setq current-prefix-arg '(4)) ; C-u
-  ;;                      (call-interactively 'compile)))))
-
-  ;; (add-hook 'cperl-mode-hook 'my-perl-hook)
-#+END_SRC
-
 ** C & C++
 C/C++ ide tools
 1. completion (file name, function name, variable name)
@@ -2432,6 +2430,7 @@ Set the environments vairables in compilation mode
     (define-key compilation-mode-map (kbd "C-o") nil)
     (define-key compilation-mode-map (kbd "n") 'compilation-next-error)
     (define-key compilation-mode-map (kbd "p") 'compilation-previous-error)
+    (define-key compilation-mode-map (kbd "q") (lambda () (interactive) (quit-window t)))
     (define-key compilation-mode-map (kbd "r") #'recompile))
 
 
@@ -2953,6 +2952,20 @@ We can use [[https://www.gnu.org/software/emms/quickstart.html][Emms]] for multi
 
 * Key Bindings
 Here are some global key bindings for basic editting
+** Global key bingding
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+  (global-set-key (kbd "C-h") 'delete-backward-char)
+  (global-set-key (kbd "s-m") 'man)
+#+END_SRC
+
+Refer [[https://github.com/fnwiya/dotfiles/blob/c9ca79f1b22c919d9f4c3a0f944ba8281255a594/setup/.emacs.d/loader-init/_90-kill-region-or-backward-kill-word.el][kill-region-or-backward-kill-word]]
+
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+  (require 'utilities)
+  (global-set-key (kbd "C-w") 'sd/kill-region-or-backward-kill-word)
+#+END_SRC
+
+
 ** Esc in minibuffer
 Use =ESC= to exit minibuffer. Also I map =Super-h= the same as =C-g=
 #+BEGIN_SRC emacs-lisp :tangle yes :results silent
@@ -3115,6 +3128,38 @@ Most use =C-o C-o= to switch buffers; =C-o x, v= to split window; =C-o o= to del
       (dired-jump)))
 #+END_SRC
 
+Kill the help window and buffer when quit.
+#+BEGIN_SRC emacs-lisp :tangle yes :results silent
+  (with-eval-after-load "help-mode"
+    (define-key help-mode-map (kbd "q") (lambda ()
+                                          (interactive)
+                                          (quit-window t))))
+
+  (with-eval-after-load 'man
+    (set-face-attribute 'Man-overstrike nil :inherit 'bold :foreground "orange red")
+    (set-face-attribute 'Man-underline nil :inherit 'underline :foreground "forest green")
+    (define-key Man-mode-map (kbd "q") (lambda ()
+                                         (interactive)
+                                         (Man-kill))))
+
+
+  ;; (advice-add 'man :after (lambda (man-args) (other-window 1)))
+  (advice-add 'man :after (apply-partially 'other-window 1))
+
+
+  (require 'shell-command-output-mode)
+
+  (defun my/shell-command-after (command &optional output-buffer error-buffer)
+    (let* ((buffer (get-buffer "*Shell Command Output*"))
+           (window (get-buffer-window buffer)))
+      (if buffer (with-current-buffer buffer
+                   (shell-command-output-mode)))
+      (if window
+          (select-window window))))
+
+  (advice-add 'shell-command :after 'my/shell-command-after)
+#+END_SRC
+
 ** Motion
 - =C-M-=
 [[https://www.masteringemacs.org/article/effective-editing-movement][effective-editing-movement]]
@@ -3534,13 +3579,6 @@ stolen from [[https://github.com/mariolong/emacs.d/blob/f6a061594ef1b5d1f4750e9d
 #+END_SRC
 
 *** TODO make expand-region hydra work with lispy selected
-** =C-w= delete backward word
-Refer [[https://github.com/fnwiya/dotfiles/blob/c9ca79f1b22c919d9f4c3a0f944ba8281255a594/setup/.emacs.d/loader-init/_90-kill-region-or-backward-kill-word.el][kill-region-or-backward-kill-word]]
-
-#+BEGIN_SRC emacs-lisp :tangle yes :results silent
-  (require 'utilities)
-  (global-set-key (kbd "C-w") 'sd/kill-region-or-backward-kill-word)
-#+END_SRC
 
 * Developing
 ** perspeen