emacs-config/conf.org
2020-06-07 11:44:34 +02:00

301 lines
9.9 KiB
Org Mode

#+TITLE: Emacs konfiguráció
* Preferenciák beállítása
#+BEGIN_SRC emacs-lisp
(add-to-list 'default-frame-alist
'(font . "Hack 11"))
(setq visible-bell 1)
(setq inhibit-startup-screen t)
(setq debug-on-error t)
#+END_SRC
* Csomagok betöltése
** Melpa
#+BEGIN_SRC emacs-lisp
;;(require 'init-security)
(require 'package)
(let* ((no-ssl (and (memq system-type '(windows-nt ms-dos))
(not (gnutls-available-p))))
(proto (if no-ssl "http" "https")))
(when no-ssl (warn "\
Your version of Emacs does not support SSL connections,
which is unsafe because it allows man-in-the-middle attacks.
There are two things you can do about this warning:
1. Install an Emacs version that does support SSL and be safe.
2. Remove this warning from your init file so you won't see it again."))
(add-to-list 'package-archives (cons "melpa" (concat proto "://melpa.org/packages/")) t)
;; Comment/uncomment this line to enable MELPA Stable if desired. See `package-archive-priorities`
;; and `package-pinned-packages`. Most users will not need or want to do this.
;;(add-to-list 'package-archives (cons "melpa-stable" (concat proto "://stable.melpa.org/packages/")) t)
)
(package-initialize)
(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.
;;'(custom-enabled-themes 'doom-solarized-dark)
'(package-selected-packages
(quote
(nyan-mode neotree flycheck))))
;;(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.
;; )
#+END_SRC
** Cask
#+BEGIN_SRC emacs-lisp
;;(package-initialize)
;;(require 'cask "~/.cask/cask.el")
;;(cask-initialize)
#+END_SRC
** Plugin-ok betöltése
*** RTags
#+BEGIN_SRC emacs-lisp
(require 'rtags)
(require 'company-rtags)
(setq rtags-completions-enabled t)
(eval-after-load 'company
'(add-to-list
'company-backends 'company-rtags))
(setq rtags-autostart-diagnostics t)
(rtags-enable-standard-keybindings)
#+END_SRC
*** Irony-mode
#+BEGIN_SRC emacs-lisp
(add-hook 'c++-mode-hook 'irony-mode)
(add-hook 'c-mode-hook 'irony-mode)
(add-hook 'objc-mode-hook 'irony-mode)
(defun my-irony-mode-hook ()
(define-key irony-mode-map [remap completion-at-point]
'irony-completion-at-point-async)
(define-key irony-mode-map [remap complete-symbol]
'irony-completion-at-point-async))
(add-hook 'irony-mode-hook 'my-irony-mode-hook)
(add-hook 'irony-mode-hook 'irony-cdb-autosetup-compile-options)
#+END_SRC
*** Comany-irony
#+BEGIN_SRC emacs-lisp
(add-hook 'irony-mode-hook 'company-irony-setup-begin-commands)
(setq company-backends (delete 'company-semantic company-backends))
(eval-after-load 'company
'(add-to-list
'company-backends 'company-irony))
(setq company-idle-delay 0)
(define-key c-mode-map [(tab)] 'company-complete)
(define-key c++-mode-map [(tab)] 'company-complete)
#+END_SRC
*** Flycheck
#+BEGIN_SRC emacs-lisp
(add-hook 'c++-mode-hook 'flycheck-mode)
(add-hook 'c-mode-hook 'flycheck-mode)
(require 'flycheck-rtags)
(defun my-flycheck-rtags-setup ()
(flycheck-select-checker 'rtags)
(setq-local flycheck-highlighting-mode nil) ;; RTags creates more accurate overlays.
(setq-local flycheck-check-syntax-automatically nil))
;; c-mode-common-hook is also called by c++-mode
(add-hook 'c-mode-common-hook #'my-flycheck-rtags-setup)
;;Integrate to irony
(eval-after-load 'flycheck
'(add-hook 'flycheck-mode-hook #'flycheck-irony-setup))
#+END_SRC
*** Flycheck-clang-tidy
#+BEGIN_SRC emacs-lisp
(eval-after-load 'flycheck
'(add-hook 'flycheck-mode-hook #'flycheck-clang-tidy-setup))
#+END_SRC
*** Cmake-ide
#+BEGIN_SRC emacs-lisp
(cmake-ide-setup)
#+END_SRC
*** Highlight beállítások
#+BEGIN_SRC emacs-lisp
(add-hook 'irony-mode-hook 'highlight-numbers-mode)
(add-hook 'irony-mode-hook 'preproc-font-lock-mode)
#+END_SRC
*** Srefactor
#+BEGIN_SRC emacs-lisp
(require 'srefactor)
(require 'srefactor-lisp)
;; OPTIONAL: ADD IT ONLY IF YOU USE C/C++.
(semantic-mode 1) ;; -> this is optional for Lisp
(define-key c-mode-map (kbd "M-RET") 'srefactor-refactor-at-point)
(define-key c++-mode-map (kbd "M-RET") 'srefactor-refactor-at-point)
(global-set-key (kbd "M-RET o") 'srefactor-lisp-one-line)
(global-set-key (kbd "M-RET m") 'srefactor-lisp-format-sexp)
(global-set-key (kbd "M-RET d") 'srefactor-lisp-format-defun)
(global-set-key (kbd "M-RET b") 'srefactor-lisp-format-buffer)
#+END_SRC
*** Discord-Emacs
#+BEGIN_SRC emacs-lisp
(load-file "~/.emacs.d/elpa/discord-emacs.el/discord-emacs.el")
#+END_SRC
*** Smex
#+BEGIN_SRC emacs-lisp
(require 'smex) ; Not needed if you use package.el
(smex-initialize) ; Can be omitted. This might cause a (minimal) delay
; when Smex is auto-initialized on its first run.
#+END_SRC
*** Yasnippet
#+BEGIN_SRC emacs-lisp
(add-to-list 'load-path
"~/.emacs.d/plugins/yasnippet")
(require 'yasnippet)
(yas-global-mode 1)
(add-hook 'c-mode-hook #'yas-minor-mode)
(add-hook 'c++-mode-hook #'yas-minor-mode)
#+END_SRC
*** Drag-stuff
#+BEGIN_SRC emacs-lisp
(drag-stuff-mode t)
#+END_SRC
*** ORG-bullets
#+BEGIN_SRC emacs-lisp
(require 'org-bullets)
(add-hook 'org-mode-hook (lambda () (org-bullets-mode 1)))
#+END_SRC
*** Nyan-mode
#+BEGIN_SRC emacs-lisp
(nyan-mode)
#+END_SRC
*** Neotree
#+BEGIN_SRC emacs-lisp
;;(add-to-list 'load-path "/some/path/neotree")
(require 'neotree)
(global-set-key [f8] 'neotree-toggle)
#+END_SRC
* Makró beállítások
** Rtags
#+BEGIN_SRC emacs-lisp
(define-key c-mode-base-map (kbd "M-.") (function rtags-find-symbol-at-point))
(define-key c-mode-base-map (kbd "M-,") (function rtags-find-references-at-point))
(define-key c-mode-base-map (kbd "M-;") (function rtags-find-file))
(define-key c-mode-base-map (kbd "C-.") (function rtags-find-symbol))
(define-key c-mode-base-map (kbd "C-,") (function rtags-find-references))
(define-key c-mode-base-map (kbd "C-<") (function rtags-find-virtuals-at-point))
(define-key c-mode-base-map (kbd "M-i") (function rtags-imenu))
#+END_SRC
** Open config
#+BEGIN_SRC emacs-lisp
(global-set-key (kbd "C-c o") (lambda () (interactive)
(find-file "/home/balazs/.emacs.d/conf.org")
(message "Opened: %s" (buffer-name))))
(global-set-key (kbd "C-c r") (lambda () (interactive)
(kill-buffer (buffer-name))
(load-file "/home/balazs/.emacs.d/init.el")
(message "Configuration reloaded")
))
#+END_SRC
** Cmake build and run
#+BEGIN_SRC emacs-lisp
(defun cmake-build-and-run ()
"Asks for cmake target, then compiles and runs it."
(interactive)
(let ((target
(ido-completing-read "Choose build target: " (remove "" (split-string
(shell-command-to-string "cmake --build ./cmake-build-debug --target help | awk '{if($2 != \"all\" && $2!= \"clean\" && $2 != \"following\" && $2 != \"edit_cache\" && $2 != \"rebuild_cache\" && $2 != \"depend\" && $2 !~ /\\./){print $2}}'") "\n")))))
(setq cmake-last-target target)
(async-shell-command (format "cmake --build ./cmake-build-debug --target %s && ./cmake-build-debug/%s" target target))))
(defun cmake-build-last-target ()
(interactive)
(if (not (null cmake-last-target))
(async-shell-command (format "cmake --build ./cmake-build-debug --target %s && ./cmake-build-debug/%s" cmake-last-target cmake-last-target))
(cmake-build-and-run))
)
(define-key c-mode-base-map (kbd "C-c C-r") (function cmake-build-and-run))
(define-key c-mode-base-map [f5] 'cmake-build-last-target)
#+END_SRC
** Kód indentálás
#+BEGIN_SRC emacs-lisp
(defun indent-buffer ()
(interactive)
(save-excursion
(indent-region (point-min) (point-max) nil)))
(global-set-key [f6] 'indent-buffer)
#+END_SRC
** LaTeX kód fordítása
#+BEGIN_SRC emacs-lisp
#+END_SRC
** Org export
#+BEGIN_SRC emacs-lisp
(define-key org-mode-map (kbd "M-p") 'org-latex-export-to-pdf)
#+END_SRC
** Magit
#+BEGIN_SRC emacs-lisp
(global-set-key (kbd "C-x g") 'magit-status)
#+END_SRC
** Smex
#+BEGIN_SRC emacs-lisp
(global-set-key (kbd "M-x") 'smex)
(global-set-key (kbd "M-X") 'smex-major-mode-commands)
;; This is your old M-x.
(global-set-key (kbd "C-c C-c M-x") 'execute-extended-command)
#+END_SRC
* Saját változók
** Csomag változók
#+BEGIN_SRC emacs-lisp
#+END_SRC
** Minibuffer
#+BEGIN_SRC emacs-lisp
(setq minibuffer-completion-confirm nil)
#+END_SRC
** Spellcheck
#+BEGIN_SRC emacs-lisp
(setq ispell-local-dictionary "/home/balazs/.local/hu_HU.dic")
#+END_SRC
** Téma betöltése
#+BEGIN_SRC emacs-lisp
;;(load-theme "humanoid-dark" t)
;;(add-hook 'after-init-hook (lambda () (load-theme "humanoid-dark")))
#+END_SRC
** Org-mode
#+BEGIN_SRC emacs-lisp
(setq org-todo-keywords
'((squence "TODO" "WAITING" "|" "DONE(!)")))
(setq org-highlight-latex-and-related '(latex script entities))
(add-hook 'org-mode-hook '(lambda () (setq fill-column 80)))
(add-hook 'org-mode-hook 'auto-fill-mode)
#+END_SRC
** LaTeX
#+BEGIN_SRC emacs-lisp
(setq TeX-auto-save t)
(setq TeX-parse-self t)
(setq-default TeX-master nil)
#+END_SRC
** Docs view
#+BEGIN_SRC emacs-lisp
(setq doc-view-continuous t)
#+END_SRC
** Hunspell
#+BEGIN_SRC emacs-lisp
(setq ispell-program-name "hunspell"
ispell-local-dictionary "hu_HU"
ispell-skip-html t
ispell-local-dictionary-alist
'(("hu_HU" "\[\[:alpha:\]\]" "[^[:alpha:]]" "[']" nil ("-d" "hu_HU") nil utf-8)))
(setq ispell-dictionary "hu_HU")
#+END_SRC
** Teszt
#+BEGIN_SRC emacs-lisp
;; Source: http://www.emacswiki.org/emacs-en/download/misc-cmds.el
(global-auto-revert-mode 1)
(setq org-format-latex-options (plist-put org-format-latex-options :scale 2.0))
;(cd "~/CLionProjects/prog2/")
#+END_SRC