Dired, редактор каталогів

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

281  Вхід в Dired

Щоб запустити Dired, виконайте Cx d або Mx dired Ця команда зчитує імя каталогу або шаблон імені файлу як аргумент мінібуфера, щоб визначити, які файли потрібно перерахувати Команда dired відрізняється від list-directory тим, що вона переводить буфер в режим Dired, так що в ньому стають доступними спеціальні команди Dired

Мінлива dired-listing-switches задає ключі для передачі ls при створенні роздруківки каталогу цей рядок має містити -l. Якщо ви використовуєте з командою dired числовий аргумент, ви можете вказати в мінібуфер ключі для ls до того, як введете імя каталогу

Щоб показати буфер Dired в іншому вікні, а не в обраному, замість Cx d використовується Cx 4 d (dired-other-window) Cx 5 d (dired-other-frame) використовує для показу буфера Dired окремий фрейм

282  Команди, діючі в буфері Dired

Буфер Dired позначений як призначений тільки для читання, і вставляти в нього текст марно, так що звичайні друковані знаки, такі як d і x, використовуються для команд Dired Одні команди Dired встановлюють прапор на поточному файлі (це файл на поточному рядку) або позначають його інші команди виконують дії над поміченими файлами або файлами з встановленим прапором

Всі звичайні команди руху курсора в Emacs доступні і в буферах Dired Також передбачені деякі спеціальні команди Ключі Cn і С-p перевизначені так, що вони встановлюють курсор на початок імені файлу на рядку, а не в початок самої рядка

Для більшої зручності, hSPCі n в Dired еквівалентні C-n p еквівалентний C-p (Рух по рядках робиться в Dired настільки часто, що воно заслуговує того, щоб набір його був полегшений) hDELi  (Пересунутися вгору і прибрати прапор) часто буває корисним просто для руху вгору

283  Видалення файлів за допомогою Dired

Насамперед Dired використовується, щоб встановити прапор для видалення на деяких файлах, а потім видалити файли, раніше помічені прапором

d Встановити прапор видалення для цього файлу

u Прибрати прапор видалення на цьому рядку

hDELi              Пересунути точку на рядок вище і прибрати на цьому рядку прапор видалення

x Видалити файли, помічені прапором видалення

Ви можете встановити на файлі прапор, перемістившись на рядок, що описує файл, і набравши на ній d (dired-flag-file-deletion) Прапор видалення виглядає як D на початку рядка Ця команда пересуває точку на початок наступного рядка, таким чином,

повторення команди d позначає для видалення наступні файли Числовий аргумент служить в якості лічильника повторів

