Emaksaj Konsiletoj 1-a: Regionoj kaj Markoj
La voĉon ne pligrandigu; la argumenton plibonigu.
—Desmond TUTU
Enhavotabelo
Introduction
Mi ankoraŭ bezonas trovi pli bonan redaktilon ol emakso. Tio, kio igas emakson elstara, estas ĝia agorda lingvo—emakslispo. Emakso uzas ĝin al punkto, en kiu, plejparto de la funkciado de ĝi mem, realiĝas per emakslispo. En ĉi tiuj serioj, mi priparolos la aferojn, kiujn mi malkovris fari la uzadon de emakso pli agrabla persone.
Regionoj
La jena komando forviŝas regionon se unu aktivas aŭ forviŝas la signon sub la kursoro.
(defun delete-char-or-region (&optional arg)
(interactive "p")
(if (region-active-p)
(delete-region (region-beginning)
(region-end))
(if (fboundp 'delete-char)
(delete-char arg)
(delete-forward-char arg))))
Kompilo
Ofte mi uzas la jenan komandon kaj mi uzas ĝin kiam komposti LaTex-dokumentojn, kompili Scribble-dokumentojn, kompili kodon, kaj por preskaŭ io ajn, al kiu mi povas uzi ĝin.
(defun compile-file ()
(interactive)
(compile "make -k"))
Skimo
Mi volas havi komandon kiu eksplicite konservas la enigan historion de Geiser:
(defun geiser-save ()
(interactive)
(geiser-repl--write-input-ring))
Kaj mi ankaŭ havas la jenan tial, ke mi volas ĝisrandigi plaĉe la λ
-simbolon.
(defun my-scheme-mode-hook ()
(put 'λ 'scheme-indent-function 1))
(add-hook 'scheme-mode-hook 'my-scheme-mode-hook)
Servilo
La jena certigas kodaĵo, ke la emaksa servilo—tiu, kiu emacsclient
konektas al—ruliĝos:
(require 'server)
(unless (server-running-p)
(server-start))
Alterne, oni povas ruli emakson en demonreĝimo ĉe la komandlinio:
$ emacs --daemon
Bufroj
Mi volas havi manieron por mortigi la aktualan bufron sen demandita kiun bufron por mortigi. Mi nur invitiĝos se la aktuala bufro ŝanĝiĝis:
(defun kill-current-buffer ()
(interactive)
(kill-buffer (current-buffer)))
Markoj
Estis multe da fojoj en la estinteco kiam mi bezonis funkcion kiu markas nur linion. Kiun mi havas estas la jena. Ruli ĝin multfoje markas plurajn liniojn.
(defun mark-line (&optional arg)
(interactive "p")
(if (not mark-active)
(progn
(beginning-of-line)
(push-mark)
(setq mark-active t)))
(forward-line arg))
Klavkombinoj
La klavkombinoj por la supraj komandoj, estas la jenaj:
(bind-keys
:map global-map
("<delete>" . delete-char-or-region)
("C-x C-k" . kill-current-buffer)
("C-x c" . compile-file)
("M-z" . mark-line))
(bind-keys
:map scheme-mode-map
("C-c <tab>" . completion-at-point))
Finrimarkoj
Mi esperas, ke oni povos esti kapabla trovi uzojn el kelke da aferoj ĉi-supre. La ceteraj agordoj troveblas ĉi tie.