emacs-config/emacs.d/inits/init-funcs.el
2025-09-08 20:34:20 +03:00

124 lines
3.2 KiB
EmacsLisp

(defun auto-complete-mode-maybe ()
"Overwrite auto-complete-mode-maybe which by defaults turns autocomplete only for buffers listed in ac-modes."
(unless (minibufferp (current-buffer))
(auto-complete-mode 1)
)
)
(defun set-exec-path-from-shell-PATH ()
(let ((path-from-shell (replace-regexp-in-string
"[ \t\n]*$"
""
(shell-command-to-string "$SHELL --login -i -c 'echo $PATH'"))))
(setenv "PATH" path-from-shell)
(setq eshell-path-env path-from-shell) ; for eshell users
(setq exec-path (split-string path-from-shell path-separator)))
)
(defun cnt-occur ()
(interactive)
(count-matches (region-beginning) (region-end))
)
(defun revert-cp1251()
(interactive)
(defvar old-revert-without-query revert-without-query)
(setq revert-without-query '(".*"))
(revert-buffer-with-coding-system 'cp1251)
(setq revert-without-query 'old-revert-without-query)
)
(defun revert-buf()
(interactive)
(defvar old-revert-without-query revert-without-query)
(setq revert-without-query '(".*"))
(revert-buffer)
(setq revert-without-query 'old-revert-without-query)
)
(defun move-text-internal (arg)
(cond
((and mark-active transient-mark-mode)
(if (> (point) (mark))
(exchange-point-and-mark))
(let ((column (current-column))
(text (delete-and-extract-region (point) (mark))))
(forward-line arg)
(move-to-column column t)
(set-mark (point))
(insert text)
(exchange-point-and-mark)
(setq deactivate-mark nil)))
(t
(let ((column (current-column)))
(beginning-of-line)
(when (or (> arg 0) (not (bobp)))
(forward-line)
(when (or (< arg 0) (not (eobp)))
(transpose-lines arg)
(when (and (eval-when-compile
'(and (>= emacs-major-version 24)
(>= emacs-minor-version 3)))
(< arg 0))
(forward-line -1)))
(forward-line -1))
(move-to-column column t))))
)
(defun move-text-down (arg)
"Move region (transient-mark-mode active) or current line
arg lines down."
(interactive "*p")
(move-text-internal arg)
)
(defun move-text-up (arg)
"Move region (transient-mark-mode active) or current line
arg lines up."
(interactive "*p")
(move-text-internal (- arg))
;;(next-line)
)
(defun m-line-up()
(interactive)
(transpose-lines 1)
(forward-line -2)
)
(defun m-line-down()
(interactive)
(forward-line 1)
(transpose-lines 1)
(forward-line -1)
)
(defun execute-cpp-program()
(interactive)
(save-buffer)
(defvar foo)
(setq foo (concat "g++ -O3 -std=c++14 -pthread " (buffer-name) " && ./a.out" ))
(shell-command foo)
)
(defun execute-python-script()
(interactive)
(save-buffer)
(defvar foo)
(setq foo (concat "python " (buffer-name)))
(shell-command foo)
)
(setq rm-spcs-kmap
(let ((map (make-sparse-keymap)))
(define-key map (kbd "s") #'remove-spaces)
map))
(defun remove-spaces()
(interactive)
(delete-char 1)
(forward-char)
(set-transient-map
rm-spcs-kmap)
)