Files
emacs-dotfiles/.config.d/99-misc.el

50 lines
1.5 KiB
EmacsLisp

;;; 99-misc.el --- My miscellaneous functions. -*- no-byte-compile: t; lexical-binding: t; -*-
;;; Description:
;; This file contains my miscellaneous functions and their key binding code.
;; Some of those functions were written by me, some of them are taken from the
;; internet.
;;; Code:
(defun my/resize-margins-to-fill ()
"Set the current buffer margins so that its width is equal to the fill
column."
(interactive)
(let ((margin-size (/ (- (frame-width) fill-column) 2)))
(set-window-margins nil margin-size margin-size)))
(defun my/reset-margins ()
"Removes margins from the current buffer."
(interactive)
(set-window-margins nil nil nil))
(defun my/insert-buffer-name ()
"Inserts the name of the current buffer at point."
(interactive)
(let ((name (buffer-name)))
(insert name)))
(defun my/create-org-fc-word-card ()
"Inserts and initialzes an org-fc double card with a word and its
translation at point."
(interactive)
(let* ((engw (read-from-minibuffer "Enter English word: "))
(rusw (read-from-minibuffer "Enter Russian word: ")))
(insert "* " engw)
(newline)
(insert rusw)
(previous-line)
(org-fc-type-double-init)))
(keymap-set org-mode-map "C-c C-n" 'my/create-org-fc-word-card)
(setq margins-map (make-sparse-keymap))
(keymap-set margins-map "f" 'my/resize-margins-to-fill)
(keymap-set margins-map "r" 'my/reset-margins)
(keymap-set mode-specific-map "C-m" margins-map)
(keymap-set mode-specific-map "b" 'my/insert-buffer-name)
;;; 99-misc.el ends here