diff options
Diffstat (limited to 'emacs/.config')
-rw-r--r-- | emacs/.config/emacs/init.org | 53 | ||||
-rw-r--r-- | emacs/.config/shepherd/init.d/emacs.scm.org (renamed from emacs/.config/shepherd/init.d/emacs.org) | 0 |
2 files changed, 53 insertions, 0 deletions
diff --git a/emacs/.config/emacs/init.org b/emacs/.config/emacs/init.org new file mode 100644 index 0000000..ff7186d --- /dev/null +++ b/emacs/.config/emacs/init.org @@ -0,0 +1,53 @@ +#+TITLE: Emacs Configuration + +First, lexical binding must be enabled. This is better for performance, but also makes variable binding behave more as expected, and allows the creation of closures. + +#+begin_src emacs-lisp :padline no + ;; -*- lexical-binding: t; -*- +#+end_src + +#+begin_src emacs-lisp + (require 'oni-core) + (require 'oni-gui) +#+end_src + +Store all auto-save files in =$XDG_DATA_HOME/emacs/auto-save-list= to prevent them from clogging up =$XDG_CONFIG_HOME/emacs/=. The XDG specification says that if =XDG_DATA_HOME= hasn't been specified a default of =~/.local/share= should be used. + +#+begin_src emacs-lisp + (add-to-list + 'auto-save-file-name-transforms + `(,(rx (zero-or-more any)) + ,(concat (or (getenv "XDG_DATA_HOME") + (expand-file-name "~/.local/share")) + "/emacs/auto-save-list") + t) + t) +#+end_src + +Use =hunspell= instead of the default =aspell=. Hunspell is used by LibreOffice and other programs too. So far (at least through Emacs) it doesn't recognize the =’= as an apostrophe and I have to use ='= in org-mode if I want spell checking to accept word contractions in English. + +#+begin_src emacs-lisp + (eval-when-compile (require 'ispell)) + (with-eval-after-load 'ispell + (setq ispell-program-name "hunspell" + ispell-really-hunspell t)) +#+end_src + +Electric quote uses pretty quoting characters =’=, =‘=, =”=, and =“= instead of ='= and ="=, but when I'm in the middle of a word I don't want to use =’= (right single quotation mark), but ='= (apostrophe), which provides better results with spellchecking. So here is a function that checks whether the character before the previous is a word character. + +#+begin_src emacs-lisp + (defun oni-in-word-p () + "Check whether the character just typed was part of a word." + (save-excursion + (backward-char) + (looking-back (rx word) (1- (point))))) +#+end_src + +Now that I can check whether or not I'm typing a word, I can tell =electric-quote-mode= not to use =’= in that case. + +#+begin_src emacs-lisp + (with-eval-after-load 'electric + (add-hook 'electric-quote-inhibit-functions #'oni-in-word-p)) +#+end_src + +So now that that's settled, I should be writing ='= in words like “shouldn't'' and =’= otherwise. And spellchecking should work just fine. diff --git a/emacs/.config/shepherd/init.d/emacs.org b/emacs/.config/shepherd/init.d/emacs.scm.org index 11bef69..11bef69 100644 --- a/emacs/.config/shepherd/init.d/emacs.org +++ b/emacs/.config/shepherd/init.d/emacs.scm.org |