            try-expand-line
            try-expand-line-all-buffers
            try-expand-whole-kill) t)))
+
+(use-package company :demand :diminish " K"
+  :bind (("H-m RET" . global-company-mode)
+         ("C-'" . company-complete) ("H-m '" . company-complete)
+         :map company-active-map
+         ("M-h" . company-quickhelp-manual-begin))
+  :config (global-company-mode 1)
+  (unbind-key "<tab>" company-active-map)
+  (unbind-key "TAB" company-active-map)
+  (use-package company-flx)
+  (company-flx-mode 1)
+  (use-package company-math)
+  (push 'company-math-symbols-unicode company-backends)
+  (use-package company-quickhelp)
+  (company-quickhelp-mode 1)
+  (setq company-idle-delay 0.2
+        company-minimum-prefix-length 2
+        company-selection-wrap-around t
+        company-tooltip-align-annotations t
+        company-quickhelp-delay nil))
+
+(use-package aggressive-indent :demand :diminish " i"
+  :bind ("H-m i" . global-aggressive-indent-mode)
+  :config (global-aggressive-indent-mode 1))
+
+(use-package hungry-delete :diminish ""
+  :config (global-hungry-delete-mode 1))
+
+(use-package visual-regexp
+  :bind ("C-M-%" . vr/query-replace))
+
+(use-package fix-word
+  :bind (("M-u" . fix-word-upcase)
+         ("M-l" . fix-word-downcase)
+         ("M-c" . fix-word-capitalize)))
+
+(use-package zzz-to-char
+  :bind ("M-z" . zzz-to-char))
+
+(use-package whitespace-cleanup-mode
+  :config (global-whitespace-cleanup-mode))
 
 ;;;;;;;;;;;;;;;
 ;; languages ;;

(use-package expand-region
  :bind (("S-SPC" . er/expand-region) ("H-m SPC" . er/expand-region)))

(use-package company :demand :diminish " K"
  :bind (("H-m RET" . global-company-mode)
         ("C-'" . company-complete) ("H-m '" . company-complete)
         :map company-active-map
         ("M-h" . company-quickhelp-manual-begin))
  :config (global-company-mode 1)
  (unbind-key "<tab>" company-active-map)
  (unbind-key "TAB" company-active-map)
  (use-package company-flx)
  (company-flx-mode 1)
  (use-package company-math)
  (push 'company-math-symbols-unicode company-backends)
  (use-package company-quickhelp)
  (company-quickhelp-mode 1)
  (setq company-idle-delay 0.2
        company-minimum-prefix-length 2
        company-selection-wrap-around t
        company-tooltip-align-annotations t
        company-quickhelp-delay nil))

(use-package aggressive-indent :demand :diminish " i"
  :bind ("H-m i" . global-aggressive-indent-mode)
  :config (global-aggressive-indent-mode 1))

(use-package centered-cursor-mode :diminish (centered-cursor-mode . "")
  :bind ("H-m l" . global-centered-cursor-mode))

(use-package hippie-exp
  :bind (("<C-tab>" . hippie-expand)       ("H-m <C-tab>" . hippie-expand)
         ("<M-tab>" . crazy-hippie-expand) ("H-m <M-tab>" . crazy-hippie-expand))

;; editing ;;
;;;;;;;;;;;;;

(use-package browse-kill-ring
  :bind ("H-m y" . browse-kill-ring))

(use-package undo-tree :diminish ""
  :config (global-undo-tree-mode 1))

(use-package smartparens-config :demand :diminish (smartparens-mode . "")
