X-Git-Url: http://47.100.26.94:8080/?a=blobdiff_plain;f=emacs.d%2Fconfig.org;h=7e4a870993917b5cf848dfca0e76b47e03e375b8;hb=c8c762c4cdd32c63947bee3dc2459061d4f7e0c0;hp=d7514110705a1936a6407af677812cde4ce9cd28;hpb=e0a044095490026b2369294ec8e79df6a0014a98;p=dotfiles.git diff --git a/emacs.d/config.org b/emacs.d/config.org index d751411..7e4a870 100644 --- a/emacs.d/config.org +++ b/emacs.d/config.org @@ -2309,16 +2309,100 @@ Most use =C-o C-o= to switch buffers; =C-o x, v= to split window; =C-o o= to del (global-set-key (kbd "C-o") 'sd/hydra-window/body) #+END_SRC -** Edit -- cut, yank, =C-w=, =C-y= -- save, revert -- undo, redo - undo-tree -- select, expand-region -- spell check, flyspell - ** Motion - =C-M-= -*** Use =Avy= for motion +[[https://www.masteringemacs.org/article/effective-editing-movement][effective-editing-movement]] +*** Command Arguments, numeric argumens +=C-u 4= same as =C-4=, =M-4= +*** Basic movement +moving by line / word / +=C-f=, =C-b=, =C-p=, =C-n=, =M-f=, =M-b= +=C-a=, =C-e= +=M-m= (move first non-whitespace on this line) +=M-}=, =M-{=, Move forward end of paragraph +=M-a=, =M-e=, beginning / end of sentence +=C-M-a=, =C-M-e=, move begining of defun +=C-x ]=, =C-x [=, forward/backward one page +=C-v=, =M-v=, =C-M-v=, =C-M-S-v= scroll down/up +=M-<=, =M->=, beginning/end of buffer +=M-r=, Repositiong point + +*** Moving by S-expression / List +*** Marks +=C-= set marks toggle the region +=C-u C-= Jump to the mark, repeated calls go further back the mark ring +=C-x C-x= Exchanges the point and mark. + +Stolen [[https://www.masteringemacs.org/article/fixing-mark-commands-transient-mark-mode][fixing-mark-commands-transient-mark-mode]] +#+BEGIN_SRC emacs-lisp :tangle yes :results silent + (defun push-mark-no-activate () + "Pushes `point' to `mark-ring' and does not activate the region + Equivalent to \\[set-mark-command] when \\[transient-mark-mode] is disabled" + (interactive) + (push-mark (point) t nil) + (message "Pushed mark to ring")) + + ;; (global-set-key (kbd "C-`") 'push-mark-no-activate) + + (defun jump-to-mark () + "Jumps to the local mark, respecting the `mark-ring' order. + This is the same as using \\[set-mark-command] with the prefix argument." + (interactive) + (set-mark-command 1)) + + ;; (global-set-key (kbd "M-`") 'jump-to-mark) + + (defun exchange-point-and-mark-no-activate () + "Identical to \\[exchange-point-and-mark] but will not activate the region." + (interactive) + (exchange-point-and-mark) + (deactivate-mark nil)) + + ;; (define-key global-map [remap exchange-point-and-mark] 'exchange-point-and-mark-no-activate) +#+END_SRC + +Show the mark ring using =helm-mark-ring=, also mapping =M-`= to quit minibuffer. so that =M-`= can +toggle the mark ring. the best way is add a new action and mapping to =helm-source-mark-ring=, but +since there is no map such as =helm-mark-ring=map=, so I cannot binding a key to the quit action. +#+BEGIN_SRC emacs-lisp :tangle yes :results silent + ;; (defun sd/helm-quit-mark-ring (key) + ;; "exit" + ;; (keyboard-quit)) + + ;; (helm-add-action-to-source "Exit helm" 'sd/helm-quit-mark-ring helm-source-mark-ring 1) + (global-set-key (kbd "M-`") #'helm-mark-ring) + + (define-key minibuffer-local-map (kbd "M-`") 'keyboard-escape-quit) +#+END_SRC + +=M-h= marks the next paragraph +=C-x h= marks the whole buffer +=C-M-h= marks the next defun +=C-x C-p= marks the next page +**** DONE Mapping toggle mark ring= +:LOGBOOK: +- State "DONE" from "TODO" [2016-07-22 Fri 23:18] +:END: +*** Registers +Registers can save text, position, rectangles, file and configuration and other things. +Here for movement, we can use register to save/jump position +=C-x r SPC= store point in register +=C-x r j= jump to register +#+BEGIN_SRC emacs-lisp :tangle yes :results silent + (use-package list-register + :ensure t) +#+END_SRC + +*** Bookmarks +As I would like use bookmakr for different buffer/files. to help to swith +different buffer/file quickly. this setting is in Windows/buffer node +=C-x r m= set a bookmarks +=C-x r l= list bookmarks +=C-x r b= jump to bookmarks + +*** Search +Search, replace and hightlight will in later paragraph +*** =Avy= for easy motion #+BEGIN_SRC emacs-lisp :tangle yes :results silent (use-package avy :ensure t @@ -2337,96 +2421,42 @@ Most use =C-o C-o= to switch buffers; =C-o x, v= to split window; =C-o o= to del (global-set-key (kbd "C-M-w") 'avy-goto-char-timer) (global-set-key (kbd "C-M-l") 'avy-goto-char-in-line) - ;; will delete above - (global-set-key (kbd "M-g j") 'avy-goto-line-below) - (global-set-key (kbd "M-g k") 'avy-goto-line-above) - (global-set-key (kbd "M-g w") 'avy-goto-word-1-below) - (global-set-key (kbd "M-g b") 'avy-goto-word-1-above) - (global-set-key (kbd "M-g e") 'avy-goto-word-0) - (global-set-key (kbd "M-g f") 'avy-goto-char-timer) - (global-set-key (kbd "M-g c") 'avy-goto-char-in-line) + ;; ;; will delete above + ;; (global-set-key (kbd "M-g j") 'avy-goto-line-below) + ;; (global-set-key (kbd "M-g k") 'avy-goto-line-above) + ;; (global-set-key (kbd "M-g w") 'avy-goto-word-1-below) + ;; (global-set-key (kbd "M-g b") 'avy-goto-word-1-above) + ;; (global-set-key (kbd "M-g e") 'avy-goto-word-0) + ;; (global-set-key (kbd "M-g f") 'avy-goto-char-timer) + ;; (global-set-key (kbd "M-g c") 'avy-goto-char-in-line) +#+END_SRC - ;; M-g TAB move-to-column - ;; M-g ESC Prefix Command - ;; M-g c goto-char - ;; M-g g goto-line - ;; M-g n next-error - ;; M-g p previous-error +*** =Imenu= goto tag +#+BEGIN_SRC emacs-lisp :tangle yes :results silent + ;; (global-set-key (kbd "M-i") #'counsel-imenu) + (global-set-key (kbd "M-i") #'imenu) - ;; M-g M-g goto-line - ;; M-g M-n next-error - ;; M-g M-p previous-error + ;; (global-set-key (kbd "M-l") 'goto-line) #+END_SRC -*** =imenu= +*** Go-to line #+BEGIN_SRC emacs-lisp :tangle yes :results silent - ;; (global-unset-key (kbd "C-M-i")) - ;; (global-set-key (kbd "C-M-i") #'counsel-imenu) - (global-set-key (kbd "M-i") #'counsel-imenu) - (global-set-key (kbd "M-l") 'goto-line) #+END_SRC *** Movement effective -[[https://www.masteringemacs.org/article/effective-editing-movement][effective-editing-movement]] -**** Command arguments, numeric argument -=C-u 4= same as =C-4=, =M-4= -**** movement by word -=M-b=, =M-f= -**** movement by paragraph/sentence -=M-e=, =M-a= -**** scrolling -=C-v=, =M-v= -**** Move to begin/end buffer -=M->=, =M-<= -**** Advanced movement -***** movement by s-expression -***** isearch +**** isearch =C-s=, =C-r= =C-w=, put the word into search minibuffer, =M-y= =M-c=, toggle case sensitivity =M-n=, =M-p=, history -***** back to indentation -=M-m= -***** Registers/Bookmarks -Register, =C-x r SPC=, =C-x r j= -Bookmarks, =C-x r m=, =C-x r b=, =C-x r l= -***** Mark -Stolen [[https://www.masteringemacs.org/article/fixing-mark-commands-transient-mark-mode][fixing-mark-commands-transient-mark-mode]] -#+BEGIN_SRC emacs-lisp :tangle yes :results silent - (defun push-mark-no-activate () - "Pushes `point' to `mark-ring' and does not activate the region - Equivalent to \\[set-mark-command] when \\[transient-mark-mode] is disabled" - (interactive) - (push-mark (point) t nil) - (message "Pushed mark to ring")) - - (global-set-key (kbd "C-`") 'push-mark-no-activate) - - (defun jump-to-mark () - "Jumps to the local mark, respecting the `mark-ring' order. - This is the same as using \\[set-mark-command] with the prefix argument." - (interactive) - (set-mark-command 1)) - - (global-set-key (kbd "M-`") 'jump-to-mark) - - (defun exchange-point-and-mark-no-activate () - "Identical to \\[exchange-point-and-mark] but will not activate the region." - (interactive) - (exchange-point-and-mark) - (deactivate-mark nil)) - - (define-key global-map [remap exchange-point-and-mark] 'exchange-point-and-mark-no-activate) -#+END_SRC -***** Repositioning Point -=M-r= -***** Imenu -ido-goto-symbol -***** tagss -***** got-to-line -***** Next/Prev error -***** begin/end of defun +**** tagss +** Edit +- cut, yank, =C-w=, =C-y= +- save, revert +- undo, redo - undo-tree +- select, expand-region +- spell check, flyspell ** Search & Replace / hightlight =M-s= *** search *** replace