Управління зображенням

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

111  Прокрутка

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

Прокрутка означає пересування тексту вгору або вниз у вікні так, що стають видимими різні його частини Швидко вперед означає, що текст рухається вгору, а новий текст зявляється знизу Прокрутка назад рухає текст вниз, а новий текст зявляється зверху

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

Cl Очистити екран і відновити зображення, зрушуючи по вертикалі вибране вікно до центральної точки в межах вікна (recenter)

C-v

hNEXTi           Прокрутити вперед (на одне вікно або на певне число рядків) (scrollup)

M-v

hPRIORi         Прокрутити назад (scroll-down)

арг Cl Прокрутити таким чином, що точка виявляється на рядку арг (recenter)

CMl Прокрутити евристично, щоб вивести на екран корисну інформацію

(reposition-window)

Основною командою прокрутки є Cl (recenter) без аргументу Вона повністю очищає екран і відновлює зображення у всіх вікнах Крім того, вона прокручує вибране вікно таким чином, що точка розташовується посередині від початку вікна

Команди прокрутки Cv і Mv дозволяють вам рухати весь текст у вікні вгору або вниз на кілька рядків Cv (scroll-up) з аргументом показує вам задану кількість рядків, що знаходяться за нижньою межею вікна, зрушуючи текст і точку вгору разом, як Cl Cv з негативним аргументом показує вам більше рядків, що знаходяться за верхньою межею вікна Mv (scroll-down) подібна Cv, але рухає у зворотному напрямку Функціональні клавіші hNEXTі hPRIORеквівалентні C-v і M-v

Імена команд прокрутки засновані на напрямку, в якому рухається текст у вікні Таким чином, команда прокрутки вперед називається scroll-up, тому що вона переміщує текст вгору по екрану

Щоб прочитати буфер з цілого вікна, використовуйте Cv без аргументу Ця команда бере останні два рядки, що знаходяться внизу вікна, і ставить їх в початок, і за ними далі йде майже все вікно рядків, невидимих раніше Якщо точка знаходилася в тексті, який пішов за верхній край вікна, то вона пересувається в нову вершину вікна Mv без аргументу рухає текст у зворотному напрямку з аналогічним перекриванням Кількість перекриваються рядків при Cv або Mv управляється змінної next-screen-context-line, за замовчуванням воно дорівнює двом

Деяким користувачам подобається, коли команди прокрутки всього вікна зберігають точку на одному рядку екрана Щоб включити таку поведінку, встановіть змінну

scroll-preserve-screen-position не рівної nil Такий режим зручний для перегляду файлів шляхом прокрутки по цілому екрану якщо ви повернетеся на екран, з якого почали, точка повернеться на початкову рядок Однак, цей режим незручний, коли ви переміщується на наступний екран, щоб пересунути туди точку

Інший спосіб виконати прокрутку – використовувати команду Cl з числовим аргументом Cl із заданим аргументом не очищати екран, вона тільки прокручує вибране вікно З позитивним аргументом n вона переміщує текст так, щоб встановити точку на n рядків вниз від вершини Аргумент, рівний нулю, встановлює точку на самий верхній рядок Точка не рухається по відношенню до тексту швидше, текст і крапка рухаються на екрані жорстко повязані разом Cl з негативним аргументом встановлює точку на задане число рядків вище від кінця вікна Наприклад, Cu 1 Cl встановлює точку на нижньому рядку, а Cu 5 Cl встановлює її на пять рядків вище кінця вікна Просто Cu як аргумент на Cu Cl прокручує точку до центру екрану

Команда CMl (reposition-window) прокручує поточне вікно евристично, так, щоб вивести на екран корисну інформацію Наприклад, у файлі з програмою на Ліспі ця команда намагається розмістити на екрані все поточне визначення функції, якщо це можливо

Прокрутка відбувається автоматично, якщо під час перегляду тексту точка пішла з видимої його частини Зазвичай автоматична прокрутка центрує точку у вікні по вертикалі Однак, якщо ви встановите змінну scroll-conservatively рівний маленькому числу n, Тоді якщо ви зрушите точку за екран лише трохи – менше, ніж на n рядків, – Emacs прокрутить текст рівно на стільки, щоб повернути точку на екран За замовчуванням значення scroll-conservatively дорівнює нулю

Мінлива scroll-margin визначає, наскільки близько може підійти точка до вершини або до низу вікна Її значення – це число екранних рядків якщо точка підходить на задане число рядків до вершини або до низу вікна, Emacs заново центрує це вікно За замовчуванням scroll-margin дорівнює 0

112  Горизонтальна прокрутка

Горизонтальна прокрутка – це зсув всіх рядків у вікні в сторону, так що деякий текст близько лівого краю стає не видний зовсім

C-x < Прокручує текст поточного вікна вліво (scroll-left).

C-x> Прокручує вправо (scroll-right)

