a b
a a2 append text
b b1 N words back
(markdown-insert-table)  
(cua-rectangle-mark-mode 'toggle)
(markdown-insert-header-atx-5)  
(markdown-insert-hr)  
(tab-new nil)
(project-find-file)

QUIT vim
: quitquit vim
: quitallquit vim
gnu.org/software/**emacs**/download.html
------------------------------------------------------------------------------- ##### h j k l ##### | | | | |:-:|:-:|:-:| |`h` | h | h move left| |`j` | j| move down| |`k` | k| move up| |`l` | m|move right|

(markdown-insert-table)  
(cua-rectangle-mark-mode 'toggle)
(markdown-insert-header-atx-5)  
(markdown-insert-hr)  
(tab-new nil)
(project-find-file)

(defun prot/copy-file-to-destinations--directory-prompt ()
  "Produce the directory/destinations prompt of `prot/copy-file-to-destinations'."
  (let ((skip-initial t)
        destinations)
    (while (or skip-initial (y-or-n-p "Add more destinations? "))
      (when skip-initial
        (setq skip-initial nil))
      (push (read-directory-name "Select destination directory: ") destinations))
    destinations))

(defun prot/copy-file-to-destinations (file destinations) "Copy FILE to DESTINATIONS. FILE is a string pointing to a file system path. DESTINATIONS is a list of strings representing directories. ‑ In interactive use, prompt for FILE and then for DESTINATIONS. For each selected destination, produce a `y-or-n-p' prompt on whether to add another destination or perform the operation with the selected ones." (interactive (list (read-file-name "File to copy: ") (prot/copy-file-to-destinations--directory-prompt))) (dolist (destination destinations) (copy-file file destination :overwrite-if-it-exists)) (message "Copied %s to %s" file (mapconcat #'identity destinations ", ")))