(use-package helpful
:ensure t
:custom
(counsel-describe-function-function #'helpful-callable)
(counsel-describe-variable-function #'helpful-variable)
:bind
([remap describe-function] . counsel-describe-function)
([remap describe-command] . helpful-command)
([remap describe-variable] . counsel-describe-variable)
([remap describe-key] . helpful-key))
(use-package restart-emacs
:ensure t)
(use-package command-log-mode
:ensure t)
(use-package posframe
:ensure t)
In case I want to see all the minor modes
(use-package manage-minor-mode
:ensure t)
(use-package popwin
:ensure t
:config
(global-set-key (kbd "M-p") popwin:keymap))
Place minibuffer at the top of the current frame
(use-package mini-frame
:ensure t
:config
(mini-frame-mode t)
(custom-set-variables
'(mini-frame-show-parameters
'((top . 10)
(width . 0.7)
(left . 0.5)))))
(use-package transpose-frame
:ensure t)
Taken from https://emacs.stackexchange.com/questions/46210/reuse-help-window
(setq display-buffer-alist
`((,(rx bos (or "*Apropos*" "*Help*" "*helpful" "*info*" "*Summary*") (0+ not-newline))
(display-buffer-reuse-mode-window display-buffer-below-selected)
(window-height . 0.33)
(mode apropos-mode help-mode helpful-mode Info-mode Man-mode))))
(setq enable-recursive-minibuffers t)
(use-package indent-guide
:ensure t)
(use-package highlight-indent-guides
:ensure t
:hook (prog-mode . highlight-indent-guides-mode)
:init
;; (setq highlight-indent-guides-method 'column)
(setq highlight-indent-guides-method 'bitmap)
;; (setq highlight-indent-guides-character ?|)
;; (setq highlight-indent-guides-character ?❚)
;;(setq highlight-indent-guides-character ?‖)
;; (setq highlight-indent-guides-responsive 'stack)
;;(setq highlight-indent-guides-responsive 'top)
;; (setq highlight-indent-guides-auto-enabled nil)
;; (set-face-background 'highlight-indent-guides-odd-face "darkgray")
;; (set-face-background 'highlight-indent-guides-even-face "dimgray")
;; (set-face-foreground 'highlight-indent-guides-character-face "dimgray")
)
;; (display-battery-mode 1)
;; (setq battery-mode-line-format "[%b%p%% %t]")
(use-package all-the-icons-dired
:ensure t
:config
(add-hook 'dired-mode-hook 'all-the-icons-dired-mode))
(use-package info-colors
:ensure t
:config
(add-hook 'Info-selection-hook 'info-colors-fontify-node))
(use-package centaur-tabs
:ensure t
:init
(setq centaur-tabs-set-icons t)
(setq ccentaur-tabs-set-modified-marker t
centaur-tabs-modified-marker "M"
centaur-tabs-cycle-scope 'tabs)
(setq centaur-tabs-set-close-button nil)
:config
(centaur-tabs-group-by-projectile-project)
)
(defun magnifying-current-line ()
(setq magnifying-overlay (make-overlay (line-beginning-position) (line-end-position)))
(overlay-put magnifying-overlay 'font-lock-face '(:height 2.5)))
(defun magnifying-delete-line ()
(dolist (o (overlays-in (line-beginning-position) (line-end-position)))
(delete-overlay o)))
(define-minor-mode magnifying-mode
"Toggles global magnifying-mode."
nil ; Initial value, nil for disabled
:global t
:group 'magnifying
:lighter " magnifying"
:keymap
(list
(cons (kbd "C-c t") (lambda ()
(interactive)
(magnifying-current-line)))
(cons (kbd "C-c m") (lambda ()
(interactive)
(magnifying-delete-line)))
)
(if magnifying-mode
(message "magnifying-mode activated!")
(message "magnifying-mode deactivated!")))
(add-hook 'magnifying-mode-hook (lambda () (message "magnifying hook was executed!")))
(add-hook 'magnifying-mode-on-hook (lambda () (message "magnifying turned on!")))
(add-hook 'magnifying-mode-off-hook (lambda () (message "magnifying turned off!")))
ivy
is a generic completion framework which uses the minibuffer.
Turning on ivy-mode
with fuzzy support enables replacement of lots of built in ido
functionality.
(use-package smex
:ensure t)
(use-package ivy
:ensure t
:config
(ivy-mode t))
(use-package ivy-rich
:ensure t
:init
(ivy-rich-mode 1))
counsel
is a collection of ivy
enhanced versions of common Emacs commands.
I haven’t bound much as ivy-mode
takes care of most things.
(use-package counsel
:ensure t
:bind
(("M-x" . counsel-M-x))
:config
(setq ivy-re-builders-alist
'(
;; no need to support fuzzy when use swiper and ivy-switch-buffer
(ivy-switch-buffer . ivy--regex-plus)
(swiper . ivy--regex-plus)
(t . ivy--regex-fuzzy)
))
(setq ivy-initial-inputs-alist nil))
swiper
is an ivy
enhanced version of isearch.
(use-package swiper
:ensure t
:bind (("M-s" . swiper)))
hydra
presents menus for ivy
commands.
(use-package hydra
:ensure t)
(use-package ivy-hydra
:ensure t
:after (ivy hydra))
https://github.com/Schnouki/dotfiles/blob/master/emacs/init-20-dev.el#L90
(use-package origami
:ensure t
:commands origami-mode
:bind (:map origami-mode-map
("C-: :" . origami-recursively-toggle-node)
("C-: a" . origami-toggle-all-nodes)
("C-: t" . origami-toggle-node)
("C-: o" . origami-show-only-node)
("C-: u" . origami-undo)
("C-: U" . origami-redo)
("C-: C-r" . origami-reset)
))
preview file
(define-minor-mode dired-follow-mode
"Diplay file at point in dired after a move."
:lighter " dired-f"
:global t
(if dired-follow-mode (advice-add 'dired-next-line
:after (lambda (arg)
(dired-display-file)))
(advice-remove 'dired-next-line (lambda (arg)
(dired-display-file)))))
dired hacks
(use-package dired-rainbow
:ensure t
:config
(progn
(dired-rainbow-define-chmod directory "#6cb2eb" "d.*")
(dired-rainbow-define html "#eb5286" ("css" "less" "sass" "scss" "htm" "html" "jhtm" "mht" "eml" "mustache" "xhtml"))
(dired-rainbow-define xml "#f2d024" ("xml" "xsd" "xsl" "xslt" "wsdl" "bib" "json" "msg" "pgn" "rss" "yaml" "yml" "rdata"))
(dired-rainbow-define document "#9561e2" ("docm" "doc" "docx" "odb" "odt" "pdb" "pdf" "ps" "rtf" "djvu" "epub" "odp" "ppt" "pptx"))
(dired-rainbow-define markdown "#ffed4a" ("org" "etx" "info" "markdown" "md" "mkd" "nfo" "pod" "rst" "tex" "textfile" "txt"))
(dired-rainbow-define database "#6574cd" ("xlsx" "xls" "csv" "accdb" "db" "mdb" "sqlite" "nc"))
(dired-rainbow-define media "#de751f" ("mp3" "mp4" "MP3" "MP4" "avi" "mpeg" "mpg" "flv" "ogg" "mov" "mid" "midi" "wav" "aiff" "flac"))
(dired-rainbow-define image "#f66d9b" ("tiff" "tif" "cdr" "gif" "ico" "jpeg" "jpg" "png" "psd" "eps" "svg"))
(dired-rainbow-define log "#c17d11" ("log"))
(dired-rainbow-define shell "#f6993f" ("awk" "bash" "bat" "sed" "sh" "zsh" "vim"))
(dired-rainbow-define interpreted "#38c172" ("py" "ipynb" "rb" "pl" "t" "msql" "mysql" "pgsql" "sql" "r" "clj" "cljs" "scala" "js"))
(dired-rainbow-define compiled "#4dc0b5" ("asm" "cl" "lisp" "el" "c" "h" "c++" "h++" "hpp" "hxx" "m" "cc" "cs" "cp" "cpp" "go" "f" "for" "ftn" "f90" "f95" "f03" "f08" "s" "rs" "hi" "hs" "pyc" ".java"))
(dired-rainbow-define executable "#8cc4ff" ("exe" "msi"))
(dired-rainbow-define compressed "#51d88a" ("7z" "zip" "bz2" "tgz" "txz" "gz" "xz" "z" "Z" "jar" "war" "ear" "rar" "sar" "xpi" "apk" "xz" "tar"))
(dired-rainbow-define packaged "#faad63" ("deb" "rpm" "apk" "jad" "jar" "cab" "pak" "pk3" "vdf" "vpk" "bsp"))
(dired-rainbow-define encrypted "#ffed4a" ("gpg" "pgp" "asc" "bfe" "enc" "signature" "sig" "p12" "pem"))
(dired-rainbow-define fonts "#6cb2eb" ("afm" "fon" "fnt" "pfb" "pfm" "ttf" "otf"))
(dired-rainbow-define partition "#e3342f" ("dmg" "iso" "bin" "nrg" "qcow" "toast" "vcd" "vmdk" "bak"))
(dired-rainbow-define vc "#0074d9" ("git" "gitignore" "gitattributes" "gitmodules"))
(dired-rainbow-define-chmod executable-unix "#38c172" "-.*x.*")
))
(defun teddy-ma/find-file-under-cursor ()
"Check it the filepath under cursor is an absolute path otherwise open helm and insert the filepath."
(interactive)
(let ((file-path (thing-at-point 'filename t)))
(if (file-name-absolute-p file-path)
(find-file-at-point file-path)
(minibuffer-with-setup-hook (lambda ()
(insert file-path))
(helm-ls-git-ls)))))
like buffer narrow but in other buffer
(use-package edit-indirect
:ensure t)
(use-package org-download
:ensure t
:config
(setq-default org-download-image-dir "~/Documents/org/assets/images")
(setq-default org-download-timestamp "")
(setq-default org-download-heading-lvl nil)
(add-hook 'dired-mode-hook 'org-download-enable))
(use-package ox-reveal
:ensure t
:config
(setq org-reveal-root "https://cdn.jsdelivr.net/npm/reveal.js")
(setq org-reveal-mathjax t))
C-x-n-s and C-x-n-w can narrow to subtree
(use-package org-tree-slide
:ensure t
:custom
(org-image-actual-width nil))
lsp mode
(use-package gnu-elpa-keyring-update
:ensure t)
(require 'cc-mode)
(use-package projectile
:ensure t
:config
(setq projectile-mode-line-function '(lambda () (format " Proj[%s]" (projectile-project-name)))))
(use-package yasnippet
:ensure t)
(use-package lsp-mode
:ensure t)
(use-package hydra
:ensure t)
(use-package lsp-ui
:ensure t)