Вперед Назад Содержание

6. ДИАЛОГОВОЕ ИСПОЛЬЗОВАНИЕ ИСТОРИИ.

В зтой главе описывается, как использовать библиотеку истории GNU в диалоговом режиме со стандартного места пользователя. Для получения информации об использовании библиотеки истории GNU в ваших программах см. руководство для пользователя библиотекой Readline GNU.

6.1 Диалог истории.

Библиотека истории обеспечивает возможности расширения истории, подобные тем, что обеспечиваются csh. Нижеследующее описывает синтаксис, используемый для манипулирования информацией истории.

Расширение истории состоит из двух частей. Первая определяет, какая строка предыдущей истории будет использоваться во время замены. Вторая выбирает фрагменты зтой строки для включения в текущую. Строка, выбранная из предыдущей истории, называется событием, а выбранные затем фрагменты этой строки называются словами. Строка разбита на слова так же, как и в Bash, и эти английские слова (или слова Unix) берутся в кавычки и рассматриваются как одно слово.

Обозначение события.

Обозначение события - ссылка на командную строку, занесенную в список истории.

!

начинает замену истории, за исключением случая, когда следует после пробела, табуляции, =, ( или в начале новой строки.

!!

ссылается на предыдущую команду. Это синоним !-1.

!n

ссылается на командную строку n.

!-n

ссылается на команду, расположенную n строк назад.

!строка

cсылается на самую новую по времени команду, начинающуюся со "строки".

!? строка [?]

cсылается на самую новую команду, содержащую "строку".

!#

вся командная строка, напечатанная в то время.

^string1^string2^

Быстрая замена. Повторяет последнюю команду, заменяющую строку1 строкой2. Зквивалентно !!:s/string1/string2/.

Обозначения слова.

А: отделяет упоминание события от обозначения слова. Может пропускаться, когда обозначение слова начинается с a^, $, * или %. Cлова пронумерованы с начала строки начиная с первого слова (т.н. нулевого).

0

нулевое слово - командное слово для большинства приложений.

n

n-e слово.

^

первый аргумент - слово номер 1.

$

последний аргумент.

%

слово, соответствующее самому последнему поиску ?string?.

x-y

ряд слов: -y является cокращением 0-y.

*

Все слова, за исключением 0-го. Зто синоним 1-$. Не является ошибкой использование *, даже если в событии всего одно слово. В зтом случае возвращается пустая строка.

x*

сокращение x-$.

x-

то же, что x-$ и x*, но ислючается последнее слово.

Модификаторы.

К опционному обозначению слова можно добавить один или более следующих модификаторов, каждому из которых предшествует а:

h

удаляет конечный компонент составного имени, оставляя только начало.

r

удаляет конечный суффикс, оставляя основное имя.

е

удаляет все, кроме конечного суффикса.

t

удаляет все ведущие компоненты составного имени, оставляя хвост.

p

выводит новую команду, но не выполняет ее.

q

заключает в кавычки замененные слова во избежание дальнейших присваиваний.

x

заключает в кавычки замененные слова, как при поммощи q, но входит в слова на табуляциях, пробелах и в начале новой строки.

s÷old÷new

Заменяет new на первое появление old в строке события. На месте / можно использовать любой разграничитель. Он должен быть заключен между old и new с помощью единственного backslash. Если в new возникает &, он заменяется на old. Единственный backslash заключает &. Конечный разграничитель опционный, если зто последний символ строки ввода.

&

Повторяет предыдущее присваивание.

g

Вызывает изменения не только в одной строке событий. Используется в сочетании с s, как в gs/old/new/, или с &.


Вперед Назад Содержание