Активировать команду в регионе с привязками Cua, установленными в Ctrl + C, для копирования в Emacs - PullRequest
1 голос
/ 08 декабря 2011

Мне было интересно, как реализовать команду для региона, если он выделен, если он начинается с Ctrl + C , когда привязки Cua включены.

Например, я хочу выделить как четыре строки текста в режиме LaTeX и запустить команду Ctrl + C Ctrl + f Ctrl + b , который изменяет текст на жирный или курсив. С привязками cua он сразу копирует регион, есть ли способ выбрать регион после того, как была установлена ​​метка, и, скажем, запустить команду в этом регионе, чтобы работать правильно в этом случае. Если вы просто запускаете команду сразу после установки отметки, она ставит команду на место, а не в регионе.

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

Примечание: я понял, что с приведенным ниже набором он работает правильно, потому что он не деактивирует область с копией, а фактически продолжает команды и не останавливается на Ctrl + C как с выключенным. Можно ли сделать что-то похожее без настройки сохранить регион после копирования?

(setq cua-keep-region-after-copy t) 

Ответы [ 2 ]

1 голос
/ 08 декабря 2011

Вы можете использовать cua-exchange-point-and-mark с таким префиксным аргументом, как этот:

[курсор] это простой тест в режиме латекса

C - пробел (установить отметку)

C - e (идет до конца строки)

это простой тест в латексном режиме [курсор]

C - c (скопировать текст)

C - u C - x C - x (точка обменана отметке и активирует отметку)

C - c C - f C - б

0 голосов
/ 11 декабря 2011

Это связано со скоростью, с которой вы нажимаете другую клавишу после нажатия кнопки cua.Если выделено любое, вы нажимаете связывание клавиш с ключом cua действительно быстро, это активирует команду в регионе.Я думаю, что значение по умолчанию составляет 0,2 секунды или что-то относительно быстрое.Переменная, которая изменяет это, если вы хотите установить его длиннее или медленнее:

cua-prefix-override-inhibit-delay:

Если не ноль, время в секундах для задержки перед переопределением префиксного ключа.Если в течение этого времени есть дополнительный ввод, префиксная клавиша используется как обычная префиксная клавиша.Поэтому быстрый набор последовательности клавиш будет препятствовать переопределению префиксного ключа.В качестве особого случая, если префиксные клавиши повторяются в течение этого времени, первый префиксный ключ отбрасывается, поэтому двойной ввод префиксного ключа в быстрой последовательности также запрещает переопределение префиксного ключа.Если значение равно нулю, используйте сдвинутый префиксный ключ, чтобы запретить переопределение.

...