The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Включение контексно зависимых completions в bash и zsh (shell)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: shell,  (найти похожие документы)
Date: Sat, 6 Apr 2002 20:12:56 +0000 (UTC) From: Anton Kovalenko <a_kovalenko@fromru.com> Newsgroups: fido7.ru.linux Subject: Включение контексно зависимых completions в bash и zsh TG> А нельзя вкратце описать наиболее продвинутые фичи zsh, TG> например перед везде по умолчанию имеющейся /bin/bash ? Я TG> Completion вообще люблю, а тут она говорите еще и продвинутая TG> :) Интересно, но прежде ставить надо понять ради TG> чего. Спасибо. Постараюсь, насколько смогу. В настоящее время и bash, и zsh поддерживают настраиваемые (программируемые) правила completions. Польза от такой хрени очевидна: появляется возможность, в зависимости от контекста, "комплетить" тему команды man, опции различных утилит, имена файлов/каталогов, url, target'ы makefile'ов, точки монтирования, опции ./configure и многое другое.. Полезен также отбор файлов по суффиксу в зависимости от вызываемой утилиты: например, когда делаешь что-то в LaTeX, у тебя часто оказываются лежащие рядом файлы prikol.tex, prikol.aux, prikol.log, prikol.dvi, prikol.ps. Приятно, когда делаешь gv pr<Tab>, сразу получить prikol.ps, а когда делаешь xdvi pr<Tab>, получить prikol.dvi. Различие bash и zsh в области completions состоит из трех пунктов: 1) Что и как работает "из коробки". Так как в zsh программируемые completions появились несколько раньше, чем в bash, то и напрограммировать их успели несколько больше, и, я бы сказал, несколько более аккуратно. Конечно, настоящему индейцу такие мелочи не важны; возможно также, что, посмотрев на zsh, ты пересядешь обратно на bash и сделаешь там еще более удобные completions. Общественность скажет тебе спасибо. Но для того, чтобы понять, насколько удобны бывают completions, zsh подходит лучше. 2) Как они программируются. В обоих shell'ах поддерживается программирование completions с помощью команды compctl. Но в zsh этот способ не является единственным -- в man zshcompsys можно прочитать о более высокоуровневых средствах. Поэтому написать или поправить completions для себя тебе будет проще именно в zsh. 3) Как они выглядят. Этот пункт сильно связан с индивидуальными предпочтениями пользователя, поэтому для тебя эти различия могут вообще не иметь значения, или говорить в пользу bash. Но я обещал описать основные различия, так что вот: * В zsh, если список вариантов завершения умещается на экране, он отображается _под редактируемой командной строкой_. * В zsh одинарный <Tab> приводит к выводу списка вариантов, в bash - двойной (одинарный "срабатывает" только в случае однозначного завершения). * В zsh есть completions с подсказкой (например, выводятся возможные опции команды с кратким описанием каждой). В bash я такого не видел, и как сделать, не понял. * В zsh повторные нажатия <Tab> последовательно перебирают варианты completions. Если соберешься-таки посмотреть на zsh, имей в виду несколько вещей, чтобы не испугаться раньше времени: 1) Эти знаменитые completions надо сначала загрузить. Через autoload -U compinit compinit (Всё это можно прописать в .zshrc) 2) Если пускать zsh "на посмотреть" из-под bash, можно увидеть некрасивое приглашение типа \u@\h:\w\$. Это потому, что переменная PS1 интерпретируется по-разному в bash и zsh. Делай unset PS1 перед экспериментами, или пропиши в .zshrc PS1=что-надо. 3) Если у тебя $EDITOR содержит vi, zsh будет работать с vi-образными клавиатурными командами; дело вкуса, конечно, но в shell'е мне привычнее emacs-образный безрежимный подход. Скорми zsh команду bindkey -e, если тебе так тоже привычнее. 4) man'ы по zsh состоят из нескольких разделов. man zshall -- огромный текст, который содержит их все. run-help <команда> отправит тебя в тот man, где описана команда, будь это встроенная команда zsh или обычная прога. -- Удачи! Антон Коваленко /* http://softlenin.chat.ru */

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру