mosey

Homepage: http://github.com/alphapapa/mosey.el

Author: Adam Porter

Updated:

Summary

Mosey around your buffers

Commentary

Howdy.  Why don't ya mosey on in here.  Have yourself a sit-down.

`mosey' makes it easy to mosey back and forth in your buffers.
Just pass `mosey' a list of functions that move the point to
certain places, and it'll mosey the point between those places.
Tell it `:backward t' if you want to mosey on back, otherwise it'll
mosey on ahead.  Tell it to `:bounce t' if you want it to bounce
back a notch when it hits the end, and tell it to `:cycle t' if you
want it to loop around when it gets to one end or the other.

To make it easier for ya, just pass a list of point-moving
functions to `defmosey', and it'll cook up six functions:
`mosey-forward', `mosey-backward', `mosey-forward-bounce',
`mosey-backward-bounce', `mosey-forward-cycle', and
`mosey-backward-cycle'.  Then you can pick your fav-o-rite ones and
forget about the rest!

Installation

Best thing to do is just mosey on over to http://melpa.org/ and
install the package called `mosey'.

But if you like gettin' your hands dirty, all you need to do is put
mosey.el in your `load-path' and then put this in your init file:

(require 'mosey)

...and then you can start moseying around.

Usage

You can use these commands right off the bat to move within the
current line:

+ mosey-forward
+ mosey-backward
+ mosey-forward-bounce
+ mosey-backward-bounce
+ mosey-forward-cycle
+ mosey-backward-cycle

You might even want to rebind your keys to 'em, maybe like this:

(global-set-key (kbd "C-a") 'mosey-backward)
(global-set-key (kbd "C-e") 'mosey-forward)

...but that'd be even easier with `use-package' and its handy-dandy
`:bind*' form:

(use-package mosey
  :bind* (
          ;; My personal favorites
          ("C-a" . mosey-backward-bounce)
          ("C-e" . mosey-forward-bounce)
          ))

Make your own moseys

It's easy to make your own moseys with defmosey, somethin' like
this (this example uses functions from smartparens):

(defmosey '(beginning-of-line
            back-to-indentation
            sp-backward-sexp  ; Moves across lines
            sp-forward-sexp   ; Moves across lines
            mosey-goto-end-of-code
            mosey-goto-beginning-of-comment-text)
  :prefix "lisp")

That'll cook up six functions for ya:

+ mosey-lisp-forward
+ mosey-lisp-backward
+ mosey-lisp-forward-bounce
+ mosey-lisp-backward-bounce
+ mosey-lisp-forward-cycle
+ mosey-lisp-backward-cycle

Then maybe you'd want to use 'em in your `emacs-lisp-mode',
somethin' like this:

(bind-keys :map emacs-lisp-mode-map
           ("C-a" . mosey-lisp-backward-cycle)
           ("C-e" . mosey-lisp-forward-cycle))

Credits

This package was inspired by Alex Kost's fantastic `mwim' package.
It has even more features, so check it out!
https://github.com/alezost/mwim.el

Dependencies