Редактирование: UNИX, весна 2008, 09 лекция (от 09 апреля)

Материал из eSyr's wiki.

Перейти к: навигация, поиск

Внимание: Вы не представились системе. Ваш IP-адрес будет записан в историю изменений этой страницы.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.

Текущая версия Ваш текст
Строка 26: Строка 26:
Что ещё можно вспомнить из команд редактирования? Лектор не знает, есть ли это в баше, но в zsh есть фича, которая позволяет сделать inplace file name generation. Для чего это нужно: чтобы ручками подредактировать, например, когда мы хотим применить какую-то команду ко всем файлам,оканчивающимся на .c, кроме одного. Тогда после раскрытия шаблона *.c можно из него его удалить.
Что ещё можно вспомнить из команд редактирования? Лектор не знает, есть ли это в баше, но в zsh есть фича, которая позволяет сделать inplace file name generation. Для чего это нужно: чтобы ручками подредактировать, например, когда мы хотим применить какую-то команду ко всем файлам,оканчивающимся на .c, кроме одного. Тогда после раскрытия шаблона *.c можно из него его удалить.
-
Ещё одна главная вещь: достраивание. Допустим, мы хотим открыть файл /usr/share/doc/voodoo/README. В командной строчке никому не хочется писать имя файла длиной в пять шагов. поэтому, вместо этого можно использовать шаблон, который сам по себе короче, но раскроется в итоге в один этот файл: /u*/sh*/doc/vo*/RE*. Но какая проблема с таким filename generation? Проблемы две: строчка /u*/sh*/doc/vo*/RE* читается намноого хуже. Второе --- не факт, что этому шаблону удовлетворяет всего один файл. Но помнить имена всех файлов во всех каталогах человеку невозможно. Поэтому неплохо бы процесс раскрытия шаблона контролировать. Делается это следующим образом: пока набираем, нажали таб и шелл в этом месте достроил. Это то самое, о чём всегда мечтали. При этом процесс контроллируемый и последовательный. Это резко отличается от того, когда написали шаблон и посмотрели, что получается. Кроме того, могут быть ветвления. Эта проблема процедурой достраивания также решается. Если упираетесь в ветвление, например, если в /usr/share/doc есть каталоги voodoo и voobla, то он достроит voo и пискнет. А дальше, в зависимости от крутизны шелла, могут быть варианты. Может быть сразу начнёт перебирать варианты, может после второго шага, может список показать. Так или иначе, ответственность за набираемое переваливается на пользователя, ибо думать должен человек, а не машина. И человек уже решает, что строить дальше.
+
Ещё одна главная вещь: достраивание. Допустим, мы хотим открыть файл /usr/share/doc/voodoo/README. В командной строчке никому не хочется писать имя файла длиной в пять шагов. поэтому, вместо этого можно использовать шаблон, который сам по себе короче, но раскроется в итоге в один этот файл: /u*/sh*/doc/vo*/RE*. Но какая проблема с таким FNG? Проблемы две: строчка /u*/sh*/doc/vo*/RE* читается намноого хуже. Второе --- не факт, что этому шаблону удовлетворяет всего один файл. Но помнить имена всех файлов во всех каталогах человеку невозможно. Поэтому неплохо бы процесс раскрытия шаблона контролировать. Делается это следующим образом: пока набираем, нажали таб и шелл в этом месте достроил. Это то самое, о чём всегда мечтали. При этом процесс контроллируемый и последовательный. Это резко отличается от того, когда написали шаблон и посмотрели, что получается. Кроме того, могут быть ветвления. Эта проблема процедурой достраивания также решается. Если упираетесь в ветвление, например, если в /usr/share/doc есть каталоги voodoo и voobla, то он достроит voo и пискнет. А дальше, в зависимости от крутизны шелла, могут быть варианты. Может быть сразу начнёт перебирать варианты, может после второго шага, может список показать. Так или иначе, ответственность за набираемое переваливается на пользователя, ибо думать должен человек, а не машина. И человек уже решает, что строить дальше.
Использование достраивание сокращает время набора строчки в разы. Кроме того поведение достраивания в случае неоднозначности настраиваемо. По умолчанию баш пищит, потом перебирать начинает.
Использование достраивание сокращает время набора строчки в разы. Кроме того поведение достраивания в случае неоднозначности настраиваемо. По умолчанию баш пищит, потом перебирать начинает.

Пожалуйста, обратите внимание, что все ваши добавления могут быть отредактированы или удалены другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. eSyr's_wiki:Авторское право).
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

Личные инструменты
Разделы