mirror of
https://github.com/larstvei/dot-emacs.git
synced 2024-11-26 07:28:31 +00:00
November update.
- Added possibility for private file. - Removed `try` and instead relay on the package Try. - Made `clear-shell` to a more general `clear-comint`. - Delay loading slime-helper until its needed. - Added `cycle-theme`, and changed default to leuven.
This commit is contained in:
parent
42e5a1af33
commit
90b6af78fe
78
README.md
78
README.md
@ -98,6 +98,18 @@ tangled, and the tangled file is compiled."
|
||||
(add-hook 'after-save-hook 'tangle-init)
|
||||
```
|
||||
|
||||
I'd like to keep a few settings private, so we load a `private.el` if it
|
||||
exists after the init-file has loaded.
|
||||
|
||||
```emacs-lisp
|
||||
(add-hook
|
||||
'after-init-hook
|
||||
(lambda ()
|
||||
(let ((private-file (concat user-emacs-directory "private.el")))
|
||||
(when (file-exists-p private-file)
|
||||
(load-file private-file)))))
|
||||
```
|
||||
|
||||
## Package<a id="sec-2-2" name="sec-2-2"></a>
|
||||
|
||||
Managing extensions for Emacs is simplified using `package` which is
|
||||
@ -223,7 +235,6 @@ configurations are also dependent on them).
|
||||
(when (and do-package-update-on-init
|
||||
(y-or-n-p "Update all packages?"))
|
||||
(package-refresh-contents)
|
||||
|
||||
(let* ((packages
|
||||
'(ac-geiser ; Auto-complete backend for geiser
|
||||
ac-slime ; An auto-complete source using slime completions
|
||||
@ -252,7 +263,8 @@ configurations are also dependent on them).
|
||||
pretty-lambdada ; the word `lambda' as the Greek letter.
|
||||
slime ; Superior Lisp Interaction Mode for Emacs
|
||||
smex ; M-x interface with Ido-style fuzzy matching.
|
||||
undo-tree)) ; Treat undo history as a tree
|
||||
undo-tree ; Treat undo history as a tree
|
||||
try)) ; Try out Emacs packages.
|
||||
;; Fetch dependencies from all packages.
|
||||
(reqs (mapcar 'dependencies packages))
|
||||
;; Append these to the original list, and remove any duplicates.
|
||||
@ -457,17 +469,30 @@ This makes `.md`-files open in `markdown-mode`.
|
||||
|
||||
## Visual<a id="sec-2-7" name="sec-2-7"></a>
|
||||
|
||||
Change the color-theme to `monokai` (downloaded using `package`).
|
||||
Change the color-theme to `leuven`.
|
||||
|
||||
```emacs-lisp
|
||||
(load-theme 'monokai t)
|
||||
(load-theme 'leuven t)
|
||||
```
|
||||
|
||||
`leuven` is my preferred light theme, but `monokai` makes a very nice
|
||||
dark theme. I want to be able to cycle between these.
|
||||
|
||||
```emacs-lisp
|
||||
(defun cycle-themes ()
|
||||
"Returns a function that lets you cycle your themes."
|
||||
(lexical-let ((themes '#1=(leuven monokai . #1#)))
|
||||
(lambda ()
|
||||
(interactive)
|
||||
;; Rotates the thme cycle and changes the current theme.
|
||||
(load-theme (car (setq themes (cdr themes))) t))))
|
||||
```
|
||||
|
||||
Use the [Inconsolata](http://www.levien.com/type/myfonts/inconsolata.html) font if it's installed on the system.
|
||||
|
||||
```emacs-lisp
|
||||
(when (member "Inconsolata-g" (font-family-list))
|
||||
(set-face-attribute 'default nil :font "Inconsolata-g-11"))
|
||||
(when (member "Inconsolata" (font-family-list))
|
||||
(set-face-attribute 'default nil :font "Inconsolata-13"))
|
||||
```
|
||||
|
||||
## Ido<a id="sec-2-8" name="sec-2-8"></a>
|
||||
@ -661,7 +686,7 @@ I use `org-agenda` for appointments and such.
|
||||
|
||||
```emacs-lisp
|
||||
(setq org-agenda-start-on-weekday nil ; Show agenda from today.
|
||||
org-agenda-files '("~/Dropbox/life.org") ; A list of agenda files.
|
||||
org-agenda-files '("~/Dropbox/cal.org") ; A list of agenda files.
|
||||
org-agenda-default-appointment-duration 120) ; 2 hours appointments.
|
||||
```
|
||||
|
||||
@ -677,9 +702,11 @@ This is quite an ugly fix for allowing code markup for expressions like
|
||||
`"this string"`, because the quotation marks causes problems.
|
||||
|
||||
```emacs-lisp
|
||||
(require 'org)
|
||||
(setcar (nthcdr 2 org-emphasis-regexp-components) " \t\n,")
|
||||
(custom-set-variables `(org-emphasis-alist ',org-emphasis-alist))
|
||||
;;(require 'org)
|
||||
(eval-after-load "org"
|
||||
'(progn
|
||||
(setcar (nthcdr 2 org-emphasis-regexp-components) " \t\n,")
|
||||
(custom-set-variables `(org-emphasis-alist ',org-emphasis-alist))))
|
||||
```
|
||||
|
||||
## Interactive functions<a id="sec-2-13" name="sec-2-13"></a>
|
||||
@ -797,17 +824,6 @@ To tidy up a buffer we define this function borrowed from [simenheg](https://git
|
||||
(untabify beg (if (< end (point-max)) end (point-max)))))
|
||||
```
|
||||
|
||||
If you have a link to a raw `.el`-file, run `M-x try` and yank an URL
|
||||
into the minibuffer, and the file will be evaluated.
|
||||
|
||||
```emacs-lisp
|
||||
(defun try (url)
|
||||
"Takes an URL to a .el-file, and evaluates it."
|
||||
(interactive (list (read-from-minibuffer "url: ")))
|
||||
(with-current-buffer (url-retrieve-synchronously url)
|
||||
(eval-region (search-forward-regexp "^$") (point-max))))
|
||||
```
|
||||
|
||||
## Advice<a id="sec-2-14" name="sec-2-14"></a>
|
||||
|
||||
An advice can be given to a function to make it behave differently. This
|
||||
@ -892,7 +908,7 @@ does not remove anything. In Emacs removing stuff is less of a worry,
|
||||
since we can always undo!
|
||||
|
||||
```emacs-lisp
|
||||
(defun clear-shell ()
|
||||
(defun clear-comint ()
|
||||
"Runs `comint-truncate-buffer' with the
|
||||
`comint-buffer-maximum-size' set to zero."
|
||||
(interactive)
|
||||
@ -905,7 +921,7 @@ global binding (because we want to be able to switch to a shell from any
|
||||
buffer), but the `clear-shell` should only affect `shell-mode`.
|
||||
|
||||
```emacs-lisp
|
||||
(add-hook 'shell-mode-hook (lambda () (local-set-key (kbd "C-l") 'clear-shell)))
|
||||
(add-hook 'comint-mode-hook (lambda () (local-set-key (kbd "C-l") 'clear-comint)))
|
||||
```
|
||||
|
||||
## Lisp<a id="sec-3-2" name="sec-3-2"></a>
|
||||
@ -951,8 +967,14 @@ and you can install Slime following the instructions from the site along
|
||||
with this snippet.
|
||||
|
||||
```emacs-lisp
|
||||
(when (file-exists-p "~/.quicklisp/slime-helper.el")
|
||||
(load (expand-file-name "~/.quicklisp/slime-helper.el")))
|
||||
(defun activate-slime-helper ()
|
||||
(when (file-exists-p "~/.quicklisp/slime-helper.elc")
|
||||
(load (expand-file-name "~/.quicklisp/slime-helper.elc"))
|
||||
(define-key slime-repl-mode-map (kbd "C-l")
|
||||
'slime-repl-clear-buffer))
|
||||
(remove-hook 'lisp-mode-hook #'activate-slime-helper))
|
||||
|
||||
(add-hook 'lisp-mode-hook #'activate-slime-helper)
|
||||
```
|
||||
|
||||
We can specify what Common Lisp program Slime should use (I use SBCL).
|
||||
@ -981,7 +1003,6 @@ More sensible `loop` indentation, borrowed from [simenheg](https://github.com/si
|
||||
```
|
||||
|
||||
```emacs-lisp
|
||||
(define-key slime-repl-mode-map (kbd "C-l") 'slime-repl-clear-buffer)
|
||||
```
|
||||
|
||||
### Scheme<a id="sec-3-2-3" name="sec-3-2-3"></a>
|
||||
@ -1158,7 +1179,7 @@ Bindings for [expand-region](https://github.com/magnars/expand-region.el).
|
||||
|
||||
```emacs-lisp
|
||||
(define-key custom-bindings-map (kbd "C-'") 'er/expand-region)
|
||||
(define-key custom-bindings-map (kbd "C-;") 'er/contract-region)
|
||||
(define-key custom-bindings-map (kbd "C-\"") 'er/contract-region)
|
||||
```
|
||||
|
||||
Bindings for [multiple-cursors](https://github.com/magnars/multiple-cursors.el).
|
||||
@ -1212,8 +1233,11 @@ Bind some native Emacs functions.
|
||||
Bind the functions defined above.
|
||||
|
||||
```emacs-lisp
|
||||
(define-key global-map (kbd "M-p") 'jump-to-previous-like-this)
|
||||
(define-key global-map (kbd "M-n") 'jump-to-next-like-this)
|
||||
(define-key custom-bindings-map (kbd "M-,") 'jump-to-previous-like-this)
|
||||
(define-key custom-bindings-map (kbd "M-.") 'jump-to-next-like-this)
|
||||
(define-key custom-bindings-map (kbd "C-c .") (cycle-themes))
|
||||
(define-key custom-bindings-map (kbd "C-x k") 'kill-this-buffer-unless-scratch)
|
||||
(define-key custom-bindings-map (kbd "C-x t") 'toggle-shell)
|
||||
(define-key custom-bindings-map (kbd "C-c j") 'cycle-spacing-delete-newlines)
|
||||
|
73
init.el
73
init.el
@ -21,6 +21,16 @@ tangled, and the tangled file is compiled."
|
||||
|
||||
(add-hook 'after-save-hook 'tangle-init)
|
||||
|
||||
;; I'd like to keep a few settings private, so we load a =private.el= if it
|
||||
;; exists after the init-file has loaded.
|
||||
|
||||
(add-hook
|
||||
'after-init-hook
|
||||
(lambda ()
|
||||
(let ((private-file (concat user-emacs-directory "private.el")))
|
||||
(when (file-exists-p private-file)
|
||||
(load-file private-file)))))
|
||||
|
||||
;; Package
|
||||
|
||||
;; Managing extensions for Emacs is simplified using =package= which is
|
||||
@ -131,7 +141,6 @@ PACKAGE is installed and the current version is deleted."
|
||||
(when (and do-package-update-on-init
|
||||
(y-or-n-p "Update all packages?"))
|
||||
(package-refresh-contents)
|
||||
|
||||
(let* ((packages
|
||||
'(ac-geiser ; Auto-complete backend for geiser
|
||||
ac-slime ; An auto-complete source using slime completions
|
||||
@ -160,7 +169,8 @@ PACKAGE is installed and the current version is deleted."
|
||||
pretty-lambdada ; the word `lambda' as the Greek letter.
|
||||
slime ; Superior Lisp Interaction Mode for Emacs
|
||||
smex ; M-x interface with Ido-style fuzzy matching.
|
||||
undo-tree)) ; Treat undo history as a tree
|
||||
undo-tree ; Treat undo history as a tree
|
||||
try)) ; Try out Emacs packages.
|
||||
;; Fetch dependencies from all packages.
|
||||
(reqs (mapcar 'dependencies packages))
|
||||
;; Append these to the original list, and remove any duplicates.
|
||||
@ -336,14 +346,25 @@ PACKAGE is installed and the current version is deleted."
|
||||
|
||||
;; Visual
|
||||
|
||||
;; Change the color-theme to =monokai= (downloaded using =package=).
|
||||
;; Change the color-theme to =leuven=.
|
||||
|
||||
(load-theme 'monokai t)
|
||||
(load-theme 'leuven t)
|
||||
|
||||
;; =leuven= is my preferred light theme, but =monokai= makes a very nice
|
||||
;; dark theme. I want to be able to cycle between these.
|
||||
|
||||
(defun cycle-themes ()
|
||||
"Returns a function that lets you cycle your themes."
|
||||
(lexical-let ((themes '#1=(leuven monokai . #1#)))
|
||||
(lambda ()
|
||||
(interactive)
|
||||
;; Rotates the thme cycle and changes the current theme.
|
||||
(load-theme (car (setq themes (cdr themes))) t))))
|
||||
|
||||
;; Use the [[http://www.levien.com/type/myfonts/inconsolata.html][Inconsolata]] font if it's installed on the system.
|
||||
|
||||
(when (member "Inconsolata-g" (font-family-list))
|
||||
(set-face-attribute 'default nil :font "Inconsolata-g-11"))
|
||||
(when (member "Inconsolata" (font-family-list))
|
||||
(set-face-attribute 'default nil :font "Inconsolata-13"))
|
||||
|
||||
;; Ido
|
||||
|
||||
@ -509,7 +530,7 @@ the languages in ISPELL-LANGUAGES when invoked."
|
||||
;; I use =org-agenda= for appointments and such.
|
||||
|
||||
(setq org-agenda-start-on-weekday nil ; Show agenda from today.
|
||||
org-agenda-files '("~/Dropbox/life.org") ; A list of agenda files.
|
||||
org-agenda-files '("~/Dropbox/cal.org") ; A list of agenda files.
|
||||
org-agenda-default-appointment-duration 120) ; 2 hours appointments.
|
||||
|
||||
;; When editing org-files with source-blocks, we want the source blocks to
|
||||
@ -521,9 +542,11 @@ the languages in ISPELL-LANGUAGES when invoked."
|
||||
;; This is quite an ugly fix for allowing code markup for expressions like
|
||||
;; ="this string"=, because the quotation marks causes problems.
|
||||
|
||||
(require 'org)
|
||||
(setcar (nthcdr 2 org-emphasis-regexp-components) " \t\n,")
|
||||
(custom-set-variables `(org-emphasis-alist ',org-emphasis-alist))
|
||||
;;(require 'org)
|
||||
(eval-after-load "org"
|
||||
'(progn
|
||||
(setcar (nthcdr 2 org-emphasis-regexp-components) " \t\n,")
|
||||
(custom-set-variables `(org-emphasis-alist ',org-emphasis-alist))))
|
||||
|
||||
;; Interactive functions
|
||||
;; <<sec:defuns>>
|
||||
@ -627,15 +650,6 @@ the buffer is buried."
|
||||
(whitespace-cleanup)
|
||||
(untabify beg (if (< end (point-max)) end (point-max)))))
|
||||
|
||||
;; If you have a link to a raw =.el=-file, run =M-x try= and yank an URL
|
||||
;; into the minibuffer, and the file will be evaluated.
|
||||
|
||||
(defun try (url)
|
||||
"Takes an URL to a .el-file, and evaluates it."
|
||||
(interactive (list (read-from-minibuffer "url: ")))
|
||||
(with-current-buffer (url-retrieve-synchronously url)
|
||||
(eval-region (search-forward-regexp "^$") (point-max))))
|
||||
|
||||
;; Advice
|
||||
|
||||
;; An advice can be given to a function to make it behave differently. This
|
||||
@ -707,7 +721,7 @@ the buffer is buried."
|
||||
;; does not remove anything. In Emacs removing stuff is less of a worry,
|
||||
;; since we can always undo!
|
||||
|
||||
(defun clear-shell ()
|
||||
(defun clear-comint ()
|
||||
"Runs `comint-truncate-buffer' with the
|
||||
`comint-buffer-maximum-size' set to zero."
|
||||
(interactive)
|
||||
@ -718,7 +732,7 @@ the buffer is buried."
|
||||
;; global binding (because we want to be able to switch to a shell from any
|
||||
;; buffer), but the =clear-shell= should only affect =shell-mode=.
|
||||
|
||||
(add-hook 'shell-mode-hook (lambda () (local-set-key (kbd "C-l") 'clear-shell)))
|
||||
(add-hook 'comint-mode-hook (lambda () (local-set-key (kbd "C-l") 'clear-comint)))
|
||||
|
||||
;; Lisp
|
||||
|
||||
@ -756,8 +770,14 @@ the buffer is buried."
|
||||
;; and you can install Slime following the instructions from the site along
|
||||
;; with this snippet.
|
||||
|
||||
(when (file-exists-p "~/.quicklisp/slime-helper.el")
|
||||
(load (expand-file-name "~/.quicklisp/slime-helper.el")))
|
||||
(defun activate-slime-helper ()
|
||||
(when (file-exists-p "~/.quicklisp/slime-helper.elc")
|
||||
(load (expand-file-name "~/.quicklisp/slime-helper.elc"))
|
||||
(define-key slime-repl-mode-map (kbd "C-l")
|
||||
'slime-repl-clear-buffer))
|
||||
(remove-hook 'lisp-mode-hook #'activate-slime-helper))
|
||||
|
||||
(add-hook 'lisp-mode-hook #'activate-slime-helper)
|
||||
|
||||
;; We can specify what Common Lisp program Slime should use (I use SBCL).
|
||||
|
||||
@ -778,7 +798,7 @@ the buffer is buried."
|
||||
lisp-simple-loop-indentation 2
|
||||
lisp-loop-keyword-indentation 6)
|
||||
|
||||
(define-key slime-repl-mode-map (kbd "C-l") 'slime-repl-clear-buffer)
|
||||
|
||||
|
||||
;; Scheme
|
||||
|
||||
@ -925,7 +945,7 @@ math-block around the region."
|
||||
;; Bindings for [[https://github.com/magnars/expand-region.el][expand-region]].
|
||||
|
||||
(define-key custom-bindings-map (kbd "C-'") 'er/expand-region)
|
||||
(define-key custom-bindings-map (kbd "C-;") 'er/contract-region)
|
||||
(define-key custom-bindings-map (kbd "C-\"") 'er/contract-region)
|
||||
|
||||
;; Bindings for [[https://github.com/magnars/multiple-cursors.el][multiple-cursors]].
|
||||
|
||||
@ -963,8 +983,11 @@ math-block around the region."
|
||||
|
||||
;; Bind the functions defined [[sec:defuns][above]].
|
||||
|
||||
(define-key global-map (kbd "M-p") 'jump-to-previous-like-this)
|
||||
(define-key global-map (kbd "M-n") 'jump-to-next-like-this)
|
||||
(define-key custom-bindings-map (kbd "M-,") 'jump-to-previous-like-this)
|
||||
(define-key custom-bindings-map (kbd "M-.") 'jump-to-next-like-this)
|
||||
(define-key custom-bindings-map (kbd "C-c .") (cycle-themes))
|
||||
(define-key custom-bindings-map (kbd "C-x k") 'kill-this-buffer-unless-scratch)
|
||||
(define-key custom-bindings-map (kbd "C-x t") 'toggle-shell)
|
||||
(define-key custom-bindings-map (kbd "C-c j") 'cycle-spacing-delete-newlines)
|
||||
|
78
init.org
78
init.org
@ -67,6 +67,18 @@
|
||||
(add-hook 'after-save-hook 'tangle-init)
|
||||
#+END_SRC
|
||||
|
||||
I'd like to keep a few settings private, so we load a =private.el= if it
|
||||
exists after the init-file has loaded.
|
||||
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(add-hook
|
||||
'after-init-hook
|
||||
(lambda ()
|
||||
(let ((private-file (concat user-emacs-directory "private.el")))
|
||||
(when (file-exists-p private-file)
|
||||
(load-file private-file)))))
|
||||
#+END_SRC
|
||||
|
||||
** Package
|
||||
|
||||
Managing extensions for Emacs is simplified using =package= which is
|
||||
@ -192,7 +204,6 @@
|
||||
(when (and do-package-update-on-init
|
||||
(y-or-n-p "Update all packages?"))
|
||||
(package-refresh-contents)
|
||||
|
||||
(let* ((packages
|
||||
'(ac-geiser ; Auto-complete backend for geiser
|
||||
ac-slime ; An auto-complete source using slime completions
|
||||
@ -221,7 +232,8 @@
|
||||
pretty-lambdada ; the word `lambda' as the Greek letter.
|
||||
slime ; Superior Lisp Interaction Mode for Emacs
|
||||
smex ; M-x interface with Ido-style fuzzy matching.
|
||||
undo-tree)) ; Treat undo history as a tree
|
||||
undo-tree ; Treat undo history as a tree
|
||||
try)) ; Try out Emacs packages.
|
||||
;; Fetch dependencies from all packages.
|
||||
(reqs (mapcar 'dependencies packages))
|
||||
;; Append these to the original list, and remove any duplicates.
|
||||
@ -428,17 +440,31 @@
|
||||
|
||||
** Visual
|
||||
|
||||
Change the color-theme to =monokai= (downloaded using =package=).
|
||||
Change the color-theme to =leuven=.
|
||||
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(load-theme 'monokai t)
|
||||
(load-theme 'leuven t)
|
||||
#+END_SRC
|
||||
|
||||
=leuven= is my preferred light theme, but =monokai= makes a very nice
|
||||
dark theme. I want to be able to cycle between these.
|
||||
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(defun cycle-themes ()
|
||||
"Returns a function that lets you cycle your themes."
|
||||
(lexical-let ((themes '#1=(leuven monokai . #1#)))
|
||||
(lambda ()
|
||||
(interactive)
|
||||
;; Rotates the thme cycle and changes the current theme.
|
||||
(load-theme (car (setq themes (cdr themes))) t))))
|
||||
|
||||
#+END_SRC
|
||||
|
||||
Use the [[http://www.levien.com/type/myfonts/inconsolata.html][Inconsolata]] font if it's installed on the system.
|
||||
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(when (member "Inconsolata-g" (font-family-list))
|
||||
(set-face-attribute 'default nil :font "Inconsolata-g-11"))
|
||||
(when (member "Inconsolata" (font-family-list))
|
||||
(set-face-attribute 'default nil :font "Inconsolata-13"))
|
||||
|
||||
#+END_SRC
|
||||
|
||||
@ -666,7 +692,7 @@
|
||||
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(setq org-agenda-start-on-weekday nil ; Show agenda from today.
|
||||
org-agenda-files '("~/Dropbox/life.org") ; A list of agenda files.
|
||||
org-agenda-files '("~/Dropbox/cal.org") ; A list of agenda files.
|
||||
org-agenda-default-appointment-duration 120) ; 2 hours appointments.
|
||||
#+END_SRC
|
||||
|
||||
@ -683,9 +709,11 @@
|
||||
="this string"=, because the quotation marks causes problems.
|
||||
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(require 'org)
|
||||
;;(require 'org)
|
||||
(eval-after-load "org"
|
||||
'(progn
|
||||
(setcar (nthcdr 2 org-emphasis-regexp-components) " \t\n,")
|
||||
(custom-set-variables `(org-emphasis-alist ',org-emphasis-alist))
|
||||
(custom-set-variables `(org-emphasis-alist ',org-emphasis-alist))))
|
||||
#+END_SRC
|
||||
|
||||
** Interactive functions
|
||||
@ -802,17 +830,6 @@
|
||||
(untabify beg (if (< end (point-max)) end (point-max)))))
|
||||
#+END_SRC
|
||||
|
||||
If you have a link to a raw =.el=-file, run =M-x try= and yank an URL
|
||||
into the minibuffer, and the file will be evaluated.
|
||||
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(defun try (url)
|
||||
"Takes an URL to a .el-file, and evaluates it."
|
||||
(interactive (list (read-from-minibuffer "url: ")))
|
||||
(with-current-buffer (url-retrieve-synchronously url)
|
||||
(eval-region (search-forward-regexp "^$") (point-max))))
|
||||
#+END_SRC
|
||||
|
||||
** Advice
|
||||
|
||||
An advice can be given to a function to make it behave differently. This
|
||||
@ -896,7 +913,7 @@
|
||||
since we can always undo!
|
||||
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(defun clear-shell ()
|
||||
(defun clear-comint ()
|
||||
"Runs `comint-truncate-buffer' with the
|
||||
`comint-buffer-maximum-size' set to zero."
|
||||
(interactive)
|
||||
@ -909,7 +926,7 @@
|
||||
buffer), but the =clear-shell= should only affect =shell-mode=.
|
||||
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(add-hook 'shell-mode-hook (lambda () (local-set-key (kbd "C-l") 'clear-shell)))
|
||||
(add-hook 'comint-mode-hook (lambda () (local-set-key (kbd "C-l") 'clear-comint)))
|
||||
#+END_SRC
|
||||
|
||||
** Lisp
|
||||
@ -955,8 +972,14 @@
|
||||
with this snippet.
|
||||
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(when (file-exists-p "~/.quicklisp/slime-helper.el")
|
||||
(load (expand-file-name "~/.quicklisp/slime-helper.el")))
|
||||
(defun activate-slime-helper ()
|
||||
(when (file-exists-p "~/.quicklisp/slime-helper.elc")
|
||||
(load (expand-file-name "~/.quicklisp/slime-helper.elc"))
|
||||
(define-key slime-repl-mode-map (kbd "C-l")
|
||||
'slime-repl-clear-buffer))
|
||||
(remove-hook 'lisp-mode-hook #'activate-slime-helper))
|
||||
|
||||
(add-hook 'lisp-mode-hook #'activate-slime-helper)
|
||||
#+END_SRC
|
||||
|
||||
We can specify what Common Lisp program Slime should use (I use SBCL).
|
||||
@ -985,7 +1008,7 @@
|
||||
#+END_SRC
|
||||
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(define-key slime-repl-mode-map (kbd "C-l") 'slime-repl-clear-buffer)
|
||||
|
||||
#+END_SRC
|
||||
|
||||
*** Scheme
|
||||
@ -1174,7 +1197,7 @@
|
||||
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(define-key custom-bindings-map (kbd "C-'") 'er/expand-region)
|
||||
(define-key custom-bindings-map (kbd "C-;") 'er/contract-region)
|
||||
(define-key custom-bindings-map (kbd "C-\"") 'er/contract-region)
|
||||
#+END_SRC
|
||||
|
||||
Bindings for [[https://github.com/magnars/multiple-cursors.el][multiple-cursors]].
|
||||
@ -1228,8 +1251,11 @@
|
||||
Bind the functions defined [[sec:defuns][above]].
|
||||
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(define-key global-map (kbd "M-p") 'jump-to-previous-like-this)
|
||||
(define-key global-map (kbd "M-n") 'jump-to-next-like-this)
|
||||
(define-key custom-bindings-map (kbd "M-,") 'jump-to-previous-like-this)
|
||||
(define-key custom-bindings-map (kbd "M-.") 'jump-to-next-like-this)
|
||||
(define-key custom-bindings-map (kbd "C-c .") (cycle-themes))
|
||||
(define-key custom-bindings-map (kbd "C-x k") 'kill-this-buffer-unless-scratch)
|
||||
(define-key custom-bindings-map (kbd "C-x t") 'toggle-shell)
|
||||
(define-key custom-bindings-map (kbd "C-c j") 'cycle-spacing-delete-newlines)
|
||||
|
Loading…
Reference in New Issue
Block a user