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

174  Клацання миші для меню

Клацання миші, модифіковані за допомогою клавіш hCTRLі hSHIFTi, Виводять меню

C-Mouse-1

C-Mouse-2

C-Mouse-3

S-mouse-1

Це меню для вибору буфера

Це меню для завдання накреслень та інших властивостей тексту для редагування форматованого тексту Див Розділ 2111 [Форматований текст], с 198

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

Це меню для завдання основного шрифту фрейма

175  Команди миші для рядка режиму

Ви можете використовувати мишу на рядку режиму для вибору вікон і маніпуляцій з ними

Mouse-1 Mouse-1 на рядку режиму вибирає вікно зверху Проводячи мишею з натиснутою на рядку режиму Mouse-1, ви можете переміщати цей рядок режиму, змінюючи таким чином висоту вікон зверху і знизу

Mouse-2 Mouse-2 на рядку режиму розкриває вікно на весь фрейм

Mouse-3 Mouse-3 на рядку режиму видаляє вікно зверху

C-Mouse-2

C-Mouse-2 на рядку режиму розбиває вікно зверху по вертикалі в тому місці,

де ви клацнули

C-Mouse-2 на смужці прокрутки розбиває відповідне вікно по горизонталі Див

Розділ 162 [Поділ вікон], с 142

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

176  Створення фреймів

Префіксний ключ Cx 5 аналогічний Cx 4, і на них визначені паралельні підкоманду Різниця між ними в тому, що команди з Cx 5 створюють новий фрейм, а не просто нове вікно в обраному фреймі (див Розділ 164 [Спливаючі вікна], с 143) Якщо запитаний матеріал вже показується в існуючому видимому або мінімізованому фреймі, ці команди використовують існуючий фрейм після його піднімання або демінімізаціі по необхідності

Команди на Cx 5 розрізняються по тому, як вони знаходять або створюють буфер для вибо-

ра:

Cx 5 лютого Створює новий фрейм (make-frame-command)

C-x 5 b імябуфера hRETi

Вибирає буфер імябуфера в іншому фреймі Це запускає switch-tobuffer-other-frame

C-x 5 f імяфайлу hRETi

Звертається до файлу імяфайлу і вибирає його буфер в іншому фреймі Це запускає find-file-other-frame Див Розділ 142 [Звернення], с 106

C-x 5 d каталог hRETi

Вибирає буфер Dired для каталогу каталог в іншому фреймі Це запускає

dired-other-frame Див Глава 28 [Dired], с 291

Cx 5 m Дозволяє почати складання поштового повідомлення в іншому фреймі (mailother-frame) Це варіант Cx m, що працює в іншому фреймі Див Глава 26 [Посилка пошти], с 267

C-x 5 Звертається до тегу з поточної таблиці тегів в іншому фреймі Це запускає find-tag-other-frame, варіант M-, Що працює з декількома фреймами Див Розділ 2213 [Теги], с 224

C-x 5 r імяфайлу hRETi

Звертається до файлу імяфайлу в режимі тільки для читання і вибирає його буфер в іншому фреймі Це запускає find-file-read-only-other-frame Див Розділ 142 [Звернення], с 106

Ви можете управляти видом новостворюваних фреймів, встановлюючи параметри фрейма в default-frame-alist Для завдання параметрів, що відносяться тільки до початкового фрейму, ви можете використовувати змінну initial-frame-alist Див розділ Initial Parameters в The Emacs Lisp Reference Manual, Для подальшої інформації

Найпростіший спосіб вказати основний шрифт для всіх фреймів Emacs – через X-ресурс (див Розділ A7 [Шрифт X], с 392), але ви також можете зробити це, змінивши defaultframe-alist так, щоб у ньому задавався параметр font, як показано тут:

(add-to-list ’default-frame-alist ’(font   &quot10x20&quot))

177  Створення і використання фрейму Speedbar

Фрейм Emacs може мати speedbar, Тобто вертикальне вікно, що служить як меню з можливістю прокрутки для файлів, до яких ви можете звернутися, і тегів всередині цих файлів Щоб створити speedbar, введіть Mx speedbar це створює вікно speedbar для обраного кадру Після цього ви можете клацнути в speedbar на імені файлу, щоб звернутися до нього у відповідному фреймі Emacs, або клацнути на імені тега, щоб перескочити до нього відповідному фреймі

Спочатку speedbar перераховує безпосередній зміст поточного каталогу по одному файлу на рядку У кожному рядку також є кнопка, [+] або <+>‘, на якій

ви можете клацнути Mouse-2, щоб відкрити вміст даного елемента Якщо на цьому рядку перерахований каталог, то при відкритті до показаному в speedbar додається зміст цього каталогу під його власної рядком Якщо на рядку перерахований звичайний файл, при його відкритті до вмісту speedbar додається список тегів з цього файлу Коли файл відкривається, [+] замінюється на [-]; ви можете клацнути на цій кнопці, щоб закрити цей файл (приховати його вміст)

