LogoHome   >>   Opinion   >>   X

X

Несколько лет разработки под Linux навеяли мысль, что у всех этих людей
из мира X, что-то не так с головой. Простых и очевидных решений для них
не существует. + Религиозный фанатизм: "Кто не с нами..."

И вот на "пафосном" IT-ресурсе забавная иллюстрация по теме:

http://habrahabr.ru/blogs/personal/99762



> Emacs как файл менеджер
> 
> Практически каждому пользователю компьютера рано или поздно приходится
> сталкиваться с проблемой переименования сразу нескольких файлов.
> Например, сменить расширение файла, поменять имя, вставить порядковый
> номер и так далее. Кто-то пишет shell скрипты, кто-то использует
> специально созданные для этой цели программы, но настоящие индейцы
> используют Emacs.
> 
> В Emacs существует такой режим как dired. Это режим просмотра директории.
> Чтобы включить его достаточно набрать
> 
> Alt-x dired
> 
> после этого достаточно выбрать путь к директории
> 
> image
> 
> Допустим, нам нужно переименовать файлы в этой директории, превратив имя
> yuka в имя и фамилию yuka.kemmochi. Будем использовать для этого
> регулярные выражения[1]. Почему регулярные выражения? Потому что это
> пожалуй самый гибкий способ. И хотя в данном случае мы стреляем из
> лазерной пушки с автоматической наводкой по воробьям, техника
> опробованная здесь пригодится в более сложных случаях.
> 
> Регулярные Выражения в Emacs
> 
> Регулярные выражения не так уж просты сами по себе. В Emacs дело
> осложняется тем, что он использует POSIX регулярные выражения, и
> спецсимволы необходимо экранировать слэшем. Так как слэш сам по себе
> спецсимвол, то его также необходимо экранировать. Плюс ко всему в
> строках каждый слэш необходимо удваивать. Все это приводит к тому, что
> регулярное выражение в Emacs может выглядеть, например, вот так
> \\<\\(HKCU\\|HKLM\\|dirifempty\\|files\\|filesandordirs\\)\\>
> 
> Что соответствует обычному
> 
> ^(HKCU|HKLM|dirifempty|files|filesandordirs)$
> 
> С другой стороны регулярные выражения в Emacs очень легко составлять и
> тестировать. Для этого мы задействуем пожалуй один из самых мощных
> инструментов Emacs RE-builder:
> 
> image
> 
> В открывшемся поле можно вводить выражение, помня о том, что вводится
> оно как строка, поэтому все слэши необходимо удваивать.
> 
> image
> 
> Ввод этот интерактивен, то есть Emacs подкрасит то, что соответствует
> введенному выражению. Более того, отдельные группы выделяются отдельным
> цветом.
> 
> Составив выражение мы готовы переименовывать файлы.
> 
> Операции с файлами
> 
> Перед тем как оперировать с файлами, нам необходимо их выделить. Можно
> просто перемещаясь по буферу и вставая на имя файла нажимать m, можно
> ввести % g и затем в приглашении ввести часть имени файлов, можно
> использовать опять же регулярные выражения ввеля % m
> 
> image
> 
> Выделить все файлы достаточно просто
> 
> image
> 
> Вуаля
> 
> image
> 
> Дальнейшие операции проходят над выделенными файлами.
> 
> Чтобы переименовать файлы используя регулярные выражения нажмем % R.
> 
> image
> 
> Регистр буквы важен, то есть нажимается Shift и 5 и затем не отпуская
> Shift нажимаем r. Как правило, 5 и r находятся рядом на клавиатуре
> поэтому переименование файлов используя регулярные выражения можно
> запустить довольно быстро и просто.
> 
> Вводим наше регулярное выражение, помня о том, что количество слешей
> должно "уполовинится" по сравнению с тем что мы пробовали в RE-builder.
> 
> Дополнительная фишка заключается в том, что Emacs запоминает то, что вы
> вводили в приглашения до этого и достаточно просто перемещаться по
> истории ввода используя Alt-p - назад и Alt-n - вперед. Выбрав нужную
> строку из истории можно ее отредактировать и использовать вновь.
> 
> После этого предлагается ввести выражения для нового имени файла
> 
> image
> 
> Alt-p/Alt-n работают и здесь.
> 
> image
> 
> Мы используем, так называемые, замены (Regular Expression Replacements).
> Наиболее интересны следующие:
> 
> 
>     \1...\9 - группы, то есть то что в исходном выражении ограничено
>     скобками \( и \) в порядке следования слева - внутрь - направо
> 
>     \& - то что пришлось на все регулярное выражение (то есть группа 0)
> 
>     \? - приглашение пользователя к вводу. При каждом переименовании
>     Emacs будет спрашивать, что ему вставить вместо \?
> 
> При первом переименовании Emacs спросит
> 
> image
> 
> Стоит отметить, что переименовываться будут только те файлы из
> выделенных чье имя соответствует регулярному выражению введенному сразу
> после % R
> 
> Можно нажимать y/n, соглашаясь или отказываясь переименовывать файл.
> Emacs перейдет к следующему. Можно нажать ! (то есть Shift 1),
> заставив Emacs пробежаться по всем отмеченным файлам, либо можно
> закончить всю операцию по переименованию нажав q.
> 
> image
> 
> Легко и просто файлы переименованы.


© Gazlan 2011 * gazlan@yandex.ru

Hit Counter