Фрейми і X Windows – ЧАСТИНА 1

При використанні X Window System ви можете створювати в одному сеансі Emacs кілька вікон рівня віконної системи Кожне належить Emacs X-вікно показує один фрейм, який може містити одне або кілька вікон Emacs Спочатку фрейм містить одне вікно Emacs загального призначення, яке ви можете поділити вертикально або горизонтально на менші Зазвичай фрейм має власну луна-область і мінібуфер, але ви можете зробити фрейми без них – вони будуть використовувати луна-область і мінібуфер іншого фрейму

Редагування в одному фреймі зачіпає і інші фрейми Наприклад, якщо ви помістіть текст в список знищень в одному фреймі, ви можете відновити його в іншому Якщо ви виходите з Emacs через Cx Cc в одному фреймі, це видалить всі фрейми Щоб видалити тільки один фрейм, використовуйте Cx 5 0

Щоб уникнути плутанини, ми резервуємо слово вікно для тих вікон, які реалі-

зует сам Emacs, і ніколи не використовуємо його для позначення фрейма

Emacs, скомпільований для MS-DOS, емулює деякі аспекти віконної системи, так що ви зможете використовувати багато можливостей з описаних в цьому розділі Див Розділ C1 [MS-DOS Введення], с 403, для подальшої інформації

171  Команди миші для редагування

Команди миші для виділення і копіювання області в основному сумісні з командами програми xterm Ви можете користуватися одними і тими ж командами миші для обміну текстом між Emacs іншими X-клієнтами

Якщо ви виділите область за допомогою будь-який з цих команд і відразу ж після цього натиснете функціональну клавішу hDELETEi, Вона видалить виділену область Функціональна клавіша hBACKSPACEi  або ASCII-знак hDELi  не роблять цього і якщо ви натиснете між командою миші і hDELETEi  якусь іншу клавішу, hDELETEi  не подіє таким чином

Mouse-1 Переміщає точку туди, де ви клацнули (mouse-set-point) Зазвичай це ліва кнопка

Drag-Mouse-1

Встановлює область навколо тексту, за яким ви провели, і копіює цей текст до списку знищень (mouse-set-region) За допомогою цієї команди ви можете вказати обидва кінці області

Якщо при проведенні мишею ви перемістіть її за верхню чи нижню межу вікна, це вікно безперервно прокручується, поки ви не повернете в нього миша Таким способом ви можете виділяти області, що не вміщаються на екрані Число прокручуваних за один крок рядків залежить від того, наскільки далеко за край вікна пішла миша мінімальний розмір кроку визначає змінна mouse-scroll-min-lines

Mouse-2 Відновлює останній знищений текст в тому місці, де ви клацнули

(Mouse-yank-at-click) Зазвичай це середня кнопка

Mouse-3 Ця команда, mouse-save-then-kill, має кілька призначень в залежності-

сти від того, де ви клацнули, і від стану області

Самий основний випадок – це коли ви клацаєте Mouse-1 в одному місці, а потім Mouse-3 в іншому Це виділяє текст між двома цими позиціями в якості області Це також копіює нову область в список знищень, щоб ви могли скопіювати його в інше місце

Якщо ви клацніть в тексті Mouse-1, перейдіть вікно за допомогою смужки прокрутки і потім клацніть Mouse-3, Emacs запамятає, де була точка перед прокруткою (де ви помістили її за допомогою Mouse-1), і використовує цю позицію як інший кінець області Це зроблено, щоб ви могли виділяти області, які не вміщаються повністю на екрані

У більш загальному вигляді, якщо у вас немає підсвіченої області, Mouse-3 виділяє в якості області текст між точкою і місцем клацання Вона робить це, встановлюючи мітку там, де була точка, і переміщаючи точку до тієї позиції, де ви клацнули

Якщо у вас є підсвічена область, або якщо область була встановлена ​​безпосередньо перед цим за допомогою проведення кнопкою +1, Mouse-3 підлаштовує найближчий кінець області, переміщаючи його до місця клацання Також, текст підлаштований області заміщає в списку знищень текст старої області

Якщо ви з самого початку задали область, використовуючи подвійний або потрійний клацання Mouse-1, щоб визначити область як що складається з цілих слів або рядків, то підстроювання області за допомогою Mouse-3 також проходить по цілим словами або рядках

Якщо ви застосуєте Mouse-3 два раз поспіль на одному місці, ви знищите вже виділену область

Double-Mouse-1

Цей ключ встановлює область навколо слова, на якому ви клацнули Якщо ви клацнули на знаку з синтаксичною категорією symbol (наприклад, на подчерков в режимі C), він встановлює область навколо символу, якому належить цей знак

Якщо ви клацнули на знаку з синтаксичною категорією відкриває або закриває круглої дужки, область встановлюється навколо групи (sвираженія), яка завершується або починається на цьому знаку Якщо ви клацнули на знаку з синтаксичною категорією роздільник рядків (такому як лапка або подвійні лапки в Сі), область буде встановлена ​​навколо цієї строкової константи (з використанням евристики, щоб зясувати, чи є цей знак початківцям або завершальним)

