Add a useful function
This commit is contained in:
parent
b9f699ad07
commit
48238686d9
1 changed files with 47 additions and 0 deletions
|
@ -896,6 +896,53 @@
|
||||||
dired-subdir-switches "-Alh"))
|
dired-subdir-switches "-Alh"))
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
|
* Useful functions
|
||||||
|
|
||||||
|
During your editing in Emacs you will undoubtedly find the need to
|
||||||
|
define your own editing functions or macros. Here are mine.
|
||||||
|
|
||||||
|
** Delete the contents of the string at point
|
||||||
|
|
||||||
|
First we define the function. It was inspired by [[http://www.masteringemacs.org/][Mickey's post on
|
||||||
|
swapping quote symbols]], mostly copied even. First we check if we
|
||||||
|
are even in a string, and if not we throw an error, after that we
|
||||||
|
move back to the beginning of the string, store that point, go to
|
||||||
|
the end of the string (using =forward-sexp=) and then delete the
|
||||||
|
region between the two points (non-inclusive).
|
||||||
|
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(defun oni:delete-string-contents ()
|
||||||
|
(interactive)
|
||||||
|
|
||||||
|
(unless (in-string-p)
|
||||||
|
(error "You must be in a string for this command to work"))
|
||||||
|
|
||||||
|
(save-excursion
|
||||||
|
(while (in-string-p) (forward-char -1))
|
||||||
|
|
||||||
|
(let ((bos (point)))
|
||||||
|
(forward-sexp)
|
||||||
|
(delete-region (1+ bos) (1- (point))))))
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
Since for interactive functions it's kind of a pain to have to use
|
||||||
|
a personal "namespace" I prefer naming them regularly as if they're
|
||||||
|
just part of the environment. If ever Emacs comes up with a similar
|
||||||
|
function with the same name, I'd prefer using the built-in version.
|
||||||
|
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(unless (fboundp 'delete-string-contents)
|
||||||
|
(defalias 'delete-string-contents 'oni:delete-string-contents))
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
Lastly, any function worth using often should probably be easily
|
||||||
|
accessible with a keybinding. In my case the {{{key(C-c i s)}}} is
|
||||||
|
inspired by the Vim keybindings like {{{key(ci")}}}.
|
||||||
|
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(global-set-key (kbd "C-c i s") 'delete-string-contents)
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
* Load custom file
|
* Load custom file
|
||||||
|
|
||||||
I don't really use the Emacs customization interface much, but I
|
I don't really use the Emacs customization interface much, but I
|
||||||
|
|
Loading…
Reference in a new issue