Я ищу путь в emacs для смещения текста направо или налево n
пробелы. Схожая функциональность, что это в энергии <<
или >>
. Это должно работать над регионом или если никакой регион не выбран на текущей строке, и не перемещают курсор от его текущего местоположения.
Решение от EmacsWiki не работает очень хорошо M-x indent-rigidly
так как это несколько помнит последний используемый регион и сдвиги что один вместо этого. Самое близкое, кажется, то здесь, но я не сделал управляемый, чтобы заставить его работать. Я не разработчик шепелявости, таким образом, трудно изменить код. Я буду ценить любую справку.
Спасибо!
Может быть, это работает так, как вы хотите.
(defun shift-text (distance) (if (use-region-p) (let ((mark (mark))) (save-excursion (indent-rigidly (region-beginning) (region-end) distance) (push-mark mark t t) (setq deactivate-mark nil))) (indent-rigidly (line-beginning-position) (line-end-position) distance))) (defun shift-right (count) (interactive "p") (shift-text count)) (defun shift-left (count) (interactive "p") (shift-text (- count)))
Для этого я обычно делаю трюк:
Это можно сделать и программно каким-то образом (таким же образом).
РЕДАКТИРОВАТЬ: Я только что прочитал статью в вики-странице emacs, это то же самое решение, за исключением режима CUA, который бесконечно более мощный, чем «обычный» прямоугольный выбор (поскольку он визуальный).