Файли позначаються для видалення, а не видаляються негайно, щоб зменшити небезпеку випадкового видалення файлу До тих пір, поки ви прямо не вкажете Dired видалити позначений файл, ви можете прибрати прапори, використовуючи команди u або hDELi u (diredunmark працює точно так само, як d, але видаляє прапори, а не створює їхhDELi  (Diredunmark-backward) рухається вгору, прибираючи прапори це подібно u з аргументом 1

Щоб видалити файли з встановленим прапором, наберіть x (dired-expunge) Ця команда покаже спочатку список всіх імен файлів, помічених для видалення, і зажадає підтвердження введенням yes Якщо ви підтверджуєте, то все помічені прапором файли знищуються і їх рядки видаляються з тексту буфера Dired Скорочений буфер Dired залишається обраним

Якщо при запиті підтвердження ви відповісте no або вийдіть за допомогою Cg, ви негайно повернетеся в Dired всі прапори видалення залишаться в буфері, і файли не будуть видалені

284  Установка прапора на кілька файлів одночасно

# Позначає прапором видалення всі файли, які зявилися при самозбереженні (файли, чиї імена починаються і закінчуються на #) (див Розділ 145 [Самозбереження], с 114)

~ Позначає прапором видалення всі резервні файли (файли, чиї імена закінчуються на ~) (див Розділ 1431 [Резервні файли], с 110)

& Позначає прапором видалення всі файли з певними типами імен, припускає-

лага, що ви легко зможете їх знову створити

. (Точка) Позначає прапором видалення зайві резервні файли Зберігаються тільки кілька найстаріших і самих нових резервних копій проміжні позначаються прапором

% D регулярневираз hRETi

Позначає прапором видалення всі файли, чиї імена відповідають заданим

регулярномувисловом

Команди #, ~, & і встановлюють прапор для декількох файлів, грунтуючись на їхніх іменах Ці команди корисні саме тому, що самі по собі вони не видаляють файли ви можете прибрати прапори видалення з будь-яких позначених файлів, які ви насправді хочете зберегти

& (Dired-flag-garbage-files) встановлює прапор видалення для файлів, чиї імена відповідають регулярному виразу, заданому змінної dired-garbage-filesregexp За замовчуванням їй відповідають певні файли, вироблені TEX, і

файли . orig і . rej, вироблені програмою patch

# (Dired-flag-auto-save-files) встановлює прапор видалення для всіх файлів, чиї імена виглядають як імена самозбереження файлів (див Розділ 145 [Самозбереження], с 114) – це файли з іменами, що починаються і закінчуються на #. ~ (Diredflag-backup-files) встановлює прапор видалення для всіх файлів, чиї імена говорять, що це резервні копії (див Розділ 1431 [Резервні файли], с 110) – це файли з іменами, які закінчуються на ~.

. (Точка, dired-clean-directory) встановлює прапор видалення лише для деяких резервних копій: для всіх, крім самих старих і найновіших резервних копій одного файлу Зазвичай dired-kept-versions (Не kept-new-versions ця змінна застосовується при збереженні) задає число найновіших версій, які будуть кожного файлу, а keptold-versions задає число найстаріших версій, які будуть

Точка з позитивним числовим аргументом, як в Cu 3, Вказує число залишаються нових версій, перекриваючи значення dired-kept-versions Негативний числовий аргумент перекриває kept-old-versions, використовуючи число, протилежне заданому, для вказівки числа що залишаються старих версій кожного файлу

Команда% d встановлює прапор видалення для всіх файлів, чиї імена відповідають заданому регулярному виразу (dired-flag-files-regexp) При пошуку використовується імя файлу з виключеною частиною, визначальною каталог Для привязки регулярного виразу до початку або кінця імені ви можете використовувати ^ і $. Підкаталоги ви можете виключити, приховавши їх (див Розділ 2813 [Приховування підкаталогів], с 299)

285  Звернення до файлів в Dired

Є кілька команд Dired для звернення до файлів, перерахованим в буфері Dired, або перегляду їх вмісту Всі вони застосовуються до файлу на поточному рядку якщо цей файл насправді є каталогом, ці команди викликають в ньому Dired (створюючи окремий буфер Dired)

f Звертається до файлу, описаному на поточному рядку подібна введенню Cx Cf і завданням імені цього файлу (dired-find-file) Див Розділ 142 [Звернення], с 106

hRETi             Еквівалент f

o Як f, але використовує для відображення буфера цього файлу окреме вікно (dired-find-file-other-window) Буфер Dired залишається видимим у першому вікні Це подібно використанню Cx 4 Cf для звернення до цього файлу Див Глава 16 [Вікна], с 141

Co Звертається до файлу, описаному на поточному рядку, і відображає його буфер в окремому вікні, але не вибирає це вікно (dired-display-file)

Mouse-2 Звертається до файлу в рядку, на якій ви клацнули (dired-mouse-findfile-other-window) Ця команда використовує для показу файлу інше вікно, як команда o

v Звертається до файлу, описаному на поточному рядку, в режимі перегляду, як

M-x view-file (dired-view-file)

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

286  Позначки Dired  vs прапори

Замість установки для файлу прапора за допомогою D ви можете встановити на цьому файлі мітку за допомогою якого-небудь іншого знака (зазвичай *) Більшість команд Dired для роботи з файлами, окрім викреслювання (X), діють на файли, помічені зірочкою

‘*’

Ось деякі команди для позначки за допомогою *, для зняття мітки або для твори яких дій над мітками (Див Розділ 283 [Видалення в Dired], с 291, для отримання інформації про команди для установки і зняття прапорів на файлах)

m

* M Позначає поточний файл зірочкою * (dired-mark) З числовим аргументом n, Позначає наступні n файлів починаючи від поточного (Якщо n відємний, позначає −n попередніх файлів)

** Позначає всі виконувані файли зірочкою * (dired-mark-executables) З

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

* @ Позначає всі символьні посилання зірочкою (dired-mark-symlinks) З число-

вим аргументом, прибирає мітки з усіх таких файлів

* / Позначає зірочкою всі файли, які є в дійсності каталогами, виключаючи .’ І ..’ (dired-mark-directories) З числовим аргументом, прибирає мітки з усіх цих файлів

* S Позначає всі файли в поточному підкаталозі, крім .’ І ..’ (dired-marksubdir-files)

u

* U Прибирає будь-яку мітку на цьому рядку (dired-unmark)

hDELi

* hDELi          Переміщує точку на попередній рядок і прибирає будь-яку мітку на цьому рядку (dired-unmark-backward)

* Прибирає всі мітки з усіх файлів у цьому буфері Dired (dired-unmark-allfiles-no-query)

* знакмітки

Прибирає всі мітки, які використовують знак знакмітки (dired-unmark-all-files) Аргументом має бути один знак – не використовуєте для його завершення hRETi

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

* Cn Переміщає вниз до наступного поміченого файлу (dired-next-markedfile) Файл вважається поміченим, якщо на ньому є мітки будь-якого виду

* Cp Переміщає вгору до попереднього позначених файлів (dired-prev-markedfile)

* T Перемикає все мітки (dired-do-toggle): файли, помічені * стають непоміченими, а непомеченние файли метятся знаком *. Файли, помічені іншим способом, не зачіпаються

* C старий новий

Замінює всі мітки, які використовують знак старий на мітки зі знаком новий (dired-change-marks) Ця команда дає основний метод створення або використання міток, відмінних від * або D. Аргументами повинні бути поодинокі знаки – не використовуйте hRETдля їх завершення

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

– Це пробіл (‘), то ця команда діє на всі непомеченние файли якщо новий знак є прогалиною, ця команда прибирає мітку з файлів, на які вона діє

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

* c D  t  * c SPC  D     * c t SPC

Тут передбачається, що жоден з файлів не вдалося позначений прапором t.

% m  regexp hRETi

* %  regexp hRETi

Позначає (знаком *) всі файли, чиї імена відповідають регулярному виразу regexp (Dired-mark-files-regexp) Ця команда схожа на% d, але вона позначає файли зірочкою *, а не встановлює прапор D. Див Розділ 284 [Установка прапора на кілька файлів], с 292

Для пошуку збігів використовується тільки та частина імені файлу, яка не ставить каталог Для привязки регулярного виразу до початку або кінця імені ви можете використовувати ^ і $. Підкаталоги ви можете виключити, приховавши їх (див Розділ 2813 [Приховування підкаталогів], с 299)

%  g regexp hRETi

Позначає (знаком *) всі файли, чий вміст включає збіги з регулярним виразом regexp (Dired-mark-files-containing-regexp) Ця команда схожа на% m, але вона переглядає вміст файлів, а не їхні імена

C-_ Скасовує зміни в буфері Dired, такі як додавання або зняття міток

(dired-undo)

287  Дії над файлами

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

Якщо ви даєте команді числовий аргумент n, Вона діє на n наступних файлів, починаючи з поточного (Якщо n негативно, то ця команда діє на −n файлів, що передують поточному рядку)

Інакше, якщо якісь файли помічені за допомогою *, команда діє на всі ці файли

Інакше ця команда діє тільки на поточний файл

Ось команди для маніпуляцій над файлами, діючі таким способом (Деякі інші команди Dired, такі як І %, також дотримуються цих угод для прийняття рішення про вибір файлів для роботи)

C новий hRETi

Копіює вказані файли (dired-do-copy) Аргумент новий – це каталог, в який потрібно копіювати, або (при копіюванні єдиного файлу) нове імя

Якщо dired-copy-preserve-time не дорівнює nil, то при копіюванні за допомогою цієї команди час зміни нового файлу встановлюється таким же, як у старого файлу

D Видаляє вказані файли (dired-do-delete) Подібно іншим командам в цьому розділі, ця команда діє на помічені файли або на n наступних файлів Навпаки, x (dired-expunge) видаляє всі файли з встановленим прапором

R новий hRETi

Перейменовує вказані файли (dired-do-rename) Аргумент новий – це каталог, в який потрібно перейменовувати, або (при перейменуванні єдиного файлу) нове імя

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

H новий hRETi

Створює жорсткі посилання на вказані файли (dired-do-hardlink) Аргумент новий – це каталог, в якому потрібно створювати посилання, або (при створенні посилання на єдиний файл) імя цього посилання

S новий hRETi

Створює символьні посилання на вказані файли (dired-do-symlink) Аргумент новий – це каталог, в якому потрібно створювати посилання, або (при створенні посилання на єдиний файл) імя цього посилання

M режим hRETi

Змінює режим (також званий битами прав доступу) зазначених файлів (dired-do-chmod) Ця команда використовує програму chmod, тому режим може бути будь-яким аргументом, який chmod здатний обробити

G новагрупа hRETi

Замінює групу власників зазначених файлів на новугрупу (dired-dochgrp)

O новийвласник hRETi

Замінює власника зазначених файлів на новоговласника (dired-do-chown) (На більшості систем це може робити тільки привілейований користувач)

Мінлива dired-chown-program задає імя програми, використовуваної для цих завдань (різні системи поміщають chown в різні місця)

P команда hRETi

Друкує вказані файли (dired-do-print) Ви повинні вказати команду друку, але в мінібуфер відразу зявляється підходяща передбачувана рядок, отримана за допомогою змінних lpr-command і lpr-switches (Ці ж змінні використовує lpr-buffer див Розділ 304 [Роздруківка], с 331)

Z Стискає вказані файли (dired-do-compress) Якщо виявляється, що якийсь файл вже стиснутий, ця команда навпаки розкриває його

L Завантажує вказані файли Emacs Lisp (dired-do-load) Див Розділ 237 [Бібліотеки Лиспа], с 253

B Байт-компілює вказані файли на Emacs Lisp (dired-do-byte-compile)

Див розділ Byte Compilation в The Emacs Lisp Reference Manual

A regexp  hRETi

Виробляє пошук регулярного виразу regexp у всіх зазначених файлах

(dired-do-search)

Ця команда – варіант команди tags-search Пошук зупиняється при першому знайденому збігу щоб продовжити пошук і знайти наступне збіг, натисніть M-, Див Розділ 22135 [Пошук за допомогою тегів], с 229

Q старе hRETнове hRETi

Виробляє query-replace-regexp у кожному із зазначених файлів, замінюючи збіги старого (регулярного виразу) на рядок нове (dired-doquery-replace)

Ця команда – варіант tags-query-replace Якщо ви вийдіть з циклу заміни з підтвердженням, ви можете використовувати M-, для продовження пошуку і заміни подальших збігів Див Розділ 22135 [Пошук з допомогою тегів], с 229

Одна особлива команда для роботи з файлами – це + (dired-create-directory) Вона зчитує імя каталогу і створює його, якщо каталог з таким імям ще не існує

288  Команди оболонки в Dired

Команда Dired (Dired-do-shell-command) зчитує в мінібуфер командний рядок оболонки і запускає цю команду оболонки для всіх зазначених файлів Ви можете задати оброблювані файли звичайними методами, як для команд Dired (див Розділ 287 [Дії над файлами], с 295) Є два способи застосувати команду оболонки до декількох файлів:

Якщо ви використовуєте в команді оболонки *, то ця команда запускається один раз, а

‘* Замінюється списком імен файлів Імена файлів передаються в тому ж порядку, в якому вони зявляються в буфері Dired

Таким чином, tar cf footar * hRETзапускає tar для всього списку імен файлів,

поміщаючи їх усі в один tar-файл footar.

Якщо командний рядок не містить *, вона запускається один раз для кожного файлу

з доданим наприкінці імям цього файлу

Наприклад, uudecode hRETзапускає для кожного файлу команду uudecode

Що якщо ви хочете виконати команду оболонки один раз для кожного файлу, але з імям файлу, вставленим в середині Або якщо ви хочете використовувати імена файлів більш складним чином Використовуйте цикли оболонки Наприклад, така команда оболонки запустила б uuencode для кожного заданого файлу, записуючи висновок у відповідний

‘. Uu-файл:

for file in * do uuencode $file $file &gt$fileuu done

Робочим каталогом команди оболонки служить каталог верхнього рівня буфера Dired

Команда не намагається оновити буфер Dired, щоб показати нові або змінені файли, тому що насправді вона не розуміє команд оболонки і не знає, які імена змінилися Для оновлення буфера Dired використовуйте команду g (див Розділ 2814 [Оновлення в Dired], с 300)

289  Перетворення імен файлів в Dired

Ось команди, які змінюють імена файлів систематичним чином:

% U Змінює імя кожного з вибраних файлів на імя, написане великими літерами (dired-upcase) Якщо старими іменами файлів були Foo і bar, то новими будуть FOO і BAR.

% L Змінює імя кожного з вибраних файлів на імя, написане малими літерами (dired-downcase) Якщо старими іменами файлів були Foo і bar, то новими будуть foo і bar.

% R старе hRETнове hRETi

% C старе hRETнове hRETi

% H старе hRETнове hRETi

% S стареhRETнове hRETi

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

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

Ці команди порівнюють кожне старе імя файлу з регулярним виразом старе і потім замінюють збіглася частину на нове Ви можете використовувати в рядку нове позначення \ & і \ цифра, щоб послатися на весь або на частину совпавшего зразка в старому імені файлу, як в replace-regexp (див Розділ 1272 [Заміна регулярного виразу], с 96) Якщо в імені файлу є більше одного збігу з регулярним виразом, замінюється лише перший

Наприклад,% R ^ * $ hRETx-\&amp  hRETперейменовує кожен обраний файл, додаючи x- в початок імені Зворотній процедура, видалення x- з початку кожного імені файлу, також можлива: один спосіб – набрати% R ^ x-\ ( * \) $ hRET\1 hRETi другий – це% R ^ x hRETi hRETi (Використовуйте ^ і $ для привязки регулярних виразів до початку або кінця імені)

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

Часто ви можете захотіти вибрати набір оброблюваних файлів за допомогою того ж регулярного виразу regexp, Що буде використовуватися для їх обробки Щоб зробити так, позначте ці файли командою% mregexp hRETi, А потім застосуйте цей же регулярний вираз в команді обробки Для полегшення цього, команди обробки файлів, що починаються на%, використовують за замовчуванням останнє регулярний вираз, задане будь-якій команді%

2810  Порівняння файлів в Dired

У Dired є дві команди, які порівнюють задані файли за допомогою програми

diff

= Порівнює поточний файл (файл у позиції точки) з іншим файлом (файлом в позиції мітки), використовуючи програму diff (dired-diff) Файл у позиції мітки – це перший аргумент diff, а файл у позиції точки – другий

M-= Порівнює поточний файл з його останньої резервної копією (dired-backupdiff) Якщо поточний файл сам є резервною копією, порівнює його з оригіналом таким чином ви можете порівняти файл з будь-якої його резервної версією за вашим вибором

Першим аргументом diff передається резервна копія

2811  Підкаталоги в Dired

У звичайному випадку буфер Dired показує тільки один каталог але ви також можете включити в список і його підкаталоги

Найпростіший спосіб включити кілька підкаталогів в один буфер Dired – задати для запуску ls ключі -lR. (Якщо при виклику Dired ви задасте числовий аргумент, ви зможете написати ці ключі в мінібуфер) Це справить рекурсивний список каталогу, що показує всі підкаталоги усіх рівнів

Але зазвичай всіх підкаталогів буває занадто багато частіше ви воліли б включити тільки конкретні підкаталоги Ви можете зробити це за допомогою команди i:

i Вставляє вміст підкаталогу нижче в цьому буфері

Застосовуйте команду i (dired-maybe-insert-subdir) на рядку, яка описує файл,

який є каталогом Вона вставляє вміст цього каталогу в цей же буфер

Dired і переміщує до нього Вставлене вміст підкаталогу слід після каталогу верхнього рівня даного буфера Dired, як у виведенні ls-lR.

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

щает до нього

В обох випадках i до переміщення встановлює мітку Emacs, так що Cu C-hSPCi

повертає вас до попередньої позиції в буфері (до рядка, що описує підкаталог)

Використовуйте команду l (dired-do-redisplay) для оновлення вмісту підкаталогу Для видалення підкаталогу ви можете застосувати команду k Див Розділ 2814 [Оновлення в Dired], с 300

2812  Переміщення по підкаталогам

Коли буфер Dired перераховує підкаталоги, ви можете використовувати команди переме-

домлення по сторінках Cx [і Cx] для переходу через цілі каталоги

Наступні команди пересувають в межах одного рівня, вгору або вниз по дереву каталогів в одному буфері Dired Вони переміщують до рядків заголовків каталогів це рядки, що повідомляють імя каталогу, вони виводяться перед його вмістом

CMn Переходить до рядка заголовка наступного підкаталогу, незалежно від його рівнях-

ня (dired-next-subdir)

CMp Переходить до рядка заголовка попереднього підкаталогу, незалежно від його рівня (dired-prev-subdir)

CMu Переходить до рядка заголовка батьківського підкаталогу (dired-tree-up)

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

(dired-tree-down)

< Переміщує вгору до попереднього рядка файла-каталога (dired-prevdirline). Це рядки, що описують каталог як файл у його батьківському каталозі.

> Переміщує до наступного рядка файла-каталога (dired-prev-dirline)

2813  Переховування підкаталогів

Приховати підкаталог – значить зробити невидимим його вміст, за винятком рядка заголовка, засобами вибіркового показу (див Розділ 114 [Вибірковий показ], с 83)

$ Приховує або відкриває підкаталог, на якому знаходиться точка, і переміщує точку до наступного подкаталогу (dired-hide-subdir) Числовий аргумент служить в якості лічильника повторів

M-$ Приховує всі підкаталоги в цьому буфері Dired, залишаючи тільки їх рядки заголовків (dired-hide-all) Або, якщо який-небудь підкаталог вже прихований, робить все підкаталоги знову видимими Ви можете використовувати цю команду, щоб отримати огляд дуже глибоких дерев каталогів або щоб швидко переміститися до далеких підкаталогам

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

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

2814  Оновлення буфера Dired

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

g Обновляє весь вміст буфера Dired (revert-buffer)

l Обновляє вказані файли (dired-do-redisplay)

k Видаляє задані рядки файлів – не власними файли, а лише рядки в буфері

(dired-do-kill-lines)

s Перемикає між сортуванням в алфавітному порядку і за датою / часом

(dired-sort-toggle-or-edit)

C-u s перемикачі hRETi

Оновлює буфер Dired, використовуючи перемикачі в якості dired-listingswitches

Наберіть g (revert-buffer), щоб вміст буфера Dired оновилося, грунтуючись на зроблених в перерахованих файлах і каталогах змінах Ця команда зберігає всі мітки, крім міток, що стояли на віддалених файлах Приховані підкаталоги оновлюються, але залишаються прихованими

Щоб оновити лише деякі файли, наберіть l (dired-do-redisplay) Ця команда застосовується до наступних n файлів, або до поміченим файлів, якщо такі є, або до поточного файлу Оновлення їх означає зчитування нового статусу з файлової системи і оновлення буфера для правильного відображення стану цих файлів

Якщо ви застосуєте l на рядку заголовка підкаталогу, вона оновить вміст цього підкаталогу

Щоб видалити задані рядки файлів – не власними файли, тільки їх рядки – надрукуйте k (dired-do-kill-lines) Запущена з числовим аргументом n, Ця команда застосовується до наступних n файлів інакше вона застосовується до поміченим файлам

Якщо ви знищите рядок для файлу, що є каталогом, вміст цього каталогу також буде видалено з буфера Інший спосіб видалити підкаталог з буфера Dired – набрати Cu k на рядку заголовка цього підкаталогу

Команда g повертає всі рядки, знищені таким методом, але не повертає підкаталоги – ви повинні використовувати i, щоб знову вставити кожен підкаталог

Файли в буферах Dired зазвичай перераховуються в алфавітному порядку за іменами Або Dired може відсортувати їх за датою та часом Команда Dired s (dired-sort-toggleor-edit) перемикає між цими двома режимами сортування Рядок режиму в буфері Dired показує, за якою ознакою в даний момент відсортовані файли: по імені або за датою

C-u s перемикачі hRETi  дозволяє вам задати нове значення для dired-listingswitches

2815  Dired  і find

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

використовуючи для вибору файлів утиліту find

Щоб знайти всі файли, чиї імена відповідають заданим шаблоном, запустіть Mx find-name-dired Ця команда зчитує аргументи каталог та зразок і вибирає всі файли в каталозі або його підкаталогах, чиї імена відповідають зразку

Вибрані таким способом файли відображаються в буфері Dired, в якому доступні звичайні команди Dired

Якщо ви хочете перевіряти вміст файлів, а не їхні імена, використовуйте Mx find-grep-dired Ця команда зчитує в мінібуфер два аргументи, каталог і regexp вона вибирає всі файли в каталозі або його підкаталогах, які містять збіги з регулярним виразом regexp Для цього вона запускає програми find і grep Дивіться також Mx grep-find, розділ Розділ 231 [Компіляція], с 247 Памятайте, що регулярний вираз задається для grep, а не для Emacs

Найбільш загальна команда в цій серії – команда Mx find-dired, яка дозволяє вам вказати будь-яке умова, яка може перевірити find Ця команда бере два аргументи мінібуфера, каталог і аргументи-find вона запускає find в каталозі, передаючи аргументи-find, Щоб повідомити, які умови має перевірити find Щоб використовувати цю команду, ви повинні вміти користуватися програмою find

Формат роздруківки, виробленої цими командами, управляється змінної findls-option її значення за замовчуванням велить використовувати для ls ключі -ld. Якщо ваші роздруківки пошкоджені, вам може знадобитися змінити значення цієї змінної

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

*

*