Emacs: изменить регистр прямоугольника

Что было бы самым простым способом изменить случай прямоугольника?

Ни один из сокращений, упомянутых в manual, не говорит об этом. Нужно ли добавлять пользовательскую привязку для этого? И пока мы на нем, как мне искать только внутри прямоугольника?

Ответ 1

Легко с использованием поддержки выбора прямоугольника cua-mode:

(setq cua-enable-cua-keys nil)  ; enable only CUA rectangle selections
(cua-mode t)

Затем вы можете выбрать прямоугольники, нажав C-RET и перемещая курсор. Чтобы вывести эту область, просто используйте обычную команду upcase-region, привязанную к M-U по умолчанию.

Ответ 2

Здесь реализована реализация upcase-rectangle, которая изменяет регистр на все в верхнем регистре. Просто замените upcase на downcase или capitalize или на любое изменение настраиваемого случая, которое вы хотите:

(defun upcase-rectangle (b e)
  "change chars in rectangle to uppercase"
  (interactive "r")
  (apply-on-rectangle 'upcase-rectangle-line b e))

(defun upcase-rectangle-line (startcol endcol)
  (when (= (move-to-column startcol) startcol)
    (upcase-region (point)
                   (progn (move-to-column endcol 'coerce)
                          (point)))))