Коли вікно прокручується по горизонталі, рядки тексту стають усіченими, а не продовженими (Див Розділ 48 [Рядки продовження], с 40) знак $ зявляється в першому стовпці, якщо є текст, усічений зліва, і в останньому стовпці, якщо існує текст, усічений справа

Команда C-x < (Scroll-left) з аргументом n прокручує вибране вікно вліво на n стовпців Вона переміщує частина почала кожного рядка за лівий край вікна Без аргументу, вона прокручує майже на повну ширину вікна (без двох стовпців, якщо бути точним)

C-x> (Scroll-right) прокручує аналогічно, але тільки вправо Вікно не може бути прокручено далі вправо, якщо воно відображено нормально (кожний рядок починається з лівого краю вікна) Спроба зробити це не буде мати результату Це означає, що ви не зобовязані точно обчислювати аргумент для Cx> будь достатню велику кількість відновить нормальне зображення

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

далеко від лівого або правого краю Команда для включення і виключення цього режиму

— M-x hscroll-mode

113  Режим Follow

Режим Follow – Це другорядний режим, який робить так, що два вікна, що показують один і той же буфер, прокручуються як одне велике віртуальне вікно. Щоб використовувати режим Follow, перейдіть у фрейм з одним вікном, розбийте його на два примикають вікна за допомогою Cx 3 і потім надрукуйте Mx follow-mode Тепер ви можете редагувати буфер в будь-якому з двох вікон або прокручувати будь-яке з них другий вікно буде слідувати змінам

Щоб вимкнути режим Follow, надрукуйте Mx follow-mode вдруге

114  Вибірковий показ

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

Щоб заховати рядки, наберіть Cx $ (set-selective-display) з числовим аргументом n Після цього рядки, що мають принаймні n стовпців відступу, пропадуть з екрану Показником їх існування є тільки три точки (…’), що зявляються в кінці кожної видимої рядки, за якою слід одна або більше невидимих

Команди Cn і Cp переміщаються крізь заховані рядки, як якщо б їх не було

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

Щоб зробити все видимим знову, наберіть Cx $ без аргументу

Якщо ви встановите змінну selective-display-ellipses рівний nil, то три крапки не будуть зявлятися в кінці рядка, яка передує захованим рядках Тоді не буде ніякого видимого вказівки на наявність прихованих рядків Ця змінна при встановленні автоматично стає локальною

115  Додаткові можливості рядки режиму

Якщо режим Line Number, в рядку режиму зявляється номер поточного рядка, де знаходиться точка Використовуйте для перемикання цього режиму команду Mx line-number-mode зазвичай він включений Номер рядка зявляється перед поз, позицією у відсотках від обсягу буфера, з буквою L для вказівки на те, що це таке Див Розділ 311 [Другорядні режими], с 341, для подальшої інформації про другорядні режимах і про те, як застосовувати цю команду

Якщо буфер дуже великий (більше, ніж значення змінної line-number-displaylimit), то номер рядка не виводиться Emacs не підраховували номери рядків, якщо буфер великий, тому що це було б занадто повільно Якщо ви звузили буфер (див Розділ 308 [Звуження], с 335), що відображається номер рядка звітує відносно доступною частини буфера

Ви також можете показати номер поточного шпальти, включивши режим Column Number Він відображає номер поточного шпальти після букви C. Для перемикання цього режиму надрукуйте Mx column-number-mode

Emacs може показувати час і завантаження системи у всіх рядках режиму Щоб задіяти цю можливість, надрукуйте Mx display-time Ці відомості, що додаються до рядка режиму, зазвичай зявляються після імені буфера перед іменами режимів Це виглядає так:

чч: ммpm ззз

Тут чч і мм позначають години та хвилини, за якими завжди слідують am або pm. ззз

– Це середня кількість процесів, запущених у всій системі (Деякі поля можуть бути пропущені, якщо ваша операційна система не підтримує їх) Якщо ви віддаєте перевагу бачити час в двадцятичотирьохгодинному форматі, встановіть змінну display-time-

24hr-format в значення t

Якщо для вас є пошта, яку ви ще не читали, після рівня завантаження зявляється слово Mail.

116  Як відображається текст

Друковані знаки ASCII (з вісімковий кодами від 040 до 0176) відображаються в буферах Emacs як їхні власні графічні уявлення Те ж і для багатобайтові друкованих знаків, що не входять в ASCII (з вісімковий кодами вище 0400)

Деякі управляючі знаки ASCII відображаються особливим чином Знак нового рядка (вісімковий код 012) відображається як початок нового рядка Знак табуляції (вісімковий код 011) показується просуванням до наступної позиції табуляції (зазвичай через кожні 8 шпальт)

Інші керуючі знаки ASCII зазвичай відображається як шапочка (^), за якою слідує некерованих версія знака таким чином, control-A показується як ^ A.

