exchange-point-and-mark
Команда зобов'язана C-x C-x, але я не можу думати про будь - яких прецедентах , які роблять його вартим такі видатний халепу.
Як я можу скористатись exchange-point-and-mark
вдосконаленням своєї технології редагування?
exchange-point-and-mark
Команда зобов'язана C-x C-x, але я не можу думати про будь - яких прецедентах , які роблять його вартим такі видатний халепу.
Як я можу скористатись exchange-point-and-mark
вдосконаленням своєї технології редагування?
Відповіді:
Я можу придумати два випадки: реактивація регіону та коригування розміру регіону.
Я найчастіше використовую цю прив'язку для повторної активації області після виконання якоїсь команди, яка деактивує її, або виконуючи щось, що встановлює позначку і переміщує точку, не активуючи область.
Наприклад, зробіть Cs і пошукайте щось вперед. Натисніть RET, щоб вийти з пошуку, а потім Cx Cx, щоб позначити все, з чого ви розпочали пошук.
Ще один приклад, який я роблю дуже багато, коли хочу включити деякий зразок пробігу у відповідь StackExchange:
Інший випадок, коли ви маркуєте регіон і хочете розширити / зменшити його. У цьому випадку зручно мати можливість стрибнути на "інший кінець" регіону, перемістити його, а потім відскочити назад. Якщо регіон вже активний, натискання Cx Cx залишить його активним, що дозволяє переміщати будь-який кінець.
Запитайте Emacs: C-h r i exchange-point-and-mark RET
або, краще, C-h r i C-x C-x RET
. Це призведе до наведеної нижче інформації.
Ось що говорить посібник Emacs, " Налаштування вузла", відповідаючи на ваше запитання:
C-x C-x
корисно, коли вас влаштовує позиція точки, але ви хочете перемістити інший кінець регіону (там, де є позначка) . ВикористовуючиC-x C-x
другий раз, якщо необхідно, ставить позначку на новій позиції з точкою назад у вихідному положенні. Зазвичай, якщо позначка неактивна, ця команда спочатку знову активує позначку там, де вона була останньо встановлена, щоб переконатися, що область залишається виділеною. Однак якщо ви називаєте це аргументом префікса, він залишає марку неактивною, а область не освітленою; Ви можете використовувати це, щоб перейти до позначки подібним чиномC-u C-<SPC>
.
І саме про це йдеться у вузлі Disabled Transient Mark :
Вимкнення [
transient-mark-mode
] вимикачів Emacs в альтернативний режим роботи:
Встановлення позначки за допомогою команд типу
C-<SPC>
абоC-x C-x
, не виділяє область. Тому ви не можете зрозуміти, дивлячись, де розміщена марка; ви повинні пам'ятати.Звичайне рішення цієї проблеми - встановити позначку, а потім скористатися нею, перш ніж забути, де вона знаходиться. Ви також можете перевірити, де знаходиться знак, скориставшись
C-x C-x
обміном позицій точки та позначки - див. Установка позначки .Поки режим «Перехідна марка» вимкнено, його можна тимчасово активувати, використовуючи
C-<SPC> C-<SPC>
абоC-u C-x C-x
.
і:
C-u C-x C-x
Обміняйте точку та позначку, активуйте марку та ввімкніть режим тимчасового відмітки тимчасово, доки наступний знак не буде відключений. (ЦеC-x C-x
командаexchange-point-and-mark
, з аргументом префікса.)
Я використовую це, коли втратив виділення через деяку операцію, яка його видалила, і хочу відновити вибір. Одним із таких сценаріїв був би:
Це трапляється, коли я хочу створити спеціальну резервну копію вибраної області та експериментувати над копією, наприклад, наприклад, я хочу зробити деякий пошук і заміну, але я не можу придумати спосіб зробити це це таким чином, що не руйнує текст, який мав на увазі залишитися, тому я пізніше поверну його з копії.
Інші відповіді зосереджуються на корисності того, C-x C-x
коли transient-mark-mode
він активний. Але C-x C-x
передує transient-mark-mode
і є корисним незалежно від цього.
Основна роль - C-x C-x
це поміняти точки та позначити. Це корисно, коли ви редагуєте дві точки в одному буфері і чомусь не хочете розділяти поточне вікно. Зробіть деякі редагування, встановіть позначку, перейдіть до якоїсь іншої точки буфера, зробіть деяку редагування C-x C-x
, зробіть кілька редагувань на колишньому місці C-x C-x
, зробіть ще кілька редагувань, adusese. (Якщо ви не плануєте повертатися до другого пункту, C-u C-SPC
можливо, буде більш інтуїтивно зрозумілим. Знайдіть кільце з позначкою в посібнику Emacs.)
Якщо transient-mark-mode
вимкнено, C-x C-x
має ще одне важливе призначення: воно дозволяє дізнатися, де знаходиться регіон. C-x C-x
, швидкий погляд в точку, C-x C-x
знову.
(І якщо вам цікаво - так, деякі з нас все ж вважають за краще використовувати Emacs з transient-mark-mode
відключеним.)