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

M-x sort-numeric-fields

Ця команда подібна Mx sort-fields, за винятком того, що для кожного рядка вказане поле перетворюється на число, і порівнюються вже ці числа

’10 Передує 2, коли розглядається як текст, але слід за 2 , коли розглядається як число

M-x sort-columns

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

M-x reverse-region

Звернути порядок рядків в області Це корисно для сортування в порядку убування по полях або колонкам, так як дані команди сортування не мають коштів для цього

Наприклад, якщо буфер містить такий текст:

On  systems where clash  detection (locking of  files being  edited) is implemented,  Emacs  also  checks the  first time  you modify  a buffer whether  the  file has changed on disk  since  it was last visited or saved    If it has,  you are  asked to  confirm that you want to  change the  buffer

застосування Mx sort-lines до всього буферу дасть наступне:

On  systems where clash  detection (locking of  files being  edited) is implemented,  Emacs  also  checks the  first time  you modify  a buffer saved    If it has,  you are  asked to  confirm that you want to  change the  buffer

whether  the  file has changed on disk  since  it was last visited or

де заголовна O йде перед усіма малими літерами Якщо ви замість цього застосуйте

Cu 2 Mx sort-fields, то отримаєте наступне:

implemented,  Emacs  also  checks the  first time  you modify  a buffer saved    If it has,  you are  asked to  confirm that you want to  change the  buffer

On  systems where clash  detection (locking of  files being  edited) is

whether  the  file has changed on disk  since  it was last visited or

де ключами сортування були Emacs, If, buffer, systems і the.

Mx sort-columns вимагає більш докладного пояснення Ви вказуєте колонки, встановлюючи точку на одному стовпці, а мітку – на іншому Так як це означає, що ви не можете поставити крапку або мітку на початку першого рядка, з якою повинна початися сортування, то ця команда використовує незвичайне визначення області: вся рядок з точкою розглядається як частина області, і так само весь вміст рядка, в якій знаходиться мітка, і всі рядки між ними

Наприклад, для сортування таблиці за інформацією, розміщеною в шпальтах з 10 по

15, мітку можна поставити в першому рядку таблиці в стовпці 10, а крапку в стовпці 15 в останньому рядку таблиці і потім запустити sort-columns Або ви можете поставити мітку в стовпці 15 в першому рядку, а точку – у стовпчику 10 в останньому рядку

Це можна розглядати як сортування прямокутника, заданого точкою і влучною, за винятком того, що текст в кожному рядку праворуч і ліворуч від прямокутника рухається разом з текстом усередині прямокутника Див Розділ 94 [Прямокутники], с 74

Багато команд сортування ігнорують при порівняннях відмінність в регістрі букв,

якщо sort-fold-case не дорівнює nil

308  Звуження

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

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

Cx nn Звузити до області між точкою і міткою (narrow-to-region)

Cx nw Розширити так, щоб буфер знову став повністю доступним (widen)

Cx np Звузити до поточної сторінки (narrow-to-page)

Cx nd Звузити до поточного визначення функції (narrow-to-defun)

Коли ви зробили звуження до частини буфера, ця частина – все, що ви бачите Ви не можете бачити іншу частину, в неї неможливо перейти (команди руху не вийдуть за межі доступної частини) і не можна змінити її ніяким чином Але вона не пропала, і якщо ви зберігаєте файл, то збережеться і недоступна частину тексту При дії звуження в рядку режиму зявляється слово Narrow.

Основною командою звуження є Cx nn (narrow-to-region) Вона встановлює обмеження для поточного буфера таким чином, що залишається доступним тільки текст поточної області, але весь текст перед областю і після неї стає недоступним Точка і мітка не змінюються

Ще ви можете використовувати Cx np (narrow-to-page) для звуження до поточної сторінки Див Розділ 214 [Сторінки], с 184, визначення сторінки Cx nd (narrow-todefun) звужує до визначення функції, містить точку (див Розділ 224 [Визначення функцій], с 208)

Скасування звуження виконується командою Cx nw (widen) Вона робить весь текст буфера знову доступним

Ви можете отримати інформацію про те, до якої частини звужений буфер, застосувавши коман-

ду C-x = Див Розділ 49 [Інформація про позицію], с 40

Оскільки звуження може легко заплутати користувача, не розуміючого його, команда narrow-to-region зазвичай заблокована При спробі її використання запитується підтвердження і надається можливість її включення якщо ви задіяли цю команду, підтвердження більше не потрібно Див Розділ 31411 [Блокування команди], с 364

309  Редагування тексту у дві колонки

Режим Two-column дозволяє вам зручно редагувати текст у дві колонки Він ис-

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