Ні-ASCII-знаки від 0200 до 0377 відображаються за допомогою вісімковий керуючих послідовностей наприклад, знак з кодом 0243 (вісімковий) виводиться як \ 243. Однак, якщо ви включите відображення європейських алфавітів, то більшість цих знаків стануть друкованими НЕ-ASCII-знаками і будуть відображатися з використанням їх графічних уявлень (у припущенні, що ваш термінал підтримує це) Див Розділ 1812 [однобайтное європейські знаки], с 172

117  Змінні управління зображенням

Цей розділ містить інформацію тільки для настройки Початківцям користувачам варто його пропустити

Мінлива mode-line-inverse-video керує тим, чи відбивається рядок режиму в інверсному вигляді (у припущенні, що термінал підтримує це) nil значить, що це не робиться Див Розділ 13 [Рядок режиму], с 25 Якщо ви задасте колір шрифту для накреслення modeline, і mode-line-inverse-video не дорівнює nil, то за замовчуванням кольором фону для цього накреслення буде колір простого тексту Див Розділ 1713 [Начертания], с 155

Якщо змінна inverse-video не дорівнює nil, Emacs намагається інвертувати всі будів-

ки дисплея з їх звичайного стану

Якщо змінна visible-bell НЕ nil, Emacs намагається мерехтіти екраном, коли зазвичай він подає звуковий сигнал Ця змінна не діє, якщо ваш термінал не вміє мерехтіти екраном

Коли ви знову входите в Emacs після переривання, Emacs зазвичай очищає екран і перемальовує все зображення На деяких терміналах, які мають більше однієї сторінки памяті, можна зробити такий запис termcap, щоб рядки ti і te (виводяться терміналу, коли в Emacs входять і виходять, відповідно) перемикали сторінки памяті так, щоб використовувати одну для Emacs, а другий для іншого висновку Потім, ви

можете за бажанням встановити змінну no-redraw-on-reenter не рівної nil це велить Emacs припускати, що сторінка екрану після повторного входу все ще містить те, що Emacs туди записав в останній разів

Мінлива echo-keystrokes управляє відображенням многознакових ключів Значення цієї змінної – це виражена в секундах довжина паузи, необхідної для виклику відлуння якщо воно дорівнює нулю, це означає, що луна не буде Див Розділ 12 [Ехо-область], с 24

Якщо змінна ctl-arrow дорівнює nil, то керуючі знак будуть показані в буфері за допомогою вісімковий керуючих послідовностей, всі, крім обмежувача нового рядка і табуляції Зміна значення змінної ctl-arrow робить її локальної для поточного буфера, до цього ж моменту діє значення за замовчуванням Значення за замовчуванням дорівнює t Див розділ Display Tables в The Emacs Lisp Reference Manual

Зазвичай знак табуляції показується в буфері як пробіл, який простягається до наступної позиції табуляції дисплея зупинки по табуляції відбуваються через інтервал, рівний восьми пробілам Число прогалин в табуляції управляється змінної tab-width, яка стає локальної при її зміні, так само, як і ctl-arrow Відзначимо, що спосіб відображення символу табуляції в буфері ніяк не впливає на визначенняhTABi, Як команди Мінлива tab-width повинна мати значення між 1 і

1000, включно

Якщо змінна truncate-lines не дорівнює nil, то кожен рядок тексту займає рівно один рядок на екрані якщо рядок тексту занадто довга, показується тільки вміщується частину Якщо truncate-lines дорівнює nil, то довгі рядки тексту відображаються як кілька рядків на екрані, стільки, скільки потрібно, щоб показати весь текст рядка Див Розділ 48 [Рядки продовження], с 40 Зміна значення truncate-lines робить її локальної для поточного буфера до цього моменту діє значення за замовчуванням Це значення за замовчуванням спочатку одно nil

Якщо змінна truncate-partial-width-windows не дорівнює nil, вона примушує усічення довгих рядків замість їх продовження в будь-якому вікні вже повної ширини фрейму, незважаючи на значення змінної truncate-lines Для отримання інформації про примикають вікнах, дивіться Розділ 162 [Поділ вікон], с 142 Дивіться також розділ Display в The Emacs Lisp Reference Manual

Мінлива baud-rate містить швидкість виведення терміналу, наскільки її знає Emacs Установка цієї змінної не змінює дійсну швидкість передачі даних, але її значення використовується для обчислень, наприклад, наповнення Вона також впливає на прийняття рішення про те, чи потрібно прокручувати частина екрану або перемальовувати її – навіть при використанні віконної системи (Ми зробили так, незважаючи на те, що віконна система не має дійсної швидкості виведення, щоб дати вам можливість налаштувати ці параметри)

Ви можете налаштувати спосіб виведення кожного конкретного знака за допомогою таблиці відображення Див розділ Display Tables в The Emacs Lisp Reference Manual

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

*

*