文本移动
MoveText 允许你使用 M-up / M-down(或任何你选择的其他绑定)来移动当前行 如果选中了一个区域,它会移动该区域。
使用前缀参数(C-u 数字 或 META 数字)可以预先确定要移动的行数。
从 MELPA(或 MELPA 稳定版)安装
M-x package-install move-text <RETURN>
如果你想使用默认绑定,请在 (package-initialize)
之后的任何位置将以下内容添加到 .emacs 中:
(move-text-default-bindings)
这将设置以下键盘快捷键:
- Meta-up
move-text-up
(行或激活的区域) - Meta-down
move-text-down
(行或激活的区域)
演示
移动后缩进...
@jbreeden 为我们提供了这个有用的函数建议,使 Emacs 在文本移动前后重新缩进文本。
(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)