Різноманітні команди – ЧАСТИНА 6

Щоб Emacs відновив стан попереднього сеансу, ви зобовязані запустити його з того ж каталогу, який ви використовували в минулому сеансі Це необхідно, тому що desktop-read переглядає в пошуках файлу, який вона повинна прочитати, саме поточний каталог Це означає, що ви можете зберігати окремі збережені сеанси в різних каталогах каталог, в якому ви запускаєте Emacs, буде вказувати, який з збережених сеансів ви хочете відновити

Мінлива desktop-files-not-to-save говорить, які файли виключаються при збереженні стану Її значення – це регулярний вираз, що збігається з іменами виключаються файлів За замовчуванням виключаються віддалені (отримані по FTP) файли тому що повторне звернення до них в майбутньому сеансі може бути повільним Якщо ви хочете включити ці файли в збережений стан, встановіть desktop-filesnot-to-save рівною ^ $. Див Розділ 1412 [Дистанційні файли], с 134

3012  Рівні рекурсивного редагування

Рекурсивне редагування – це ситуація, в якій ви використовуєте команди Emacs для виконання довільного редагування, перебуваючи в середині іншої команди Emacs Наприклад, при наборі команди Cr всередині query-replace відбувається вхід в рекурсивне редагування, де можна змінити поточний буфер Виходячи з цього рекурсивного редагування, ви повертаєтеся в query-replace

Вихід з рекурсивного редагування означає повернення до незакінченої команді, яка продовжує виконуватися Вихід проводиться за допомогою команди CMc (exitrecursive-edit)

Ви можете також перервати рекурсивне редагування Це схоже на вихід, але при цьому відбувається також і негайний вихід з незакінченою команди Переривання рекурсивного редагування виробляється по команді C-] (abort-recursive-edit) Див Розділ 321 [Вихід], с 371

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

Можливе перебування в рекурсивних редагування всередині рекурсивних редагувань Наприклад, після набору команди Cr в query-replace можна набрати команду, яка входить до відладчик Це починає рівень рекурсивного редагування для відладчика всередині рівня рекурсивного редагування для Cr Рядки режиму показують пару квадратних дужок для кожного працюючого в даний момент рівня рекурсивного редагування

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

Навпаки, команда Mx top-level перериває всі рівні рекурсивного редагування,

повертаючись безпосередньо на верхній командний рівень

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

В основному ми намагаємося мінімізувати використання рівнів рекурсивного редагування в GNU Emacs Це так, тому що вони зобовязують вас повертатися в певному порядку – від самого внутрішнього рівня до верхнього рівня Якщо можливо, ми представляємо різні види діяльності в різних буферах, щоб ви могли перемикатися між ними, як вам подобається Деякі команди перемикають в новий основний режим, який надає команду для перемикання тому Ці методи

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

3013  Емуляція

GNU Emacs може бути запрограмований для емуляції (більшою чи меншою мірою) більшості інших редакторів Стандартні засоби можуть емулювати наступне:

EDT (редактор DEC VMS)

Емуляція EDT включається за допомогою команди Mx edt-emulation-on Ко-

манда Mx edt-emulation-off відновлює звичайні для Emacs привязки

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

vi (редактор Берклі)

Viper – новітній емулятор vi Він реалізує кілька рівнів емуляції: рівень 1 найближче до vi, тоді як рівень 5 відходить від суворої емуляції, щоб скористатися можливостями Emacs Щоб викликати Viper, наберіть M-x viper-mode це проведе вас по решті шляху і запитає про рівень емуляції Див Info файл viper, node Top.

vi (інший емулятор)

Mx vi-mode входить в основний режим, який замінює перш встановлений режим Всі команди vi, які в сьогоденні vi входять в режим введення, запрограмовані для повернення в попередній основний режим Таким чином, звичайний Emacs служить режимом введення для vi

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

бажання привязати ключ до команди vi-mode

vi (ще один емулятор)

Mx vip-mode викликає ще один емулятор vi, про який кажуть, що він відповідає справжньому vi більш повно, ніж Mx vi-mode Режим введення в цьому емуляторі відрізняється від звичайного Emacs, так що для повернення в режим емуляції vi можна використовувати hESCi Для повернення з режиму емуляції vi в звичайний Emacs необхідно набрати Cz

Цей режим емуляції не працює через основні режими, що забезпечує можливість різних варіантів перемикання буферів всередині емулятора Приписувати ключ команді vip-mode немає так необхідно, як у випадку vimode, оскільки завершення режиму вставки не використовує її

Див Info файл vip, node Top, для отримання повної інформації

3014  Діссошіейтед Прес

Mx dissociated-press – це команда для перемішування текстового файлу слово за словом або знак за знаком Маючи на початку буфер з нормальним текстом, вона формує вкрай забавний висновок Введення проводиться з поточного буфера Emacs Діссошіейтед Прес записує свій висновок в буфер з імям * Dissociation *, при цьому, щоб полегшити його поступове читання, через кожну пару рядків (приблизно) вміст буфера показується заново

Діссошіейтед Прес час від часу запитує, чи продовжувати дію Для зупинки необхідно відповісти n Зупинити можна також в будь-який час за допомогою Cg Диссоциированная видача зберігається в буфері * Dissosiation *, щоб за бажанням можна було скопіювати її в інше місце

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

‘Пентагон і продовжити виведення звідси, видаючи в результаті презідентагон 2 наилуч-

рілі результати виходять на довгих вибірках

Позитивний аргумент Mx dissociated-press велить їй працювати познаково і визначає число перекриваються знаків Негативний аргумент змушує її діяти слово за словом і визначає кількість перекриваються слів У цьому режимі цілі слова, а не знаки, трактуються як переставляються елементи Відсутність аргументу еквівалентно аргументу, рівному двом До сновашему відома, висновок здійснюється тільки в буфер * Dissociation *. Буфер, з якого ви почали, не змінюється

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

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

*

*