Вот что говорит об этом документация Vim:
Виртуальное редактирование означает, что курсор можно расположить там, где нет действительного символа. Это может быть на полпути во вкладку или за конец строки. Полезно для выбора прямоугольника в визуальном режиме и редактирования таблицы.
Я бы предпочел, чтобы это было реализовано как второстепенный режим или встроенная настройка.
C-f
. Но когда вы дергаете прямоугольник после этого, прямоугольник появляется на отметке, а не на точке. Если бы оно появилось в тот момент, это решило бы эту проблему.Ответы:
extend-rectangle-to-end
Функция вrectangle-utils
пакете, что вы хотите. Это наmelpa
.Он вставляет пробелы, чтобы текущий прямоугольник расширялся, чтобы охватить самую длинную линию в области.
Чтобы получить такое поведение, у меня есть это в моем init.el.
C-x r e
не связан ни с чем в ванильном Emacsисточник
M-x extend-rectangle-to-end
а затемC-x r M-w
илиC-x r k
.Другой ответ: используйте
M-x picture-mode
. Вы можете убивать или копировать прямоугольники через середину символов табуляции и т. Д., Отправлять их в регистры и т. Д.источник
extend-rectangle-to-end
поскольку выделение прямоугольника всегда будет 30x2.picture-mode
стар и малоизвестен. Среди других малоизвестных функций: exiting (C-c C-c
) удаляет завершающие пробелы.rectangle-minor-mode
быть «завернутым» вpicture-mode
? (совет, так как я не вижу никаких зацепок в источникеrectangle-minor-mode
).(defun rectangle-mark-mode-wrapped-in-picture-mode (orig-fun &rest args) (if rectangle-mark-mode (picture-mode) (and (eq major-mode 'picture-mode) (picture-mode-exit t))))
(advice-add 'rectangle-mark-mode :around #'rectangle-mark-mode-wrapped-in-picture-mode)