Velmi přizpůsobivý a pracovitý (nejen) editor,
který jsem si v poslední době oblíbil právě kvůli jeho přizpůsobitelnosti a
použitelnosti. Používám jej tak, že jsem prvotně stáhnul základní balík emacs
a poté jsem jej "tunil" a přizpůsoboval tak, aby mi vyhovoval.
Napíši jméno balíčku a potvrdím pro jeho instalaci. Níže jsou uvedené balíčky, které používám.
Po prvním startu se defaultně vytvoří v domovském adresáři soubor .emacs.
Emacs lze spustit buď klasickým způsobem a to příkazem emacs. Je možné jej ale spustit ve
formě serveru - jednotlivé instance emacsclienta jsou pak mezi sebou provázané.
Osobně používám variantu server-klient. Stačí službu aktivovat po startu:
Z mého pohledu je nejlepší založit adresář ~/.emacs.d, ve
kterém je komplet vše.
mkdir -p ~/.emacs.d
init.el
Tady je náhled mého init souboru, který používám.
nano ~/.emacs.d/init.el
(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(backup-by-copying t)
'(backup-directory-alist '(("." . "~/.emacs.d/zálohy")))
'(completion-auto-help 'always)
'(confirm-kill-emacs nil)
'(create-lockfiles nil)
'(current-language-environment "UTF-8")
'(cursor-type t)
'(custom-enabled-themes '(mv-gruvbox))
'(custom-safe-themes
'("0a079671f0b4742b2c1c46a85ce0ffb4bec8678196df5372cab94b1417a2d3cc" "be402de03a3c719234fb1f1b934978dc1deb57d09fbb774a2758a38b856b9091" "3e664e8f5a88476a0bfdaeaaaabdc5e1a2b5b1e38472b15e5e8d17addfa81487" "2d77d2b76eda5094f27a79d2dc88aa614dd93faa7c70a3462346d33196e6dbd7" "9aabbfd99865c82652a39a240789637283b0eba8ece46c292aea8ee4b20e9270" "707ac6ef0d97fb6cd14fd97635b1abd5827433f33564e8e7ee3a49dec7a841a1" "353196b0d69eb6348f835b9f0bc04fe05d58574bf201d0dcb0dffc705a4c7157" "91260b6062f82d3c0ed916da2c3d9cbada734c9672f8b66a70eecf89887d587a" "16e73e59eefb1e0c5dc185582deed4dd08063884b33c885d91333100a54e875e" "56c4001d08f851b6529894d7c4a7c65dfdef3058d2d793f29b91b32021b9219c" "741728b9c9373ab0d3aaccf89f4536d79874ac47d231b921c1ea5f83971187cc" "3beffbd58f4833e37f2d761c23dc74365775b9d383e7d537a928d810d35852ad" "9c2d39b72ee7bea44004f138eb57ac47c3153a1e3a6ce4825beb03a3e439713c" default))
'(delete-old-versions t)
'(dired-free-space nil)
'(dired-kept-versions 2)
'(fancy-splash-image "~/.emacs.d/img/startup.png")
'(focus-follows-mouse t)
'(fringe-mode 0 nil (fringe))
'(global-display-line-numbers-mode t)
'(global-word-wrap-whitespace-mode t)
'(horizontal-scroll-bar-mode nil)
'(indicate-empty-lines nil)
'(inhibit-startup-buffer-menu t)
'(initial-buffer-choice "~/")
'(kept-new-versions 6)
'(make-backup-files nil)
'(menu-bar-mode nil)
'(package-selected-packages
'(which-key rainbow-mode web-mode yasnippet company vertico ace-window))
'(pop-up-windows nil)
'(recentf-auto-cleanup 'never)
'(recentf-max-menu-items 60)
'(recentf-max-saved-items 50)
'(recentf-menu-title "Nedávné")
'(scroll-bar-mode nil)
'(size-indication-mode t)
'(small-temporary-file-directory nil)
'(tab-bar-mode t)
'(tool-bar-mode nil)
'(truncate-lines t)
'(vertico-cycle nil)
'(vertico-flat-mode nil)
'(vertico-grid-mode t)
'(vertico-mode t)
'(vertico-mouse-mode t)
'(vertico-multiform-mode nil)
'(web-mode-auto-close-style 2)
'(web-mode-enable-auto-closing t)
'(web-mode-enable-auto-indentation t)
'(web-mode-enable-auto-opening t)
'(web-mode-enable-auto-pairing t)
'(web-mode-enable-auto-quoting t)
'(web-mode-enable-current-element-highlight t)
'(which-function-mode t)
'(which-key-allow-imprecise-window-fit t)
'(which-key-idle-delay 0.5)
'(which-key-mode t)
'(which-key-popup-type 'side-window)
'(which-key-show-early-on-C-h nil)
'(which-key-show-remaining-keys nil)
'(which-key-side-window-max-height 0.35)
'(word-wrap t))
(custom-set-faces
;; custom-set-faces was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(default ((t (:family "Hack Nerd Font" :foundry "SRC" :slant normal :weight regular :height 90 :width normal))))
'(border ((t (:foreground "#fbf1c7"))))
'(custom-button ((t (:background "#458588" :foreground "#fbf1c7" :box (:line-width (2 . 2) :style released-button)))))
'(custom-button-mouse ((t (:background "grey90" :foreground "black" :box (:line-width (2 . 2) :style released-button)))))
'(internal-border ((t nil)))
'(line-number-current-line ((t (:inherit \#504945))))
'(link ((t (:foreground "cyan1" :underline t))))
'(org-level-2 ((t (:extend nil :foreground "#8ec07c"))))
'(tab-bar ((t (:inherit default))))
'(tab-bar-tab-inactive ((t (:inherit tab-bar-tab :background "#1d2021" :foreground "#a09a7f"))))
'(tool-bar ((t (:background "grey75" :foreground "black" :box (:line-width (1 . 1) :style released-button)))))
'(vertico-current ((t (:inherit nil :extend t :background "#458588" :foreground "#fbf1c7"))))
'(vertico-mouse ((t (:background "#458588"))))
'(web-mode-current-element-highlight-face ((t (:background "#3c3836" :foreground "#ffffff"))))
'(web-mode-html-tag-face ((t (:foreground "yellow3")))))
;; CONFIG
;; Lock soubory v /tmp (asi nefachá)
;(setq lock-file-name-transforms
; '(("\\`/[^/]*:\\([^/]*/\\)*\\([^/]*\\)\\'" "/tmp/\\2" t)))
;; Historie M-x atd.
(add-hook 'after-init-hook 'savehist-mode)
;; Číslování řádků
;(add-hook 'after-init-hook 'global-display-line-numbers-mode)
;; Company mode - doplňování v editoru
(add-hook 'after-init-hook 'global-company-mode)
;; Vertico mode - vertikální nabízení
(add-hook 'after-init-hook 'vertico-mode)
(add-hook 'after-init-hook 'which-key-mode)
;; Rainbow-mode - stringy do barev
;(define-globalized-minor-mode my-global-rainbow-mode rainbow-mode
; (lambda () (rainbow-mode 1)))
;(my-global-rainbow-mode 1)
;; Pruhlednost všeho HACK
(set-frame-parameter (selected-frame) 'alpha-background 92)
(add-to-list 'default-frame-alist '(alpha-background . 92))
;; custom hláška do scratche
(setq initial-scratch-message "Nazdar draku!!! :)")
;; Kalendář
(setq calendar-week-start-day 1)
(when (display-graphic-p)
(enable-theme 'mv-gruvbox)
(enable-theme 'modus-vivendi)
)
(require 'recentf)
(recentf-mode 1)
;; FCE
; Otevře buffer s pomocí sudo
(defun sudo-find-file (file)
"Open FILE as root."
(interactive
(List (read-file-name "Open as root: ")))
(find-file (if (file-writable-p file)
file
(concat "/sudo:root@localhost:" file))))
; dired otevírá ve stejném okně
(require 'dired)
(defun dired-mouse-find-file (event)
"In Dired, visit the file or directory name you click on."
(interactive "e")
(let (window pos file)
(save-excursion
(setq window (posn-window (event-end event))
pos (posn-point (event-end event)))
(if (not (windowp window))
(error "No file chosen"))
(set-buffer (window-buffer window))
(goto-char pos)
(setq file (dired-get-file-for-visit)))
(if (file-directory-p file)
(or (and (cdr dired-subdir-alist)
(dired-goto-subdir file))
(progn
(select-window window)
(dired file)))
(select-window window)
(find-file-other-window (file-name-sans-versions file t)))))
;; KLÁVESY
(global-set-key "\C-x\ \C-r" 'recentf-open-files)
;(global-set-key (kbd "") 'other-window)
(global-set-key (kbd "C-x ") 'other-window)
(global-set-key (kbd "C-x ") 'kill-this-buffer)
(global-set-key (kbd "C-x C-") 'visual-line-mode)
(define-key dired-mode-map [mouse-2] 'dired-mouse-find-file)
;; SOUBORY
(setq auto-mode-alist (cons '("README" . text-mode) auto-mode-alist))
(setq auto-mode-alist (cons '(".txt" . org-mode) auto-mode-alist))
(setq auto-mode-alist (cons '(".html" . web-mode) auto-mode-alist))
(setq auto-mode-alist (cons '(".php" . web-mode) auto-mode-alist))
Vlastní téma
Je možné spustit funkci customize-themes pro vytvoření vlastního barevného motivu.
Například založení nového tématu ze stávajícího s možností editace.
M-xcustomize-themes
Kliknu na vytvoření nového tématu ze stávajícího (odkaz click here) a vidím editaci motivu.
Případně je možné najet kurzorem na název motivu, stisknout klávesu ? a
poté kliknout na odkaz customize a budu moci změnit vybraný motiv.
Instalace balíčků
Spustím funkci package-install a zadám balíček k instalaci. Vše proběhne
automaticky a pokud máme používaný lokální adresář ~/.emacs.d/, tak do
něho se vše zapíše. Nastavení včetně doinstalovaných balíčků je přenosné.