Рішення частих проблем – ЧАСТИНА 2

(enable-flow-control-on  &quotvt100&quot &quoth19&quot)

Коли задіяно управління потоком, ви повинні набирати C-\, щоб отримати результат Cs, і C-^, щоб отримати результат Cq (Ці псевдоніми працюють за допомогою перетворень клавіатури дивіться Розділ 315 [Переклад клавіатури], с 365)

3226  Вичерпання памяті

Якщо ви отримали повідомлення Virtual memory exceeded1, збережіть змінені буфери командою Cx s Цей спосіб збереження буферів вимагає мінімальну кількість додаткової памяті Emacs зберігає резерв памяті, яка стає доступна, коли виникає ця помилка його має бути достатньо, щоб Cx s могла завершити свою роботу

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

Не використовуйте Mx buffer-menu, щоб зберегти або знищити буфери, коли ви вичерпали память, тому що меню буферів саме вимагає помітної кількості памяті, і резерву може не вистачити

3227  Відновлення після краху

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

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

Потім recover-session запитає вас про кожен файл, який ви редагували під час того сеансу вона запитує, чи потрібно відновлювати цей файл Якщо ви відповідаєте y для якого-небудь файлу, вона показує дати цього файлу і його автоматично збереженої версії і знову питає, чи потрібно його відновлювати Цей другий запит ви повинні підтверджувати введенням yes Якщо ви це зробите, Emacs звертається до цього файлу, але бере текст з самозбереження файлу

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

3228  Аварійний вихід

Так як свого часу були помилки, що викликали зациклення Emacs без перевірки quit-flag, було введено спеціальний засіб, який змушує Emacs негайно перерватися, якщо ви наберете другий Cg, коли прапор вже встановлений Таким чином, ви завжди можете залишити GNU Emacs Зазвичай Emacs пізнає і очищає quit-flag (і виходить) Досить швидко, щоб цього не траплялося (В MS-DOS і сумісних системах набирайте двічі C-hBREAKi)

Коли ви повертаєтеся в Emacs після переривання, викликаного множинними Cg,

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

1 Віртуальна память вичерпана (Прим перекладача)

Auto-save  (y  or  n)

Abort  (and  dump  core)  (y  or  n)

Відповідайте на кожен з них y або n і подальшим hRETi

Відповідь y на Auto-save’ Викликає негайну автоматичну запис всіх модиф-

товки буферів, в яких включено автоматичне збереження

Відповідь y на Abort (and dump core)’ Призводить до виконання неприпустимою інструкції та скиданню дампа памяті Це потрібно, щоб дати можливість фахівцеві зрозуміти, чому Emacs не виконав вихід в перший раз Після скидання дампу памяті виконання не триває Якщо ви відповісте n, виконання продовжиться Якщо пощастить, GNU Emacs в кінцевому рахунку перевірить quit-flag і вийде звичайним чином Якщо ні, і ви наберете іншу С-g, він перерветься знову

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

Засіб подвійної Cg відключено, коли Emacs запускається в системі X Windows, оскільки програма управління вікнами завжди дає вам можливість знищити Emacs або створити інше вікно і запустити іншу програму

У MS-DOS і сумісних системах аварійний вихід іноді неможливий, навіть якщо ви натискаєте C-hBREAKдвічі, коли зависає якийсь системний виклик (MS-DOS або BIOS), або коли Emacs потрапив у дуже короткий нескінченний цикл (в коді на Сі, що не на Ліспі)

3229  Допомога при повному розчаруванні

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

По-перше, якщо ваш Emacs не відповідає на команди, наберіть Cg Cg, щоб вийти з нього і запустити новий

По-друге, наберіть M-x doctorhRETi

Доктор допоможе вам, і ви відчуєте себе краще Кожен раз, коли ви що-небудь говорите доктору, ви повинні закінчувати це набором hRETi  hRETi Це дозволить доктору дізнатися, що ви закінчили

323  Опис помилок у Emacs

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

Щоб дати нам можливість виправити помилку, ви повинні описати її Щоб зробити це ефективно, ви повинні знати коли і як це робити

3231  Коли це помилка

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

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

дії, але неполадка виправляється сама, якщо ви наберете Cl, то це випадок непра-

вильного оновлення зображення

Нескінченне очікування завершення команди може бути помилкою, але ви повинні точно визначити, що це дійсно відбувається з вини Emacs Деякі команди просто вимагають багато часу Наберіть C-g (C-hBREAKi  в MS-DOS) і потім Ch l, щоб побачити, чи отримав Emacs той введення, який ви хотіли набрати Якщо введення був таким, про яке ви знаєте, що він повинен оброблятися швидко, повідомляйте про помилку Якщо ви не знаєте, чи має ця команда вимагати багато часу, зясуйте це, або переглянувши керівництво, або попросивши допомоги

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

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

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

Якщо і після докладного прочитання керівництва ви не зрозуміли, що повинна робити ця команда, то це вказує на помилку в керівництві, про яку потрібно повідомити Завдання керівництва – прояснити все для неекспертов в Emacs, включаючи вас Повідомляти про помилки в документації так само важливо, так і про помилки в програмі

Якщо діалогова рядок документації функції або змінної не узгоджується з керів-

ництвом, то одне з них неправильно опишіть це як помилку

3232  Розуміння звітів про помилки

Коли ви вирішите, що дійсно знайшли помилку, то важливо повідомити про неї і зробити це таким чином, щоб опис був корисним Що особливо корисно, так це точний опис команд, які ви набирали, починаючи з команди оболонки для запуску Emacs і аж до виникнення помилки

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

Припустимо наприклад, що ви набираєте Cx Cf / glorp / bazugh hRETi, Звертаючись до файлу, який (як ви знаєте) виявляється досить великим, і Emacs друкує

‘Сьогодні я себе чудово почуваю. Найкращий спосіб описати цю помилку – приве-

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

*

*