+*** =imenu=
+#+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
+=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)