Double-Drag-Mouse-1

Цей ключ виділяє область, що складається зі слів, за якими ви провели

Triple-Mouse-1

Цей ключ встановлює область навколо рядка, на якій ви клацнули

Triple-Drag-Mouse-1

Цей ключ виділяє область, що складається з рядків, по яких ви провели

Найпростіший спосіб знищити текст за допомогою миші – натиснути Mouse-1 в одному кінці, а потім двічі натиснути Mouse-3 на іншому Див Розділ 91 [Знищення], с 69 Щоб скопіювати текст в список знищень, але залишити його з буфера, натисніть Mouse-3 тільки один раз або просто проведіть по цьому тексту з притиснутою Mouse-1 Потім ви можете скопіювати цей текст в інше місце відновленням

Щоб відновити знищений або скопійований текст в інше місце, переведіть туди миша і натисніть Mouse-2 Див Розділ 92 [Відновлення], с 71 Однак, якщо mouse-yank-at-point не дорівнює nil, Mouse-2 відновлює в точці Тоді не має значення, де ви клацаєте, або навіть в якому з вікон фрейма ви клацаєте Значення за замовчуванням дорівнює nil Ця змінна впливає також на відновлення вторинного виділення

Щоб скопіювати текст в інше X-вікно, знищіть його або збережіть в списку знищень Під X це крім того встановить первинне виділення Потім використовуй-

ті в програмі, що працює в іншому вікні, команду вставити, щоб вставити текст виділення

Щоб скопіювати текст з іншого X-вікна, використовуйте в програмі, що працює в іншому вікні, команди вирізати або копіювати, щоб виділити потрібний вам текст Потім відновіть його в Emacs за допомогою C-y або Mouse-2

Ці команди виразно і вставки працюють також і в MS-Windows

Коли Emacs поміщає текст в список знищень або перекладає текст на вершину списку знищень, він встановлює первинне виділення X-сервера Саме таким чином інші X-клієнти можуть отримати доступ до цього тексту Emacs також зберігає текст в буфері вирізок, але тільки якщо цей текст досить короткий (xcut-buffer-max задає максимальне число знаків) приміщення в буфер вирізок довгих рядків може бути повільним

Команди відновлення першого входження списку знищень насправді спочатку перевіряють, чи немає первинного виділення з інших програм після цього вони перевіряють, чи немає тексту в буфері вирізок Якщо ні той, ні інший джерело не надають тексту для відновлення, використовується вміст списку знищень

172  Вторинне виділення

Вторинне виділення – це інший спосіб виділення тексту з використанням X Windows Воно не використовує точку або мітку, тому ви можете використовувати його для знищення тексту без установки точки або мітки

M-Drag-Mouse-1

Встановлює вторинне виділення з одним кінцем в тому місці, де ви натиснули кнопку, і іншим – в тому, де ви її відпустили (mouse-set-secondary) Коли ви проводите мишею, зявляється і змінюється підсвічування

Якщо при проведенні мишею ви зрушите її за верхню чи нижню межу вікна, це вікно безперервно прокручується, поки ви не повернете в нього миша Таким способом ви можете виділяти області, що не вміщаються на екрані

M-Mouse-1

M-Mouse-3

M-Mouse-2

Встановлює одну з граничних точок вторинного виділення (mouse-startsecondary)

Створює вторинне виділення, використовуючи місце, вказане за допомогою M-Mouse-1 як його другий кінець (mouse-secondary-save-then-kill) Друге клацання на цьому ж місці знищує щойно зроблене вторинне виділення

Вставляє в місці клацання вторинне виділення (mouse-yank-secondary) Це поміщає крапку в кінець відновленого тексту

Подвійні і потрійні клацання M-Mouse-1 діють на слова і рядки, в чому як для

Mouse-1

Якщо mouse-yank-at-point не дорівнює nil, M-Mouse-2 відновлює в точці Тоді не має значення, де ви клацнули головне, в якому вікні Див Розділ 171 [Команди миші], с 147

173  Проходження по посиланнях за допомогою миші

Деякі буфери Emacs показують різного роду переліки Це переліки файлів,

буферів, можливих завершень, збігів із зразком і так далі

Оскільки відновлення в цих буферах безглуздо, в більшості з них Mouse-2 визначена особливо, як команда для використання або перегляду пункту, на якому ви клацнули

Наприклад, якщо ви клацніть Mouse-2 на імені файлу в буфері Dired, ви зверни-

тесь до цього файлу Якщо ви клацніть Mouse-2 на повідомленні про помилку в буфері

‘* Compilation *, ви перейдете до вихідного коду для цього повідомлення Якщо ви клацніть

Mouse-2 на завершенні в буфері * Completions *, ви виберете це завершення

Зазвичай ви можете судити про те, чи має Mouse-2 особливе значення, по тому, що чутливий текст підсвічується, коли ви проводите над ним миша

Джерело: Річард Столмен, Керівництво по GNU Emacs

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*