Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Move-Text CI Tests MELPA MELPA Stable

Move Text

MoveText allows you to move the current line using M-up / M-down (or any other bindings you choose) if a region is marked, it will move the region instead.

Using the prefix arg (C-u number or META number) will predetermine how many lines to move.

Install from MELPA (or MELPA stable)

M-x package-install move-text <RETURN>

If you want to use the default bindings, add the following to .emacs anywhere after (package-initialize):


This sets the keyboard shortcuts:

  • Meta-up move-text-up (line or active region)
  • Meta-down move-text-down (line or active region)


Indent after moving...

@jbreeden gave us this useful function advice to have Emacs re-indent the text in-and-around a text move.

(defun indent-region-advice (&rest ignored)
  (let ((deactivate deactivate-mark))
    (if (region-active-p)
        (indent-region (region-beginning) (region-end))
      (indent-region (line-beginning-position) (line-end-position)))
    (setq deactivate-mark deactivate)))

(advice-add 'move-text-up :after 'indent-region-advice)
(advice-add 'move-text-down :after 'indent-region-advice)