Є два способи увійти в двоколонковому режим:

hF22 або C-x 2 Червень

Входить в режим two-column, ліворуч зявляється поточний буфер, а праворуч зявляється буфер, чиє імя засноване на імені поточного буфера (2C-two-columns) Якщо правий буфер ще не існує, спочатку він робиться порожнім вміст поточного буфера не змінюється

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

hF2s or C-x 6 s

Розділяє поточний буфер з текстом у двох колонках на два буфера і показує їх поруч один з одним (2C-split) Поточний буфер стає лівим буфером, але текст з правої колонки переміщається в правий буфер Поточний стовпець визначає точку розділу Поділ починається від поточного рядка і триває до кінця буфера

Ця команда корисна, якщо у вас вже є буфер з двоколонковому текстом, і ви хочете тимчасово розділити колонки

hF2b буфер hRETi

C-x 6 b буфер hRETi

Входить в режим two-column, використовуючи поточний буфер в якості лівого і буфер буфер в якості правого (2C-associate-buffer)

hF2s або Cx 6 s шукає роздільник колонок, який є рядком, що стоїть між двох колонок на кожному рядку Ви можете задати ширину роздільника за допомогою числового аргументу для hF2s стільки знаків, що стоять перед крапкою, висловлять строкуразделітель За замовчуванням ширина дорівнює 1, тому роздільник колонок – це знак перед точкою

Коли рядок містить роздільник на своєму місці, hF2s поміщає текст після роздільник у правий буфер і видаляє роздільник Рядки, що не мають роздільник колонок, залишаються неразбітие вони залишаються в лівому буфері, а в правий буфер поміщається для відповідності порожній рядок (Таким чином можна написати рядок, яка проходить по обидва колонкам в двоколонковому режимі: написати її в лівому буфері і зробити порожній рядок у правому буфері)

Команда C-x 6 hRETi  або hF2i hRETi  (2C-newline) вставляє знак нового рядка в обидва буфера у відповідних позиціях Це найпростіший спосіб додати новий рядок в двоколонковому тексті, коли ви редагуєте його в різних буферах

Коли ви відредагували обидва буфера, як вам хотілося, обєднайте їх за допомогою hF21 або C-x 6 Січень (2C-merge) Це копіює текст з правого буфера як другу колонку іншого буфера Щоб повернутися до редагування у дві колонки, використовуйте hF2s

Використовуйте hF2d або Cx 6 d, щоб розєднати два буфера, залишаючи кожного як є (2C-dissociate) Якщо інший буфер, що не поточний в момент, коли ви набрали hF2d, виявився порожнім, hF2d знищує його

3010  Редагування двійкових файлів

Існує спеціальний основний режим для редагування двійкових файлів: режим Hexl Щоб скористатися ним, викличте для звернення до файлу Mx hexl-find-file замість Cx Cf Ця команда перетворює вміст файлу в

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

Ви можете також використовувати Mx hexl-mode для перетворення існуючого буфера в шістнадцятковий вигляд Це корисно, якщо ви звернулися до файлу звичайним способом і потім виявили, що це двійковий файл

Звичайні знаки в режимі Hexl перезаписують поверх існуючого тексту Це зроблено для зменшення ризику ненавмисної втрати вирівнювання даних у файлі Для вставки є особливі команди Ось перелік команд режиму Hexl:

CMd Вставляє байт з введенням десятковим кодом

CMo Вставляє байт з введенням вісімковий кодом

CMx Вставляє байт з введенням шістнадцяткові кодом

Cx [Переміщає на початок 1k-байтной сторінки.

Cx] Переміщає на кінець 1k-байтной сторінки.

Mg Переміщає до адресою, заданому шістнадцяткові числом

Mj Переміщає до адресою, заданому десятковим числом

Cc Cc Залишає режим Hexl, повертаючись до того основному режиму, який був у цьому буфері до того, як ви викликали hexl-mode

3011  Збереження сеансів Emacs

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

Щоб використовувати Desktop, ви повинні скористатися буфером Customization (див Розділ 3122 [Проста настройка], с 344) і встановити desktop-enable в відмінне від nil значення або додати такі рядки в ваш файл . emacs:

(desktop-load-default) (desktop-read)

Перший раз, коли ви зберігаєте стан сеансу Emacs, ви повинні зробити це вручну, за допомогою команди Mx desktop-save Як тільки ви це зробили, при виході з Emacs стан буде зберігатися знову – не тільки в існуючому сеансі Emacs, але і у всіх наступних Ви також можете записати стан в будь-який час не виходячи з Emacs, знову набравши Mx desktop-save

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

*

*