Emacs повторно выбирает область, так как Vim shortcut 'gv' делает
В vim визуальный блок можно вызвать командой "gv", чтобы можно было легко применить несколько команд. (например, комментарий, затем отступ, затем do_something_fun).
В Emacs, как это можно достичь?
[C-xC-x] работает только тогда, когда текущая позиция курсора остается там, где закончился предыдущий блок.
Если предыдущий блок был изменен, ближайший должен пройти "точка-к-регистру" и "перейти к регистрации".
Просто мне любопытно, есть ли встроенная команда Emacs, сделав это одним выстрелом.
Ответы
Ответ 1
Если режим Transient Mark выключен, регион всегда активен. Если он включен (это похоже на вашу ситуацию), вы можете установить mark-even-if-inactive
на не-nil, чтобы разрешить командам региона работать, пока область не подсвечена.
Однако обратите внимание, что вы также можете вернуться назад к предыдущим позициям метки, используя C-u C-SPC
- это вызовет кольцо метки. Когда вы вернетесь туда, где хотите, C-x C-x переосмыслит регион, который вы хотите. (Это может немного поиграть с этой функцией, чтобы понять, но почему я не могу сейчас отключиться от Emacs.)
Ответ 2
Если я правильно понимаю, о чем вы просите, тогда вам не нужно ничего делать. Когда вы выбираете регион в emacs, он остается выбранным до тех пор, пока вы не выберите новый. Таким образом, вы можете выбрать регион, а затем выполнить столько действий, сколько захотите.
Ответ 3
Похоже, вы ищете вторичный выбор, который остается включенным, даже если регион может измениться. (Он остается на месте, пока вы не переместите его.)
См:
Ответ 4
Кроме того, узкая область (CTRL-x n n) применяет каждую команду с этого момента только к этому региону - вы не можете повредить остальную часть буфера, она даже не отображается. После завершения редактирования увеличьте (CTRL-x n w), чтобы вернуть весь буфер.
CMM
Ответ 5
Поскольку ответы здесь и на другие подобные вопросы SO не помогли мне (CUA-mode, Emacs 24, не только отступы-жестко), я продолжал поиск и, наконец, нашел reselect-last-region
, определенный в этом сбор пользовательской функции (стартовая строка 670). Это работало как прелесть для меня - и, надеюсь, делает это для других, все еще прибывающих сюда.