Деякі основні режими, включаючи режим Rmail, Info і GUD, мають спеціалізовані способи помістити в speedbar інші корисні речі Наприклад, в режимі Rmail speedbar показує перелік Rmail-файлів і дозволяє вам перенести поточне повідомлення в іншій Rmail-файл, клацнувши на кнопці ‘.

Speedbar належить одному фрейму Emacs і завжди працює з цим фреймом Якщо ви використовуєте кілька фреймів, ви можете зробити speedbar для деяких або для всіх з них щоб зробити speedbar для будь-якого даного фрейма, наберіть у ньому Mx speedbar

178  Безліч дисплеїв

Один Emacs може спілкуватися більш ніж з одним дисплеєм X Windows Спочатку Emacs використовує тільки один дисплей – той, що вказаний у змінній середовища DISPLAY або за допомогою ключа -display (див Розділ A2 [Ключі запуску], с 386) Щоб підєднатися до іншого дисплею, скористайтеся командою make-frame-on-display:

M-x make-frame-on-display hRETдисплей hRETi

Створює новий фрейм на дисплеї дисплей

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

Коли ви відкриваєте фрейми на різних X-серверах, Emacs створює для кожного сервера окремий потік вводу Тому два користувача можуть одночасно друкувати на двох дисплеях, і Emacs не поєднує їх ввід Кожен сервер має також власний вибраний фрейм Команди, які ви вводите на конкретному X-сервері, відносяться до вибраного фрейму цього сервера

Незважаючи на це, люди, що використовують одне й те саме завдання Emacs з різних дисплеїв, все ж можуть втручатися в справи один одного, якщо будуть необережні Наприклад, якщо будь-який з них надрукує Cx Cc, це припинить завдання Emacs для всіх

179  Фрейми спеціальних буферів

Ви можете зробити так, щоб певні буфери, для яких Emacs зазвичай створює друге вікно, якщо у вас є тільки одне, зявлялися в особливих власних фреймах Щоб зробити це, встановіть змінну special-display-buffer-names рівний списку імен буферів будь буфер, чиє імя міститься в цьому списку, автоматично отримує спеціальний фрейм, коли яка-небудь команда Emacs хоче показати його в іншому вікні .

Наприклад, якщо ви встановите цю змінну таким чином:

(setq special-display-buffer-names

’(&quot*Completions*&quot &quot*grep*&quot &quot*tex-shell*&quot))

то списки завершень, висновок grep і буфер оболонки режиму TEX отримають свої власні фрейми Ці фрейми і вікна в них ніколи не розбиваються автоматично і не використовуються для інших буферів Вони продовжують показувати буфери, для яких

були створені, поки ви не зміните їх вручну Знищення спеціального буфера авто-

матически видаляє його фрейм

У більш загальному випадку ви можете встановити special-display-regexps рівний списку регулярних виразів тоді буфер отримує власний фрейм, якщо його імя збігається в будь-яким з них (Ще раз, це відноситься тільки до буферам, які зазвичай відображаються в окремому вікні)

Мінлива special-display-frame-alist задає параметри для цих фреймів У неї є значення за замовчуванням, тому вам необовязково встановлювати її

Ті, хто знає Лісп, можуть також зробити елемент special-display-buffer-names або special-display-regexps списком Тоді перший елемент – це імя буфера чи регулярний вираз, а інші вказують, як створювати фрейм Це може бути асоціативний список, що задає значення параметрів фрейму ці значення мають пріоритет перед значеннями параметрів, зазначених у special-display-frame-alist Або ж інші елементи можуть мати таку форму:

(Функція аргументи ..)

де функція – це символ Тоді фрейм конструюється шляхом виклику функції її пер-

вим аргументом є буфер, а іншими аргументами – аргументи

Аналогічними засобами ви можете вказати буфери, які повинні відображатися в обраному вікні Див Розділ 165 [Використання того ж вікна], с 143 Показ в тому ж вікні має пріоритетом перед показом в спеціальному фреймі отже, якщо ви додали імя буфера до special-display-buffer-names, але це не набуло ніякого ефекту, перевірте, чи не використовується для цього ж імені буфера засіб показу в тому ж вікні

1710  Установка параметрів фрейму

Цей розділ описує команди для зміни стилю відображення обраного кадру та його поведінки у віконній середовищі

M-x set-foreground-color hRETколір hRETi

Задає колір для тексту в обраному фреймі

M-x set-background-color hRETколір hRETi

Задає колір для фону в обраному фреймі Також змінює колір тексту в накресленні modeline, щоб воно залишалося інверсією накреслення за замовчуванням

M-x set-cursor-color hRETколір hRETi

Задає колір курсора в обраному фреймі

M-x set-mouse-color hRETколір hRETi

Задає колір покажчика миші, коли він знаходиться над обраним фреймом

M-x set-border-color hRETколір hRETi

Задає колір рамки обраного кадру

M-x list-colors-display

Виводить певні імена квітів і показує, як ці кольори виглядають

Це дещо повільна команда

M-x auto-raise-mode

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

Джерело: Річард Столмен, Керівництво по 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>

*

*