Emacs повторно выбирает регион, как это делает ярлык Vim 'gv' - PullRequest
16 голосов
/ 25 июня 2009

В vim визуальный блок может быть вызван командой 'gv', что позволяет легко применять несколько команд. (например, комментарий, затем отступ, затем do_something_fun).

Как в Emacs это может быть достигнуто? [C-xC-x] работает только тогда, когда текущая позиция курсора остается там, где заканчивался предыдущий блок. Если предыдущий блок был изменен, то ближайший должен пройти через «точка-регистр» и «прыжок-регистр».

Просто мне любопытно, есть ли встроенная команда Emacs, делающая это за один выстрел.

Ответы [ 6 ]

11 голосов
/ 25 июня 2009

Если режим Transient Mark отключен, регион всегда активен. Если он включен (как это выглядит в вашей ситуации), вы можете установить mark-even-if-inactive на не ноль, чтобы позволить командам региона работать, пока регион не выделен.

Тем не менее, обратите внимание, что вы также можете циклически возвращаться к предыдущим позициям меток, используя C-u C-SPC - это вызовет кольцо меток. Как только вы вернетесь туда, где вы хотите быть, C-x C-x снова выделит регион, который вы хотите. (Может потребоваться немного поиграть с этой функцией, чтобы почувствовать ее, но именно поэтому я не могу сейчас отказаться от Emacs.)

10 голосов
/ 25 июня 2009

Если я правильно понимаю, что вы просите, вам не нужно ничего делать. Когда вы выбираете регион в emacs, он остается выбранным, пока вы не выберете новый. Таким образом, вы можете выбрать регион, а затем выполнить столько действий, сколько хотите.

2 голосов
/ 05 сентября 2011

Похоже, вы ищете вторичный выбор, который остается на месте, даже если регион может измениться. (Он остается на месте, пока вы не переместите его.)

См:

1 голос
/ 26 апреля 2010

Также узкий к области (CTRL-x n n) применяет каждую команду с тех пор только к этому региону - вы не можете повредить остальную часть буфера, это даже не показывает После завершения редактирования расширите (CTRL-x n w), чтобы вернуть весь буфер. CMM

0 голосов
/ 26 августа 2018

Если вы используете evil-mode, просто нажмите gv, как в vim.

0 голосов
/ 11 сентября 2013

Поскольку ответы здесь и на другие подобные вопросы SO мне не помогли (режим CUA, Emacs 24, а не только отступ), я продолжил поиск и, наконец, нашел reselect-last-region, определенный в этом коллекция пользовательских функций (начальная строка 670) . Это сработало для меня как обаяние - и, надеюсь, сработало для других, которые все еще приезжают сюда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...