I don't use it much, but it is nice to have the option to insert emojis 😄 Write a script to convert emojis.json into ultimately yasnippet files. Then you can type out keys to see a preview and insert.

(use-package emojify
  :commands (emojify-mode emojify-insert-emoji)
  ;(emojify-mode 1)
  ;emojify-composed-text-p nil
  ;(setq emojify-emoji-styles 'github) ; ascii|unicode
  (emojify-set-emoji-styles '(github ascii unicode))
  ;(emojify-set-emoji-styles 'ascii)
  ;(emojify-set-emoji-styles 'unicode)
  ; emojify-display-style image|unicode|ascii
  ;(set emojify-display-style 'unicode)
  ; emojify-inhibit-major-modes
  ; emojify-mode
  ;emojify-prog-contexts comments|string|both|none
  ;emojify-inhibit-functions text|beg|end
  ;emojify-show-help nil
  (setq emojify-emoji-set "twemoji-v2") ; twemoji-v2-22, emojione-v2.2.6, emojione-v2.2.6-22, twemoji-v2, emojione-v2, emojione-v2-22, openmoji-v13-0

  ;custom set some emojis

  ;(setq emojify-user-emojis '((":head_green:" . (("name" . "Green Header")
  ;                                              ("image" . "~/.emacs.d/emojis/emojione-v2.2.6-22/rect851.png")
  ;                                              ("style" . "github")))
  ;                            (":head_green2:" . (("name" . "Green Header 2")
  ;                                              ("image" . "~/.emacs.d/emojis/emojione-v2.2.6-22/rect845.png")
  ;                                              ("style" . "github")))))
  ;(when (featurep 'emojify)
  ;  (emojify-set-emoji-data))
  (org-mode-hook . emojify-mode)
  );end emojify

insert date and time

;; Date and time functions
(setq current-date-time-format "%a %b %d %Y %H:%M:%S %Z ")
(setq current-date-format "%Y-%m-%d")
(setq current-time-format "%a %H:%M:%S")

(defun insert-current-date-time ()
  "insert the current date and time into current buffer.
Uses `current-date-time-format' for the formatting the date/time."
;       (insert (let () (comment-start)))
       (insert (format-time-string current-date-time-format (current-time)))

(defun insert-current-date ()
  "insert the current date and time into current buffer.
Uses `current-date-format' for the formatting the date/time."
;       (insert (let () (comment-start)))
       (insert (format-time-string current-date-format (current-time)))

(defun insert-current-time ()
  "insert the current time (1-week scope) into the current buffer."
       (insert (format-time-string current-time-format (current-time)))
(bind-key "\C-c\C-y" 'insert-current-date)
(bind-key "\C-c\C-t" 'insert-current-time)

new frame scratch buffer

;Create scratch buffer in new frame
(defun new-frame-scratch-buffer ()
"Create a new scratch buffer -- \*hello-world\*"
  (let ((n 0)
        bufname buffer)
    (catch 'done
      (while t
        (setq bufname (concat "*hello-world"
          (if (= n 0) "" (int-to-string n))
        (setq n (1+ n))
        (when (not (get-buffer bufname))
          (setq buffer (get-buffer-create bufname))
          (with-current-buffer buffer
          ;; When called non-interactively, the `t` targets the other window (if it exists).
          (throw 'done (display-buffer buffer '(display-buffer-pop-up-frame .( (window-height .8) (window-width .8)))
)) )))))

; to make a new scratch buffer in a new frame
(bind-key "C-c b" 'new-frame-scratch-buffer)
(bind-key "C-c v" 'new-window-scratch-buffer)
;to kill a frame in emacs (also, C-x 0)
(bind-key "C-x C-c" 'delete-frame)
 ;make a new frame
(bind-key "C-x C-n" 'make-frame-command)

new window scratch buffer

;create scratch buffer in new window
(defun new-window-scratch-buffer ()
  "Create a new scratch buffer -- \*hello-world\*"
(let (($buf (generate-new-buffer "hello-world")))
(switch-to-buffer $buf)
(funcall initial-major-mode)
(setq buffer-offer-save t)

new org write buffer

(defun pos:open-temp-buffer ()
  "Open/create a temporary buffer for writing."
  (let ((buf (get-buffer-create "*write*")))
    (with-current-buffer buf
;      (pjones:markdown-visual-line);
    (pop-to-buffer buf)))

delete all buffers

(defun delete-all-other-buffers ()
    (mapc 'kill-buffer (cdr (buffer-list (current-buffer)))))

kill this buffer

;Bind Kill This Buffer
(bind-key "\C-x\C-k" 'kill-this-buffer)

cursor and scroll defaults

;cursors, and mouse
(setq mouse-yank-at-point t)
(setq cursor-in-non-selected-windows t)
(blink-cursor-mode 0)                           ; Disable the cursor blinking
(setq x-stretch-cursor t)
(mouse-avoidance-mode 'banish)

;scrolling buffers, movement top to bottom
(setq fast-but-imprecise-scrolling t )
(setq scroll-conservatively 10000) ; Always scroll by one line
(setq scroll-conservatively 1000)

;"Don't hscroll unless needed"- ? More voodoo lisp.
;(setq hscroll-margin 1)
(setq scroll-margin 1)
;(setq scroll-margin 8)
(setq scroll-step 1)  ; keyboard scroll one line at a
;Keeps cursor in the same relative row during pgups and dwns
(setq scroll-preserve-screen-position t)

(setq recenter-positions '(5 top bottom))

; Don't highlight matches with jump-char - it's distracting
(setq jump-char-lazy-highlight-face nil)
; Scroll 1 line at a time

;Fix the whole huge-jumps-scrolling-between-windows nastiness

;Accelerate the cursor when scrolling.
(load "accel" t)
; scroll N lines to screen edge
;speed up cursor
(setq auto-window-vscroll nil)

(blink-cursor-mode 0)
;Push the mouse out of the way when the cursor approaches.
(mouse-avoidance-mode 'jump)
(use-package smooth-scrolling
(require 'smooth-scrolling)
(smooth-scrolling-mode t)
(setq smooth-scroll/vscroll-step-size 1)
(setq smooth-scroll/hscroll-step-size 1)
(setq fast-but-imprecise-scrolling t)
;backward/forward paragraph
(bind-key "M-p" 'backward-paragraph)
(bind-key "M-n" 'forward-paragraph)
;(bind-key "<prior>" 'pop-to-mark-command)
;(bind-key "<next>" 'pop-to-mark-command)
;enables C-u C-<SPC>, to return to last mark, followed by C-<SPC> to cycle through all marks set
(setq set-mark-command-repeat-pop t)
;beginning end of buffer
(bind-key "<home>" 'beginning-of-buffer)
(bind-key "<end>" 'end-of-buffer)

multiple cursors

(use-package multiple-cursors
;:ensure t
;:commands (lots)
(global-set-key (kbd "C-S-<mouse-1>") 'mc/add-cursor-on-click)
;(add-to-list 'mc/cmds-to-run-once '())
;(add-to-list 'mc/always-run-for-all '())

multiple cursors hydra

;define a title function
(setq multiple-cursors-title (with-faicon "desktop" "Multiple Cursors Command"))
;generate hydra
(pretty-hydra-define multiple-cursors-hydra (:foreign-keys warn :title multiple-cursors-title :quit-key "q" :color pink )

    ("a" mc/mark-all-like-this "+ cursor/region all parts buffer match region")
    ("w" mc/mark-all-words-like-this "+ cursor/region buffers words match region" )
    ("s" mc/mark-all-in-region "+ cursor/region match strings in region")
    ("@" mc/mark-all-symbols-like-this "+ cursor/region buffer matching symbols")
    ("F" mc/mark-all-like-this-in-defun "+ cursor/region all part matches in function")
    ("W" mc/mark-all-words-like-this-in-defun "+ cursor/region all word matches in function")
    ("$" mc/mark-all-symbols-like-this-in-defun "+ cursor/regionall symbol matches in function")
    ("A" set-rectangular-region-anchor "set rectangular region anchor")
    ("H" mc-hide-unmatched-lines-mode "Hide/show unmatched lines")
    ("}" mc-cycle-forward "Cycle forward cursors")
    ("{" mc-cycle-backward "Cycle backward cursors")
);end A
    ("n"  mc/mark-next-like-this "+ cursor/region next region match in buffer")
    ("p"  mc/mark-previous-like-this "+ cursor/region previous region match in buffer")    
    ("f"  mc/mark-next-like-this-word "+ cursor/region next word match in buffer")
    ("b"  mc/mark-previous-like-this-word "+ cursor/region previous word match in buffer")
    ("\)"  mc/mark-next-like-this-symbol "+ cursor/region next symbol match in buffer")
    ("\("  mc/mark-previous-like-this-symbol "+ cursor/region previous symbol match in buffer")
    ("\/"  mc/mark-next-word-like-this "Mark next word match in buffer")
    ("\\"  mc/mark-previous-word-like-this "Mark next word match in buffer")
    (">"  mc/mark-next-symbol-like-this "Mark next symbol match in buffer")
    ("<"  mc/mark-previous-symbol-like-this "Mark previous symbol match in buffer")
);end B
    ("m" multiple-cursors-mode "Multiple Cursors Mode"  :toggle t)
    ("B" mc/edit-beginings-of-lines "Add cursor to start of each line in region" )    
    ("E" mc/edit-ends-of-lines "Add cursor to end of each line in region" )
    ("d" mc/mark-all-dwim "Mark all dwim ?")    
    ("t" mc/mark-all-like-this-dwim "Mark all similar tags - html")
    ("r" mc/reverse-regions "Mark all similar tags - html")
    ("<left>"  mc/mark-more-like-this-extended "Arrow keys mark/skip n/p occurances")
    ("P"  mc/mark-pop "Leave a cursor, move to next spot")
    ("h" hydra-helm/body "Return To Helm" :color blue )
    ("<SPC>" nil "Quit" :color blue )
);end miscellaneous
);end hydra body
);end pretty-hydra-multiple cursors
(bind-key "<C-m> c" 'multiple-cursors-hydra/body)

better scroll

(use-package better-scroll
;:ensure t
(global-set-key (kbd "C-M-n") 'better-scroll-down)
;(global-set-key (kbd "<prior> ") 'better-scroll-down)
(global-set-key (kbd "C-M-p") 'better-scroll-up)
;(global-set-key (kbd "<next>") 'better-scroll-up)

(global-set-key (kbd "<next>") 'better-scroll-down-other-window)
(global-set-key (kbd "<prior>") 'better-scroll-up-other-window)
;(setq better-scroll-align-type 'center)
);end better scroll

buffer move

(use-package buffer-move
:ensure t
:commands (buf-move)
;bind (
;:bind (
;("C-x" . package-function)
;:map minibuffer-local-map
;("C-r" . 'counsel-minibuffer-history))
);end package)


(use-package shackle
;:ensure t
:commands shackle-mode
(setq shackle-default-rule '(:same t))
;(setq shackle-rules '((compilation-mode :noselect t))
;      shackle-default-rule '(:select t))
;(setq helm-display-function 'pop-to-buffer) ; make helm play nice
;(setq shackle-rules '(("\\`\\*helm.*?\\*\\'" :regexp t :align t :size 0.4)))


;highlight cursor when jump window/buffer
(use-package beacon
:commands beacon-mode
(beacon-mode 1)
;; only flash on window/buffer changes...
(setq beacon-blink-when-window-changes t)
(setq beacon-blink-when-window-scrolls nil)
(setq beacon-blink-when-point-moves nil)
(setq beacon-blink-duration .2)
(setq beacon-blink-delay .2)
(setq beacon-size 20)
);end beacon

goto line with feedback

; go to line with feedback
 (defun goto-line-with-feedback ()
   "Show line numbers temporarily, while prompting for the line number input"
 (display-line-numbers-mode 1)
 (goto-line (read-number "Goto line: ")))
     (display-line-numbers-mode 0)))

append lines

(defun append-lines ()
"add next line to current line"
    (lambda ()
            (join-line -1)))

mwim - beginning of line & end of line

(use-package mwim
("C-a" . mwim-beginning-of-code-or-line)
("C-e" . mwim-end-of-code-or-line)
);end mwim

avy jump to character

(use-package avy
:commands (avy-goto-char avy-goto-char2 avy-goto-char-timer avy-goto-word avy-goto-word-1 avy-org-goto-heading-timer avy-org-refile-as-child)
;(global-set-key (kbd "C-;") 'avy-goto-char)
("C-;" . avy-goto-char)
);end avy

buffers hydra

;define a title function
(setq buffers-title (with-fileicon "broccoli" "Buffers Command"))
;generate hydra
(pretty-hydra-define buffers-hydra (:foreign-keys warn :title buffers-title :quit-key "q" :color pink )

    ("T" tab-bar-mode "Toggle Tab-bar Mode"  :toggle t)
    ("6" tab-new "Open New Tab C-6" )
    ("9" tab-next "Next Tab C-9")
    ("3" tab-previous "Previous Tab C-3" )
    ("l" tab-bar-switch-to-previous-tab "Switch to last Tab" )
    ("@" tab-rename "Rename Current Tab C-M-n" )
    ("7" close-tab "Kill Tab C-7" )
    ("u" tab-bar-undo-close-tab "Undo closed Tab" )
    ("}" tab-move "Move Current Tab L/R"  )
    ("N" tab-bar-select-by-name "Select Tab Bar By name")
    ("*" switch-to-buffer-other-tab "Switch to Buffer Other tab C-8")
    ("$" find-file-other-tab "Find File Other Tab C-4")
    ("#" dired-other-tab "Dired Other Tab C-0")
;    ("t" new-window-scratch-buffer "New Scratch Tab in tab-mode")

);end A
    ("d"  delete-all-other-buffers "Delete All Other Buffers" :color red)
    ("i" counsel-ibuffer "Quick switch to buffer" :color blue)
    ("I" ibuffer "Edit buffer list")
    ("R" pos-rename-current-file "Rename this file (and save)")
    ("<" previous-buffer "Previous Buffer")
    (">" next-buffer "Next Buffer")
    ("a" elwm-swap-left "Swap with buffer to left")
    ("e" elwm-swap-right "Swap with buffer to right")
    ("p" elwm-swap-up "Swap with buffer above")
    ("n" elwm-swap-down "Swap with buffer below")
);end B
    ("s"  shackle-mode "Shackle Buffers")
    ("f"  new-frame-scratch-buffer "Make New Scratch Frame" )
    ("t"  new-window-scratch-buffer "Make New Scratch Tab or buffer")
    ("o" pos:open-temp-buffer "New Org Write Buffer")
    ("k" kill-buffer-and-window "Kill Buffer and Window")
    ("K" kill-this-buffer "Kill This Buffer C-x C-k")
    ;    ("x" centaur-tabs-open-in-external-application "Open in External App")
;    ("X" centaur-tabs-open-directory-in-external-application "Open Directory External")
;    ("1" centaur-tabs-select-beg-tab "Select First Tab")
;    ("0" centaur-tabs-select-end-tab "Select Last Tab")
    ("h" hydra-helm/body "Return To Helm" :color blue )
    ("<SPC>" nil "Quit" :color blue )
);end miscellaneous
);end hydra body
);end pretty-hydra-CentaurTabs
(bind-key "<C-m> t" 'buffers-hydra/body)

That’s all folks..

comments powered by Disqus