;;; init-functions.el --- Configuración de org-mode -*- lexical-binding: t -*- ;; Author: kj ;; URL: https://git.kj2.me/kj/confi-emacs-actual ;;; Commentary: ;; Aqui se encuentran funciones sueltas de Emacs. ;;; Code: ;; Permite cambiar la transparencia de emacs. (defun transparency (value) "Change the transparency of the frame window, setting VALUE from 0 to 100." (interactive "nTransparency Value 0 - 100 opaque:") (set-frame-parameter nil 'alpha-background value)) ;; Crear captura SVG del frame atual. Fuente: https://www.reddit.com/r/emacs/comments/idz35e/emacs_27_can_take_svg_screenshots_of_itself/ (defun screenshot-svg () "Save a screenshot of the current frame as an SVG image. Saves to a temp file and puts the filename in the kill ring." (interactive) (let* ((filename (make-temp-file "Emacs" nil ".svg")) (data (x-export-frames nil 'svg))) (with-temp-file filename (insert data)) (kill-new filename) (message filename))) ;; Comentar línea o región (defun comment-or-uncomment-region-or-line () "Comments or uncomments the region or the current line." (interactive) (let (beg end) (if (region-active-p) (setq beg (region-beginning) end (region-end)) (setq beg (line-beginning-position) end (line-end-position))) (comment-or-uncomment-region beg end) ;;(next-line) ;; saltar a la siguiente línea )) ;; Duplicar la línea actual (defun duplicate-current-line (&optional n) "Duplicate current line, make more than 1 copy given a numeric (N) argument." (interactive "p") (save-excursion (let ((nb (or n 1)) (current-line (thing-at-point 'line))) ;; when on last line, insert a newline first (when (or (= 1 (forward-line 1)) (eq (point) (point-max))) (insert "\n")) ;; now insert as many time as requested (while (> n 0) (insert current-line) (decf n))))) ;; Borrar espacios, tabs y saltos de línea innecesarios al guardar (add-hook 'before-save-hook 'delete-trailing-whitespace) (provide 'init-functions) ;;; init-functions.el ends here.