Move and expand the switching newline keys section
This commit is contained in:
parent
4e6871d7ca
commit
d49ecc62a7
1 changed files with 32 additions and 20 deletions
|
@ -980,26 +980,6 @@
|
||||||
(add-hook 'eval-expression-minibuffer-setup-hook #'eldoc-mode)
|
(add-hook 'eval-expression-minibuffer-setup-hook #'eldoc-mode)
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
* Return to {{{key(C-j)}}} in electric indent mode
|
|
||||||
|
|
||||||
When =electric-indent-mode= is enabled the default function bound to
|
|
||||||
{{{key(C-j)}}} (=electric-newline-and-maybe-indent=) stops indenting
|
|
||||||
after adding a newline, whilst {{{key(RET)}}} starts doing it. Since
|
|
||||||
I use {{{key(C-j)}}} almost exclusively and don't use {{{key(RET)}}}
|
|
||||||
at all, it's really not useful to me. So when =electric-indent-mode=
|
|
||||||
is enabled, switch the two.
|
|
||||||
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
|
||||||
(add-hook 'electric-indent-local-mode-hook
|
|
||||||
(lambda ()
|
|
||||||
(if electric-indent-mode
|
|
||||||
(progn
|
|
||||||
(local-set-key (kbd "C-j") 'newline)
|
|
||||||
(local-set-key (kbd "RET") 'electric-newline-and-maybe-indent))
|
|
||||||
(local-unset-key (kbd "C-j"))
|
|
||||||
(local-unset-key (kbd "RET")))))
|
|
||||||
#+END_SRC
|
|
||||||
|
|
||||||
* Remove whitespace when closing delimiters
|
* Remove whitespace when closing delimiters
|
||||||
|
|
||||||
In =electric-pair-mode=, skip over and delete white space if it stands
|
In =electric-pair-mode=, skip over and delete white space if it stands
|
||||||
|
@ -1180,6 +1160,38 @@
|
||||||
(add-hook 'scss-mode-hook #'electric-indent-local-mode)
|
(add-hook 'scss-mode-hook #'electric-indent-local-mode)
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
|
*** Switch keys back
|
||||||
|
|
||||||
|
When =electric-indent-mode= is enabled the default function bound to
|
||||||
|
{{{key(C-j)}}} (=electric-newline-and-maybe-indent=) stops indenting
|
||||||
|
after adding a newline, whilst {{{key(RET)}}} starts doing it.
|
||||||
|
Since I use {{{key(C-j)}}} almost exclusively and don't use
|
||||||
|
{{{key(RET)}}} at all, it's really not useful to me. So I want to
|
||||||
|
switch the two when =electric-indent-mode= is enabled.
|
||||||
|
|
||||||
|
This is very simple. First I define a simple function that checks
|
||||||
|
if the =electric-indent-mode= variable is set (which it should be if
|
||||||
|
the mode is turned on) and if so I set the proper keys /locally/. If
|
||||||
|
=electric-indent-mode= is /not/ set, which happens when the mode is
|
||||||
|
turned off, I remove the local keybindings.
|
||||||
|
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(defun oni:switch-newline-keys ()
|
||||||
|
"Switch the `C-j' and `RET' keys in the local buffer."
|
||||||
|
(if electric-indent-mode
|
||||||
|
(progn
|
||||||
|
(local-set-key (kbd "C-j") 'newline)
|
||||||
|
(local-set-key (kbd "RET") 'electric-newline-and-maybe-indent))
|
||||||
|
(local-unset-key (kbd "C-j"))
|
||||||
|
(local-unset-key (kbd "RET"))))
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
And then I add it to the electric indent mode's hook.
|
||||||
|
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(add-hook 'electric-indent-local-mode-hook #'oni:switch-newline-keys)
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
** Electric pairing
|
** Electric pairing
|
||||||
|
|
||||||
Electric pairing of delimiters is one of those features that is
|
Electric pairing of delimiters is one of those features that is
|
||||||
|
|
Loading…
Reference in a new issue