<?xml version="1.0" encoding="windows-1251"?>
<rss version="2.0">
<channel>
<title>FreeSource - AltLinux/DotFiles/Shells/Zsh/Советы</title>
<link>http://freesource.info/wiki/AltLinux/DotFiles/Shells/Zsh/Советы</link>
<description>History/revisions of FreeSource/AltLinux/DotFiles/Shells/Zsh/Советы</description>
<language>en-us</language>
<item>
<title>2006-08-29 15:35:02</title>
<link>http://freesource.info/wiki/AltLinux/DotFiles/Shells/Zsh/Sovety/show?time=2006-08-29+15%3A35%3A02</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a name=".altlinux.dotfiles.shells.zsh.sovety" href="http://freesource.info/wiki/AltLinux/DotFiles/Shells/Zsh/Sovety&amp;" class="">/Alt&amp;nbsp;Linux&amp;nbsp;/&amp;nbsp;Dot&amp;nbsp;Files&amp;nbsp;/&amp;nbsp;Shells&amp;nbsp;/&amp;nbsp;Zsh&amp;nbsp;/&amp;nbsp;Советы&lt;/a> за &lt;a href="http://freesource.info/wiki/AltLinux/DotFiles/Shells/Zsh/Sovety?time=2006-08-29+15%3A35%3A02">2006-08-29 15:35:02&lt;/a> и &lt;a href="http://freesource.info/wiki/AltLinux/DotFiles/Shells/Zsh/Sovety">2006-08-29 15:41:46&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;div class="action" style="float:right; width:250px">&lt;div class="action-content">Эта&amp;nbsp;страница была перенесена на&amp;nbsp;&lt;a href="http://altlinux.org/DotFiles/Shells/Zsh/%D1%EE%E2%E5%F2%FB" target="_blank" title="" class="outerlink">altlinux.org&lt;/a>. Текст на&amp;nbsp;freesource.info заморожен.&lt;/div>&lt;/div>&lt;br />
Иногда при&amp;nbsp;вводе команд или&amp;nbsp;путей мы&amp;nbsp;допускаем ошибки. Причем не&amp;nbsp;очень серьезные, как&amp;nbsp;правило, это&amp;nbsp;опечатки. В&amp;nbsp;zsh есть способ, как&amp;nbsp;быстро разрешать подобные ситуации &amp;mdash; автокоррекция команд. Включаем её:&lt;br />
&lt;!--notypo-->&lt;textarea class="code" rows="2" readonly="readonly">setopt CORRECT_ALL&lt;/textarea>&lt;!--/notypo-->&lt;br />
После этого, если вы&amp;nbsp;введёте &lt;tt>sl&lt;/tt> вместо &lt;tt>ls&lt;/tt> и&amp;nbsp;&lt;tt>/urs&lt;/tt> вместо &lt;tt>/usr&lt;/tt>, то&amp;nbsp;zsh укажет вам, что&amp;nbsp;вы&amp;nbsp;ошиблись. В&amp;nbsp;ваших руках также возможность настроить запрос на&amp;nbsp;коррекцию, для&amp;nbsp;этого достаточно присвоить нужное значение переменной &lt;strong>SPROMPT&lt;/strong> Вот, к&amp;nbsp;примеру, как&amp;nbsp;это настроено у&amp;nbsp;меня:&lt;br />
Взгляните на&amp;nbsp;результат:&lt;br />
[slava@semushin ]$ sl&amp;nbsp;/urs&lt;br />
Ошибка! Вы&amp;nbsp;хотели ввести ls&amp;nbsp;вместо sl? ([Y]es/[N]o/[E]dit/[A]bort) y&lt;br />
Ошибка! Вы&amp;nbsp;хотели ввести /usr вместо /urs? ([Y]es/[N]o/[E]dit/[A]bort) y&lt;br />
bin&amp;nbsp;etc  games  include  lib&amp;nbsp;libexec  local  sbin  share  src&amp;nbsp;tmp  X11R6&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">Иногда при&amp;nbsp;вводе команд мы&amp;nbsp;допускам ошибки. Причем не&amp;nbsp;очень серьезные. В&amp;nbsp;zsh есть способ, как&amp;nbsp;быстро возможно разрешать подобные ситуации &amp;mdash; автокоррекция команд. Включаем ее:&lt;br />
&lt;!--notypo-->&lt;textarea class="code" rows="2" readonly="readonly">setopt CORRECT&lt;/textarea>&lt;!--/notypo-->&lt;br />
После этого, если вы&amp;nbsp;введете &lt;tt>sl&lt;/tt> вместо &lt;tt>ls&lt;/tt>, то&amp;nbsp;zsh вежливо поинтересуется, не&amp;nbsp;желаете ли&amp;nbsp;вы ввести ls&amp;nbsp;вместо sl.&lt;br />
Но&amp;nbsp;это еще&amp;nbsp;не&amp;nbsp;все. В&amp;nbsp;ваших руках даже возможность настроить запрос на&amp;nbsp;коррекцию, для&amp;nbsp;этого достаточно присвоить нужное значение переменной &lt;strong>SPROMPT&lt;/strong> Вот, к&amp;nbsp;примеру, как&amp;nbsp;это настроено у&amp;nbsp;меня:&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2006-07-25 07:49:05</title>
<link>http://freesource.info/wiki/AltLinux/DotFiles/Shells/Zsh/Sovety/show?time=2006-07-25+07%3A49%3A05</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/AltLinux/DotFiles/Shells/Zsh/Sovety&amp;" class="">/Alt&amp;nbsp;Linux&amp;nbsp;/&amp;nbsp;Dot&amp;nbsp;Files&amp;nbsp;/&amp;nbsp;Shells&amp;nbsp;/&amp;nbsp;Zsh&amp;nbsp;/&amp;nbsp;Советы&lt;/a> за &lt;a href="http://freesource.info/wiki/AltLinux/DotFiles/Shells/Zsh/Sovety?time=2006-07-25+07%3A49%3A05">2006-07-25 07:49:05&lt;/a> и &lt;a href="http://freesource.info/wiki/AltLinux/DotFiles/Shells/Zsh/Sovety?time=2006-08-29+15%3A35%3A02">2006-08-29 15:35:02&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;!--notypo-->&lt;textarea class="code" rows="2" readonly="readonly">PROMPT=&amp;quot;%n@%m %~ %(!.#.$) &amp;quot;&lt;/textarea>&lt;!--/notypo-->&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">&lt;!--notypo-->&lt;textarea class="code" rows="2" readonly="readonly">PROMPT=&amp;quot;%n@%m %3~ %(!.#.$) &amp;quot;&lt;/textarea>&lt;!--/notypo-->&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2006-07-25 02:21:25</title>
<link>http://freesource.info/wiki/AltLinux/DotFiles/Shells/Zsh/Sovety/show?time=2006-07-25+02%3A21%3A25</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/AltLinux/DotFiles/Shells/Zsh/Sovety&amp;" class="">/Alt&amp;nbsp;Linux&amp;nbsp;/&amp;nbsp;Dot&amp;nbsp;Files&amp;nbsp;/&amp;nbsp;Shells&amp;nbsp;/&amp;nbsp;Zsh&amp;nbsp;/&amp;nbsp;Советы&lt;/a> за &lt;a href="http://freesource.info/wiki/AltLinux/DotFiles/Shells/Zsh/Sovety?time=2006-07-25+02%3A21%3A25">2006-07-25 02:21:25&lt;/a> и &lt;a href="http://freesource.info/wiki/AltLinux/DotFiles/Shells/Zsh/Sovety?time=2006-07-25+07%3A49%3A05">2006-07-25 07:49:05&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;!--notypo-->{{TableOfContents page="" title="" numerate=""}}&lt;!--/notypo-->&lt;br />
Это, пожалуй, самая известная и&amp;nbsp;частоиспользуемая в&amp;nbsp;zsh функция, выгодно отличающая его&amp;nbsp;от&amp;nbsp;других командных интерпретаторов. Помимо простого дополнения имен и&amp;nbsp;путей к&amp;nbsp;файлам zsh&amp;nbsp;также способен дополнять опции к&amp;nbsp;командам (попробуйте, к&amp;nbsp;примеру, &lt;tt>find . -na&amp;lt;Tab&amp;gt; -s&amp;lt;Tab&amp;gt;&lt;/tt>), названия страниц руководств (&lt;tt>man chkc&amp;lt;Tab&amp;gt;&lt;/tt> дополнится до&amp;nbsp;man chkconfig) и&amp;nbsp;раскрывать сокращенные пути (к примеру, &lt;tt>/mn/o/d/a&amp;lt;Tab&amp;gt;&lt;/tt> раскрывается до&amp;nbsp;/mnt/other/distrib/alt).&lt;br />
По&amp;nbsp;умолчанию автодополнение для&amp;nbsp;&lt;tt>kill&lt;/tt> и&amp;nbsp;&lt;tt>killall&lt;/tt> не&amp;nbsp;показывает процессы без&amp;nbsp;controlling tty&amp;nbsp;(для всех пользователей кроме root). Устраняем этот недостаток и&amp;nbsp;дополнительно добавляем &amp;laquo;красоты&amp;raquo;:&lt;br />
&lt;!--notypo-->&lt;textarea class="code" rows="2" readonly="readonly">PROMPT=&amp;quot;%n@%m %3~ %(!.#.$) &amp;quot;&lt;/textarea>&lt;!--/notypo-->&lt;br />
&amp;laquo;Zsh позволяет производить рекурсивное раскрытие имен файлов. Для&amp;nbsp;этого используются формы &lt;tt>**/ &lt;/tt> и&amp;nbsp;&lt;tt>***/&lt;/tt> Первая форма отличается от&amp;nbsp;второй лишь тем, что&amp;nbsp;не&amp;nbsp;следует по&amp;nbsp;символьным ссылкам. Так, например&lt;br />
произведет поиск файлов с&amp;nbsp;именем foo&amp;nbsp;во&amp;nbsp;всех подкаталогах.&amp;raquo;&lt;sup>&lt;a href="#oftn1" name="ftn1">*&lt;/a>&lt;/sup>&lt;br />
&lt;!--notypo-->&lt;textarea class="code" rows="2" readonly="readonly">SPROMPT=&amp;quot;Ошибка! Вы хотели ввести %r вместо %R? ([Y]es/[N]o/[E]dit/[A]bort) &amp;quot;&lt;/textarea>&lt;!--/notypo-->&lt;br />
&lt;div class="indent">precmd(){print -Pn "\e]0;%n@%m: %\a&amp;quot;}&lt;/div>
Здесь проверяется значение переменной &lt;tt>$TERM&lt;/tt>, и&amp;nbsp;если оно&amp;nbsp;равно rxvt или&amp;nbsp;начинается с&amp;nbsp;xterm, то&amp;nbsp;выполняется действие. В&amp;nbsp;частности, задается функция, которая и&amp;nbsp;выводит строку, похожую на&amp;nbsp;приглашение, в&amp;nbsp;заголовок окна. Функция &lt;strong>precmd()&lt;/strong> выполняется каждый раз&amp;nbsp;перед выводом приглашения. Также вы&amp;nbsp;можете использовать функцию &lt;strong>preexec()&lt;/strong>, которая выполняется перед запуском любой программы, и&amp;nbsp;&lt;strong>chpwd()&lt;/strong>, которая &amp;laquo;вызывается при&amp;nbsp;изменении рабочего каталога. [...] Кроме того, может быть определена функция &lt;strong>periodic&lt;/strong>, которая может выполнятся через каждые &lt;tt>$PERIOD&lt;/tt> (если этот параметр определен) секунд перед выводом приглашения.&amp;raquo;&lt;sup>&lt;a href="#oftn1" name="ftn1">*&lt;/a>&lt;/sup>&lt;br />
&lt;!--notypo-->&lt;textarea class="code" rows="2" readonly="readonly">preexec(){print -Pn &amp;quot;\e]0;$0\a&amp;quot;}&lt;/textarea>&lt;!--/notypo-->&lt;br />
bindkey    "^[[A" history-beginning-search-backward&lt;br />
bindkey -a "^[[A" history-beginning-search-backward&lt;br />
bindkey    "^[[B" history-beginning-search-forward&lt;br />
bindkey -a "^[[B" history-beginning-search-forward&lt;!--notypo-->&lt;textarea class="code" rows="4" readonly="readonly">===&amp;quot;Магический&amp;quot; поиск в истории команд===
bindkey &amp;quot;^X^Z&amp;quot; predict-on # C-x C-z
bindkey &amp;quot;^Z&amp;quot; predict-off # C-z&lt;/textarea>&lt;!--/notypo-->&lt;br />
%%hosts=(${${${(f)"$(&amp;lt;$HOME/.ssh/known_hosts)"}% %\ *}% %,*}) &amp;lt;&lt;hr noshade="noshade" size="1" /> пробелы между "% %" убрать.
Однако этот способ имеет несколько неисправимых преимуществ.  Более &amp;laquo;кошерный&amp;raquo; вариант предложен в&amp;nbsp;виде патча &lt;a href="https://bugzilla.altlinux.org/show_bug.cgi?id=5429" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />здесь&lt;/a>.&lt;br />
Можно настроить и&amp;nbsp;локально, для&amp;nbsp;&amp;laquo;себя любимого&amp;raquo;. Для&amp;nbsp;этого:&lt;br />
&lt;ul>&lt;li> &lt;a href="http://linuxshop.ru/unix4all/?cid=26&amp;amp;id=209" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />http://linuxshop.ru/unix4all/?cid=26&amp;amp;id=209&lt;/a>&lt;/li>&lt;/ul>&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">&lt;!--notypo-->{{TableOfContents page= title= numerate=}}&lt;!--/notypo-->&lt;br />
Это, пожалуй, самая известная и&amp;nbsp;частоиспользуемая в&amp;nbsp;zsh функция, выгодно отличающая его&amp;nbsp;от&amp;nbsp;других командных интерпретаторов. Помимо простого дополнения имен и&amp;nbsp;путей к&amp;nbsp;файлам zsh&amp;nbsp;также способен дополнять опции к&amp;nbsp;командам (попробуйте, к&amp;nbsp;примеру, &lt;tt>find . -na&amp;lt;Tab&amp;gt; -s&amp;lt;Tab&amp;gt;&lt;/tt>), названия страниц руководств (&lt;tt>man chkc&amp;lt;Tab&amp;gt;&lt;/tt> дополнится до&amp;nbsp;man chkconfig) и&amp;nbsp;раскрывать сокращенные пути (к примеру, &lt;tt>/mn/o/d/a&amp;lt;Tab&amp;gt;&lt;/tt> раскрывается до&amp;nbsp;/mnt/other/distrib/alt).&lt;br />
По&amp;nbsp;умолчанию автодополнение для&amp;nbsp;&lt;tt>kill&lt;/tt> и&amp;nbsp;&lt;tt>killall&lt;/tt> не&amp;nbsp;показывает процессы без&amp;nbsp;controlling tty&amp;nbsp;(для всех пользователей кроме root). Устраняем этот недостаток и&amp;nbsp;дополнительно добавляем &amp;quot;красоты&amp;quot;:&lt;br />
&lt;!--notypo-->&lt;textarea class="code" rows="2" readonly="readonly">PROMPT=&amp;amp;quot;%n@%m %3~ %(!.#.$) &amp;amp;quot;&lt;/textarea>&lt;!--/notypo-->&lt;br />
&amp;quot;Zsh позволяет производить рекурсивное раскрытие имен файлов. Для&amp;nbsp;этого используются формы &lt;tt>**/ &lt;/tt> и&amp;nbsp;&lt;tt>***/&lt;/tt> Первая форма отличается от&amp;nbsp;второй лишь тем, что&amp;nbsp;не&amp;nbsp;следует по&amp;nbsp;символьным ссылкам. Так, например&lt;br />
произведет поиск файлов с&amp;nbsp;именем foo&amp;nbsp;во&amp;nbsp;всех подкаталогах.&amp;quot;&lt;sup>&lt;a href="#oftn1" name="ftn1">*&lt;/a>&lt;/sup>&lt;br />
&lt;!--notypo-->&lt;textarea class="code" rows="2" readonly="readonly">SPROMPT=&amp;amp;quot;Ошибка! Вы хотели ввести %r вместо %R? ([Y]es/[N]o/[E]dit/[A]bort) &amp;amp;quot;&lt;/textarea>&lt;!--/notypo-->&lt;br />
&lt;div class="indent">precmd(){print -Pn &amp;quot;\e]0;%n@%m: %\a&amp;amp;quot;}&lt;/div>
Здесь проверяется значение переменной &lt;tt>$TERM&lt;/tt>, и&amp;nbsp;если оно&amp;nbsp;равно rxvt или&amp;nbsp;начинается с&amp;nbsp;xterm, то&amp;nbsp;выполняется действие. В&amp;nbsp;частности, задается функция, которая и&amp;nbsp;выводит строку, похожую на&amp;nbsp;приглашение, в&amp;nbsp;заголовок окна. Функция &lt;strong>precmd()&lt;/strong> выполняется каждый раз&amp;nbsp;перед выводом приглашения. Также вы&amp;nbsp;можете использовать функцию &lt;strong>preexec()&lt;/strong>, которая выполняется перед запуском любой программы, и&amp;nbsp;&lt;strong>chpwd()&lt;/strong>, которая &amp;quot;вызывается при&amp;nbsp;изменении рабочего каталога. [...] Кроме того, может быть определена функция &lt;strong>periodic&lt;/strong>, которая может выполнятся через каждые &lt;tt>$PERIOD&lt;/tt> (если этот параметр определен) секунд перед выводом приглашения.&amp;quot;&lt;sup>&lt;a href="#oftn1" name="ftn1">*&lt;/a>&lt;/sup>&lt;br />
&lt;!--notypo-->&lt;textarea class="code" rows="2" readonly="readonly">preexec(){print -Pn &amp;amp;quot;\e]0;$0\a&amp;amp;quot;}&lt;/textarea>&lt;!--/notypo-->&lt;br />
bindkey    &amp;quot;^[[A&amp;quot; history-beginning-search-backward&lt;br />
bindkey -a &amp;quot;^[[A&amp;quot; history-beginning-search-backward&lt;br />
bindkey    &amp;quot;^[[B&amp;quot; history-beginning-search-forward&lt;br />
bindkey -a &amp;quot;^[[B&amp;quot; history-beginning-search-forward&lt;!--notypo-->&lt;textarea class="code" rows="4" readonly="readonly">===&amp;amp;quot;Магический&amp;amp;quot; поиск в истории команд===
bindkey &amp;amp;quot;^X^Z&amp;amp;quot; predict-on # C-x C-z
bindkey &amp;amp;quot;^Z&amp;amp;quot; predict-off # C-z&lt;/textarea>&lt;!--/notypo-->&lt;br />
%%hosts=(${${${(f)&amp;quot;$(&amp;lt;$HOME/.ssh/known_hosts)&amp;quot;}% %\ *}% %,*}) &amp;lt;&lt;hr noshade="noshade" size="1" /> пробелы между &amp;quot;% %&amp;quot; убрать.
Однако этот способ имеет несколько неисправимых преимуществ.  Более &amp;quot;кошерный&amp;quot; вариант предложен в&amp;nbsp;виде патча &lt;a href="https://bugzilla.altlinux.org/show_bug.cgi?id=5429" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />здесь&lt;/a>.&lt;br />
Можно настроить и&amp;nbsp;локально, для&amp;nbsp;&amp;quot;себя любимого&amp;quot;. Для&amp;nbsp;этого:&lt;br />
&lt;ul>&lt;li> &lt;a href="http://linuxshop.ru/unix4all/?cid=26&amp;amp;id=209" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />http://linuxshop.ru/unix4all/?cid=26&amp;amp;amp;id=209&lt;/a>&lt;/li>&lt;/ul>&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2006-07-25 02:21:24</title>
<link>http://freesource.info/wiki/AltLinux/DotFiles/Shells/Zsh/Sovety/show?time=2006-07-25+02%3A21%3A24</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/AltLinux/DotFiles/Shells/Zsh/Sovety&amp;" class="">/Alt&amp;nbsp;Linux&amp;nbsp;/&amp;nbsp;Dot&amp;nbsp;Files&amp;nbsp;/&amp;nbsp;Shells&amp;nbsp;/&amp;nbsp;Zsh&amp;nbsp;/&amp;nbsp;Советы&lt;/a> за &lt;a href="http://freesource.info/wiki/AltLinux/DotFiles/Shells/Zsh/Sovety?time=2006-07-25+02%3A21%3A24">2006-07-25 02:21:24&lt;/a> и &lt;a href="http://freesource.info/wiki/AltLinux/DotFiles/Shells/Zsh/Sovety?time=2006-07-25+02%3A21%3A25">2006-07-25 02:21:25&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;!--notypo-->{{watchers}}&lt;!--/notypo-->&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">&lt;!--notypo-->{{watchers}}&lt;!--/notypo-->&amp;lt;div style="abc"&amp;gt;123&amp;lt;/div&amp;gt; &lt;!--notypo-->&amp;lt;div style=&amp;quot;bcd&amp;quot;&amp;gt;456&amp;lt;/div&amp;gt;&lt;!--/notypo--> [&lt;a href="http://google.com" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />http://google.com&lt;/a> SE&amp;nbsp;Google] &lt;a href="http://yahoo.com" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />SE Yahoo&lt;/a>&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2006-01-19 18:17:04</title>
<link>http://freesource.info/wiki/AltLinux/DotFiles/Shells/Zsh/Sovety/show?time=2006-01-19+18%3A17%3A04</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/AltLinux/DotFiles/Shells/Zsh/Sovety&amp;" class="">/Alt&amp;nbsp;Linux&amp;nbsp;/&amp;nbsp;Dot&amp;nbsp;Files&amp;nbsp;/&amp;nbsp;Shells&amp;nbsp;/&amp;nbsp;Zsh&amp;nbsp;/&amp;nbsp;Советы&lt;/a> за &lt;a href="http://freesource.info/wiki/AltLinux/DotFiles/Shells/Zsh/Sovety?time=2006-01-19+18%3A17%3A04">2006-01-19 18:17:04&lt;/a> и &lt;a href="http://freesource.info/wiki/AltLinux/DotFiles/Shells/Zsh/Sovety?time=2006-07-25+02%3A21%3A24">2006-07-25 02:21:24&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;!--notypo-->{{TableOfContents page= title= numerate=}}&lt;!--/notypo-->&lt;br />
Это, пожалуй, самая известная и&amp;nbsp;частоиспользуемая в&amp;nbsp;zsh функция, выгодно отличающая его&amp;nbsp;от&amp;nbsp;других командных интерпретаторов. Помимо простого дополнения имен и&amp;nbsp;путей к&amp;nbsp;файлам zsh&amp;nbsp;также способен дополнять опции к&amp;nbsp;командам (попробуйте, к&amp;nbsp;примеру, &lt;tt>find . -na&amp;lt;Tab&amp;gt; -s&amp;lt;Tab&amp;gt;&lt;/tt>), названия страниц руководств (&lt;tt>man chkc&amp;lt;Tab&amp;gt;&lt;/tt> дополнится до&amp;nbsp;man chkconfig) и&amp;nbsp;раскрывать сокращенные пути (к примеру, &lt;tt>/mn/o/d/a&amp;lt;Tab&amp;gt;&lt;/tt> раскрывается до&amp;nbsp;/mnt/other/distrib/alt).&lt;br />
По&amp;nbsp;умолчанию автодополнение для&amp;nbsp;&lt;tt>kill&lt;/tt> и&amp;nbsp;&lt;tt>killall&lt;/tt> не&amp;nbsp;показывает процессы без&amp;nbsp;controlling tty&amp;nbsp;(для всех пользователей кроме root). Устраняем этот недостаток и&amp;nbsp;дополнительно добавляем &amp;quot;красоты&amp;quot;:&lt;br />
&lt;!--notypo-->&lt;textarea class="code" rows="2" readonly="readonly">PROMPT=&amp;amp;quot;%n@%m %3~ %(!.#.$) &amp;amp;quot;&lt;/textarea>&lt;!--/notypo-->&lt;br />
&amp;quot;Zsh позволяет производить рекурсивное раскрытие имен файлов. Для&amp;nbsp;этого используются формы &lt;tt>**/ &lt;/tt> и&amp;nbsp;&lt;tt>***/&lt;/tt> Первая форма отличается от&amp;nbsp;второй лишь тем, что&amp;nbsp;не&amp;nbsp;следует по&amp;nbsp;символьным ссылкам. Так, например&lt;br />
произведет поиск файлов с&amp;nbsp;именем foo&amp;nbsp;во&amp;nbsp;всех подкаталогах.&amp;quot;&lt;sup>&lt;a href="#oftn1" name="ftn1">*&lt;/a>&lt;/sup>&lt;br />
&lt;!--notypo-->&lt;textarea class="code" rows="2" readonly="readonly">SPROMPT=&amp;amp;quot;Ошибка! Вы хотели ввести %r вместо %R? ([Y]es/[N]o/[E]dit/[A]bort) &amp;amp;quot;&lt;/textarea>&lt;!--/notypo-->&lt;br />
&lt;div class="indent">precmd(){print -Pn &amp;quot;\e]0;%n@%m: %\a&amp;amp;quot;}&lt;/div>
Здесь проверяется значение переменной &lt;tt>$TERM&lt;/tt>, и&amp;nbsp;если оно&amp;nbsp;равно rxvt или&amp;nbsp;начинается с&amp;nbsp;xterm, то&amp;nbsp;выполняется действие. В&amp;nbsp;частности, задается функция, которая и&amp;nbsp;выводит строку, похожую на&amp;nbsp;приглашение, в&amp;nbsp;заголовок окна. Функция &lt;strong>precmd()&lt;/strong> выполняется каждый раз&amp;nbsp;перед выводом приглашения. Также вы&amp;nbsp;можете использовать функцию &lt;strong>preexec()&lt;/strong>, которая выполняется перед запуском любой программы, и&amp;nbsp;&lt;strong>chpwd()&lt;/strong>, которая &amp;quot;вызывается при&amp;nbsp;изменении рабочего каталога. [...] Кроме того, может быть определена функция &lt;strong>periodic&lt;/strong>, которая может выполнятся через каждые &lt;tt>$PERIOD&lt;/tt> (если этот параметр определен) секунд перед выводом приглашения.&amp;quot;&lt;sup>&lt;a href="#oftn1" name="ftn1">*&lt;/a>&lt;/sup>&lt;br />
&lt;!--notypo-->&lt;textarea class="code" rows="2" readonly="readonly">preexec(){print -Pn &amp;amp;quot;\e]0;$0\a&amp;amp;quot;}&lt;/textarea>&lt;!--/notypo-->&lt;br />
bindkey    &amp;quot;^[[A&amp;quot; history-beginning-search-backward&lt;br />
bindkey -a &amp;quot;^[[A&amp;quot; history-beginning-search-backward&lt;br />
bindkey    &amp;quot;^[[B&amp;quot; history-beginning-search-forward&lt;br />
bindkey -a &amp;quot;^[[B&amp;quot; history-beginning-search-forward&lt;!--notypo-->&lt;textarea class="code" rows="4" readonly="readonly">===&amp;amp;quot;Магический&amp;amp;quot; поиск в истории команд===
bindkey &amp;amp;quot;^X^Z&amp;amp;quot; predict-on # C-x C-z
bindkey &amp;amp;quot;^Z&amp;amp;quot; predict-off # C-z&lt;/textarea>&lt;!--/notypo-->&lt;br />
%%hosts=(${${${(f)&amp;quot;$(&amp;lt;$HOME/.ssh/known_hosts)&amp;quot;}% %\ *}% %,*}) &amp;lt;&lt;hr noshade="noshade" size="1" /> пробелы между &amp;quot;% %&amp;quot; убрать.
Однако этот способ имеет несколько неисправимых преимуществ.  Более &amp;quot;кошерный&amp;quot; вариант предложен в&amp;nbsp;виде патча &lt;a href="https://bugzilla.altlinux.org/show_bug.cgi?id=5429" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />здесь&lt;/a>.&lt;br />
Можно настроить и&amp;nbsp;локально, для&amp;nbsp;&amp;quot;себя любимого&amp;quot;. Для&amp;nbsp;этого:&lt;br />
&lt;ul>&lt;li> &lt;a href="http://linuxshop.ru/unix4all/?cid=26&amp;amp;id=209" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />http://linuxshop.ru/unix4all/?cid=26&amp;amp;amp;id=209&lt;/a>&lt;/li>&lt;/ul>
&lt;!--notypo-->{{watchers}}&lt;!--/notypo-->&amp;lt;div style="abc"&amp;gt;123&amp;lt;/div&amp;gt; &lt;!--notypo-->&amp;lt;div style=&amp;quot;bcd&amp;quot;&amp;gt;456&amp;lt;/div&amp;gt;&lt;!--/notypo--> [&lt;a href="http://google.com" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />http://google.com&lt;/a> SE&amp;nbsp;Google] &lt;a href="http://yahoo.com" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />SE Yahoo&lt;/a>&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">&lt;!--notypo-->{{TableOfContents page="" title="" numerate=""}}&lt;!--/notypo-->&lt;br />
Это, пожалуй, самая известная и&amp;nbsp;частоиспользуемая в&amp;nbsp;zsh функция, выгодно отличающая его&amp;nbsp;от&amp;nbsp;других командных интерпретаторов. Помимо простого дополнения имен и&amp;nbsp;путей к&amp;nbsp;файлам zsh&amp;nbsp;также способен дополнять опции к&amp;nbsp;командам (попробуйте, к&amp;nbsp;примеру, &lt;tt>find . -na&amp;lt;Tab&amp;gt; -s&amp;lt;Tab&amp;gt;&lt;/tt>), названия страниц руководств (&lt;tt>man chkc&amp;lt;Tab&amp;gt;&lt;/tt> дополнится до&amp;nbsp;man chkconfig) и&amp;nbsp;раскрывать сокращенные пути (к примеру, &lt;tt>/mn/o/d/a&amp;lt;Tab&amp;gt;&lt;/tt> раскрывается до&amp;nbsp;/mnt/other/distrib/alt).&lt;br />
По&amp;nbsp;умолчанию автодополнение для&amp;nbsp;&lt;tt>kill&lt;/tt> и&amp;nbsp;&lt;tt>killall&lt;/tt> не&amp;nbsp;показывает процессы без&amp;nbsp;controlling tty&amp;nbsp;(для всех пользователей кроме root). Устраняем этот недостаток и&amp;nbsp;дополнительно добавляем &amp;laquo;красоты&amp;raquo;:&lt;br />
&lt;!--notypo-->&lt;textarea class="code" rows="2" readonly="readonly">PROMPT=&amp;quot;%n@%m %3~ %(!.#.$) &amp;quot;&lt;/textarea>&lt;!--/notypo-->&lt;br />
&amp;laquo;Zsh позволяет производить рекурсивное раскрытие имен файлов. Для&amp;nbsp;этого используются формы &lt;tt>**/ &lt;/tt> и&amp;nbsp;&lt;tt>***/&lt;/tt> Первая форма отличается от&amp;nbsp;второй лишь тем, что&amp;nbsp;не&amp;nbsp;следует по&amp;nbsp;символьным ссылкам. Так, например&lt;br />
произведет поиск файлов с&amp;nbsp;именем foo&amp;nbsp;во&amp;nbsp;всех подкаталогах.&amp;raquo;&lt;sup>&lt;a href="#oftn1" name="ftn1">*&lt;/a>&lt;/sup>&lt;br />
&lt;!--notypo-->&lt;textarea class="code" rows="2" readonly="readonly">SPROMPT=&amp;quot;Ошибка! Вы хотели ввести %r вместо %R? ([Y]es/[N]o/[E]dit/[A]bort) &amp;quot;&lt;/textarea>&lt;!--/notypo-->&lt;br />
&lt;div class="indent">precmd(){print -Pn "\e]0;%n@%m: %\a&amp;quot;}&lt;/div>
Здесь проверяется значение переменной &lt;tt>$TERM&lt;/tt>, и&amp;nbsp;если оно&amp;nbsp;равно rxvt или&amp;nbsp;начинается с&amp;nbsp;xterm, то&amp;nbsp;выполняется действие. В&amp;nbsp;частности, задается функция, которая и&amp;nbsp;выводит строку, похожую на&amp;nbsp;приглашение, в&amp;nbsp;заголовок окна. Функция &lt;strong>precmd()&lt;/strong> выполняется каждый раз&amp;nbsp;перед выводом приглашения. Также вы&amp;nbsp;можете использовать функцию &lt;strong>preexec()&lt;/strong>, которая выполняется перед запуском любой программы, и&amp;nbsp;&lt;strong>chpwd()&lt;/strong>, которая &amp;laquo;вызывается при&amp;nbsp;изменении рабочего каталога. [...] Кроме того, может быть определена функция &lt;strong>periodic&lt;/strong>, которая может выполнятся через каждые &lt;tt>$PERIOD&lt;/tt> (если этот параметр определен) секунд перед выводом приглашения.&amp;raquo;&lt;sup>&lt;a href="#oftn1" name="ftn1">*&lt;/a>&lt;/sup>&lt;br />
&lt;!--notypo-->&lt;textarea class="code" rows="2" readonly="readonly">preexec(){print -Pn &amp;quot;\e]0;$0\a&amp;quot;}&lt;/textarea>&lt;!--/notypo-->&lt;br />
bindkey    "^[[A" history-beginning-search-backward&lt;br />
bindkey -a "^[[A" history-beginning-search-backward&lt;br />
bindkey    "^[[B" history-beginning-search-forward&lt;br />
bindkey -a "^[[B" history-beginning-search-forward&lt;!--notypo-->&lt;textarea class="code" rows="4" readonly="readonly">===&amp;quot;Магический&amp;quot; поиск в истории команд===
bindkey &amp;quot;^X^Z&amp;quot; predict-on # C-x C-z
bindkey &amp;quot;^Z&amp;quot; predict-off # C-z&lt;/textarea>&lt;!--/notypo-->&lt;br />
%%hosts=(${${${(f)"$(&amp;lt;$HOME/.ssh/known_hosts)"}% %\ *}% %,*}) &amp;lt;&lt;hr noshade="noshade" size="1" /> пробелы между "% %" убрать.
Однако этот способ имеет несколько неисправимых преимуществ.  Более &amp;laquo;кошерный&amp;raquo; вариант предложен в&amp;nbsp;виде патча &lt;a href="https://bugzilla.altlinux.org/show_bug.cgi?id=5429" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />здесь&lt;/a>.&lt;br />
Можно настроить и&amp;nbsp;локально, для&amp;nbsp;&amp;laquo;себя любимого&amp;raquo;. Для&amp;nbsp;этого:&lt;br />
&lt;ul>&lt;li> &lt;a href="http://linuxshop.ru/unix4all/?cid=26&amp;amp;id=209" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />http://linuxshop.ru/unix4all/?cid=26&amp;amp;id=209&lt;/a>&lt;/li>&lt;/ul>
&lt;!--notypo-->{{watchers}}&lt;!--/notypo-->&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2005-11-15 19:15:18</title>
<link>http://freesource.info/wiki/AltLinux/DotFiles/Shells/Zsh/Sovety/show?time=2005-11-15+19%3A15%3A18</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/AltLinux/DotFiles/Shells/Zsh/Sovety&amp;" class="">/Alt&amp;nbsp;Linux&amp;nbsp;/&amp;nbsp;Dot&amp;nbsp;Files&amp;nbsp;/&amp;nbsp;Shells&amp;nbsp;/&amp;nbsp;Zsh&amp;nbsp;/&amp;nbsp;Советы&lt;/a> за &lt;a href="http://freesource.info/wiki/AltLinux/DotFiles/Shells/Zsh/Sovety?time=2005-11-15+19%3A15%3A18">2005-11-15 19:15:18&lt;/a> и &lt;a href="http://freesource.info/wiki/AltLinux/DotFiles/Shells/Zsh/Sovety?time=2006-01-19+18%3A17%3A04">2006-01-19 18:17:04&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;ul>&lt;li> &lt;a href="http://linuxshop.ru/unix4all/?cid=26&amp;amp;id=209" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />http://linuxshop.ru/unix4all/?cid=26&amp;amp;id=209&lt;/a>
&lt;/li>&lt;li> &lt;a href="http://www.opennet.ru/base/dev/zsh_setup.txt.html" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />http://www.opennet.ru/base/dev/zsh_setup.txt.html&lt;/a>
&lt;/li>&lt;li> &lt;a href="http://xtalk.msk.su/~ott/ru/linux/zsh/Zsh-article.ru.html" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />http://xtalk.msk.su/~ott/ru/linux/zsh/Zsh-article.ru.html&lt;/a>
&lt;/li>&lt;li> &lt;a href="http://www.freesource.info/wiki/Altlinux/DotFiles/Shells/zsh/MenuSelection" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />http://www.freesource.info/wiki/Altlinux/DotFiles/Shells/zsh/MenuSelection&lt;/a>
&lt;/li>&lt;li> &lt;a href="http://rusmafia.org/linux/node/200" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />Добавление в&amp;nbsp;приглашение кода ошибки программ и&amp;nbsp;расшифровки сигнала&lt;/a>
&lt;/li>&lt;li> &lt;a href="http://www.faqs.org/faqs/unix-faq/shell/zsh/" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />http://www.faqs.org/faqs/unix-faq/shell/zsh/&lt;/a>
&lt;/li>&lt;li> &lt;a href="http://adamspiers.org/computing/zsh/" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />http://adamspiers.org/computing/zsh/&lt;/a>
&lt;/li>&lt;li> &lt;a href="http://www.daemonnews.org/199910/zsh.html" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />http://www.daemonnews.org/199910/zsh.html&lt;/a>
&lt;/li>&lt;li> &lt;a href="http://zsh.sourceforge.net/Guide/zshguide.html" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />http://zsh.sourceforge.net/Guide/zshguide.html&lt;/a>
&lt;/li>&lt;li> &lt;a href="http://www-106.ibm.com/developerworks/library/l-z.html" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />http://www-106.ibm.com/developerworks/library/l-z.html&lt;/a>
&lt;/li>&lt;li> &lt;a href="http://www.acm.uiuc.edu/workshops/zsh/toc.html" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />http://www.acm.uiuc.edu/workshops/zsh/toc.html&lt;/a>&lt;/li>&lt;/ul>&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">&lt;a href="http://linuxshop.ru/unix4all/?cid=26&amp;amp;id=209" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />http://linuxshop.ru/unix4all/?cid=26&amp;amp;id=209&lt;/a>&lt;br />
&lt;a href="http://www.opennet.ru/base/dev/zsh_setup.txt.html" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />http://www.opennet.ru/base/dev/zsh_setup.txt.html&lt;/a>&lt;br />
&lt;a href="http://xtalk.msk.su/~ott/ru/linux/zsh/Zsh-article.ru.html" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />http://xtalk.msk.su/~ott/ru/linux/zsh/Zsh-article.ru.html&lt;/a>&lt;br />
&lt;a href="http://www.freesource.info/wiki/Altlinux/DotFiles/Shells/zsh/MenuSelection" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />http://www.freesource.info/wiki/Altlinux/DotFiles/Shells/zsh/MenuSelection&lt;/a>&lt;br />
&lt;a href="http://www.faqs.org/faqs/unix-faq/shell/zsh/" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />http://www.faqs.org/faqs/unix-faq/shell/zsh/&lt;/a>&lt;br />
&lt;a href="http://adamspiers.org/computing/zsh/" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />http://adamspiers.org/computing/zsh/&lt;/a>&lt;br />
&lt;a href="http://www.daemonnews.org/199910/zsh.html" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />http://www.daemonnews.org/199910/zsh.html&lt;/a>&lt;br />
&lt;a href="http://zsh.sourceforge.net/Guide/zshguide.html" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />http://zsh.sourceforge.net/Guide/zshguide.html&lt;/a>&lt;br />
&lt;a href="http://www-106.ibm.com/developerworks/library/l-z.html" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />http://www-106.ibm.com/developerworks/library/l-z.html&lt;/a>&lt;br />
&lt;a href="http://www.acm.uiuc.edu/workshops/zsh/toc.html" target="_blank" title="Внешняя ссылка (откроется в новом окне)" class="outerlink">&lt;img src="http://freesource.info/wiki/themes/coffee/icons/web.gif" alt="" border="0" />http://www.acm.uiuc.edu/workshops/zsh/toc.html&lt;/a>&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2005-07-23 15:42:52</title>
<link>http://freesource.info/wiki/AltLinux/DotFiles/Shells/Zsh/Sovety/show?time=2005-07-23+15%3A42%3A52</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/AltLinux/DotFiles/Shells/Zsh/Sovety&amp;" class="">/Alt&amp;nbsp;Linux&amp;nbsp;/&amp;nbsp;Dot&amp;nbsp;Files&amp;nbsp;/&amp;nbsp;Shells&amp;nbsp;/&amp;nbsp;Zsh&amp;nbsp;/&amp;nbsp;Советы&lt;/a> за &lt;a href="http://freesource.info/wiki/AltLinux/DotFiles/Shells/Zsh/Sovety?time=2005-07-23+15%3A42%3A52">2005-07-23 15:42:52&lt;/a> и &lt;a href="http://freesource.info/wiki/AltLinux/DotFiles/Shells/Zsh/Sovety?time=2005-11-15+19%3A15%3A18">2005-11-15 19:15:18&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">alias -g WC='| wc&amp;nbsp;-l'&lt;br />
alias -g IK='| iconv -c -f koi8r -t cp1251'&lt;br />
alias -g IU='| iconv -c -f utf8 -t cp1251'&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">alias -g WC='| wc&amp;nbsp;-l'%%&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2005-07-23 15:35:48</title>
<link>http://freesource.info/wiki/AltLinux/DotFiles/Shells/Zsh/Sovety/show?time=2005-07-23+15%3A35%3A48</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/AltLinux/DotFiles/Shells/Zsh/Sovety&amp;" class="">/Alt&amp;nbsp;Linux&amp;nbsp;/&amp;nbsp;Dot&amp;nbsp;Files&amp;nbsp;/&amp;nbsp;Shells&amp;nbsp;/&amp;nbsp;Zsh&amp;nbsp;/&amp;nbsp;Советы&lt;/a> за &lt;a href="http://freesource.info/wiki/AltLinux/DotFiles/Shells/Zsh/Sovety?time=2005-07-23+15%3A35%3A48">2005-07-23 15:35:48&lt;/a> и &lt;a href="http://freesource.info/wiki/AltLinux/DotFiles/Shells/Zsh/Sovety?time=2005-07-23+15%3A42%3A52">2005-07-23 15:42:52&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">Это, пожалуй, самая известная и&amp;nbsp;частоиспользуемая в&amp;nbsp;zsh функция, выгодно отличающая его&amp;nbsp;от&amp;nbsp;других командных интерпретаторов. Помимо простого дополнения имен и&amp;nbsp;путей к&amp;nbsp;файлам zsh&amp;nbsp;также способен дополнять опции к&amp;nbsp;командам (попробуйте, к&amp;nbsp;примеру, &lt;tt>find . -na&amp;lt;Tab&amp;gt; -s&amp;lt;Tab&amp;gt;&lt;/tt>), названия страниц руководств (&lt;tt>man chkc&amp;lt;Tab&amp;gt;&lt;/tt> дополнится до&amp;nbsp;man chkconfig) и&amp;nbsp;раскрывать сокращенные пути (к примеру, &lt;tt>/mn/o/d/a&amp;lt;Tab&amp;gt;&lt;/tt> раскрывается до&amp;nbsp;/mnt/other/distrib/alt).&lt;br />
По&amp;nbsp;умолчанию автодополнение для&amp;nbsp;&lt;tt>kill&lt;/tt> и&amp;nbsp;&lt;tt>killall&lt;/tt> не&amp;nbsp;показывает процессы без&amp;nbsp;controlling tty&amp;nbsp;(для всех пользователей кроме root). Устраняем этот недостаток и&amp;nbsp;дополнительно добавляем &amp;laquo;красоты&amp;raquo;:&lt;br />
За&amp;nbsp;внешний вид&amp;nbsp;приглашения отвечает переменная &lt;strong>PROMPT&lt;/strong> (а не&amp;nbsp;PS1, как&amp;nbsp;в&amp;nbsp;bash!). Все&amp;nbsp;возможные специальные последовательности, которые возможно использовать в&amp;nbsp;приглашении, описаны в&amp;nbsp;&lt;tt>man zshmisc&lt;/tt> в&amp;nbsp;главе &lt;em>PROMPT EXPANSION&lt;/em>. К&amp;nbsp;примеру, вы&amp;nbsp;можете, для&amp;nbsp;начала, установить (если оно&amp;nbsp;еще не&amp;nbsp;установлено) самое обычное приглашение:&lt;br />
Еще&amp;nbsp;одна удобная особенность: приглашение может быть выведено не&amp;nbsp;только в&amp;nbsp;левой части экрана, но&amp;nbsp;и в&amp;nbsp;правой! За&amp;nbsp;это отвечает переменная &lt;strong>RPROMPT&lt;/strong>.&lt;br />
Если вы&amp;nbsp;хотите придумать оригинальное и&amp;nbsp;удобное приглашение, то&amp;nbsp;сначала я&amp;nbsp;рекомендую вам&amp;nbsp;взглянуть на&amp;nbsp;уже существующие. Вдруг там&amp;nbsp;вы&amp;nbsp;найдете подходящую или&amp;nbsp;решите позаимствовать из&amp;nbsp;понравившийся нужный элемент. Выполните следующие команды:&lt;br />
В&amp;nbsp;результате вы&amp;nbsp;увидите список из&amp;nbsp;15 предустановленных тем&amp;nbsp;для приглашения. Попробовать понравившуюся можно командой &lt;tt>promptinit название_темы&lt;/tt> Команда &lt;tt>prompt -p&lt;/tt> выдает примеры всех установленных тем&amp;nbsp;строки приглашения.&lt;br />
Обычно при&amp;nbsp;работе в&amp;nbsp;терминале приходится довольно часто перемещаться по&amp;nbsp;директориям. И&amp;nbsp;каждый раз&amp;nbsp;приходится вводить &lt;tt>cd /path/to/file&lt;/tt> Но&amp;nbsp;разработчики zsh&amp;nbsp;подумали, что&amp;nbsp;использование этой команды нужно как-то упростить и&amp;nbsp;придумали &lt;strong>autocd&lt;/strong>! Смысл прост: вместо &lt;tt>cd /path/to/file&lt;/tt> вам&amp;nbsp;нужно ввести лишь путь! Чтобы уже&amp;nbsp;начать пользоваться этой удобной возможностью, добавьте еще&amp;nbsp;одну строчку в&amp;nbsp;&lt;tt>~/.zshrc&lt;/tt>:&lt;br />
Еще&amp;nbsp;один способ, чтобы быстрее перемещаться по&amp;nbsp;иерархии каталогов. Этот способ чем-то напоминает создание alias'ов (псевдонимов) для&amp;nbsp;команд. Для&amp;nbsp;этого вам&amp;nbsp;нужно прописать в&amp;nbsp;конфигурационный файл часто посещаемые вами пути к&amp;nbsp;файлам и&amp;nbsp;соответствующие им&amp;nbsp;имена. К&amp;nbsp;примеру, вот&amp;nbsp;так:&lt;br />
Теперь можно будет вместо &lt;tt>/mnt/other/distrib&lt;/tt> набрать его&amp;nbsp;имя &lt;tt>~dist&lt;/tt> При&amp;nbsp;этом здесь также действует и&amp;nbsp;автодополнение имени, и&amp;nbsp;к низлежайшим файлам/каталогам.&lt;br />
Кроме обычных псевдонимов существуют также глобальные. Их&amp;nbsp;использование лучше всего рассмотреть на&amp;nbsp;примере. Вот&amp;nbsp;часть конфига zsh, которой определяются глобальные псевдонимы:&lt;br />
Теперь для&amp;nbsp;того, чтобы узнать установлен ли&amp;nbsp;в вашей системе пакет example будет достаточно ввести: &lt;tt>rpm -qa G&amp;nbsp;example&lt;/tt>. Вместо 'G' zsh&amp;nbsp;подставит '| grep' и&amp;nbsp;таким образом вы&amp;nbsp;найдете нужный пакет в&amp;nbsp;списке всех установленных. Таким же&amp;nbsp;образом используются и&amp;nbsp;другие глобальные псевдонимы из&amp;nbsp;примера:&lt;br />
Данная команда найдет все&amp;nbsp;пакеты с&amp;nbsp;ядром и&amp;nbsp;модулями к&amp;nbsp;нему для&amp;nbsp;однопроцессорной машины, отсортирует список и&amp;nbsp;передаст &lt;tt>less&lt;/tt>, чтобы вам&amp;nbsp;было удобнее его&amp;nbsp;просмотреть.&lt;br />
Еще&amp;nbsp;один интересный вид&amp;nbsp;псевдонимов &amp;ndash; псевдонимы расширения (suffix aliases). Эти&amp;nbsp;псевдонимы позволяют расширить команду вида &lt;tt>name.ext&lt;/tt> до&amp;nbsp;&lt;tt>program name.ext&lt;/tt>. Например, если в&amp;nbsp;файле конфигурации прописать:&lt;br />
&amp;laquo;Zsh позволяет производить рекурсивное раскрытие имен файлов. Для&amp;nbsp;этого используются формы &lt;tt>**/ &lt;/tt> и&amp;nbsp;&lt;tt>***/&lt;/tt> Первая форма отличается от&amp;nbsp;второй лишь тем, что&amp;nbsp;не&amp;nbsp;следует по&amp;nbsp;символьным ссылкам. Так, например&lt;br />
Иногда при&amp;nbsp;вводе команд мы&amp;nbsp;допускам ошибки. Причем не&amp;nbsp;очень серьезные. В&amp;nbsp;zsh есть способ, как&amp;nbsp;быстро возможно разрешать подобные ситуации &amp;mdash; автокоррекция команд. Включаем ее:&lt;br />
Но&amp;nbsp;это еще&amp;nbsp;не&amp;nbsp;все. В&amp;nbsp;ваших руках даже возможность настроить запрос на&amp;nbsp;коррекцию, для&amp;nbsp;этого достаточно присвоить нужное значение переменной &lt;strong>SPROMPT&lt;/strong> Вот, к&amp;nbsp;примеру, как&amp;nbsp;это настроено у&amp;nbsp;меня:&lt;br />
Если zsh&amp;nbsp;запущен в&amp;nbsp;каком-либо псевдотерминале (xterm, aterm и&amp;nbsp;т.д.), то&amp;nbsp;возможно управлять заголовком окна. Т. е. вы&amp;nbsp;можете попросить zsh&amp;nbsp;выводить в&amp;nbsp;него что-нибудь полезное. Вот&amp;nbsp;пример (добавьте в&amp;nbsp;&lt;tt>~/.zshrc&lt;/tt>):&lt;br />
Здесь проверяется значение переменной &lt;tt>$TERM&lt;/tt>, и&amp;nbsp;если оно&amp;nbsp;равно rxvt или&amp;nbsp;начинается с&amp;nbsp;xterm, то&amp;nbsp;выполняется действие. В&amp;nbsp;частности, задается функция, которая и&amp;nbsp;выводит строку, похожую на&amp;nbsp;приглашение, в&amp;nbsp;заголовок окна. Функция &lt;strong>precmd()&lt;/strong> выполняется каждый раз&amp;nbsp;перед выводом приглашения. Также вы&amp;nbsp;можете использовать функцию &lt;strong>preexec()&lt;/strong>, которая выполняется перед запуском любой программы, и&amp;nbsp;&lt;strong>chpwd()&lt;/strong>, которая &amp;laquo;вызывается при&amp;nbsp;изменении рабочего каталога. [...] Кроме того, может быть определена функция &lt;strong>periodic&lt;/strong>, которая может выполнятся через каждые &lt;tt>$PERIOD&lt;/tt> (если этот параметр определен) секунд перед выводом приглашения.&amp;raquo;&lt;sup>&lt;a href="#oftn1" name="ftn1">*&lt;/a>&lt;/sup>&lt;br />
Zsh&amp;nbsp;умеет частично эмулировать Vim/Emacs при&amp;nbsp;редактировании командной строки. Команды &lt;tt>bindkey -v&lt;/tt> и&amp;nbsp;&lt;tt>bindkey -e&lt;/tt> соответственно загружают необходимые раскладки клавиш.&lt;br />
Теперь, если нажать Ctr+X Ctrl+Z, при&amp;nbsp;вводе команды будет автоматически производится поиск в&amp;nbsp;истории по&amp;nbsp;первым буквам команды. Нажатие Ctrl+Z отключит этот режим.&lt;br />
По&amp;nbsp;умолчанию для&amp;nbsp;ssh/scp и&amp;nbsp;им подобных дополняются и&amp;nbsp;хост и&amp;nbsp;пользователь.  Отключить отображение пользователей в&amp;nbsp;списке вариантов (не отключая самой возможности дополнять их) можно так:&lt;br />
Если вам&amp;nbsp;требуется отредактировать какой-нибудь скрипт, который расположен в&amp;nbsp;&lt;tt>$PATH&lt;/tt> или&amp;nbsp;же&amp;nbsp;просто использовать полный путь к&amp;nbsp;програме, то&amp;nbsp;zsh способен отыскать требуемую программу и&amp;nbsp;использовать полный путь к&amp;nbsp;ней. К&amp;nbsp;примеру, чтобы отредактировать файл &lt;tt>script&lt;/tt> достаточно будет ввести:&lt;br />
В&amp;nbsp;zsh еще&amp;nbsp;очень много разных удобных и&amp;nbsp;полезных функций и&amp;nbsp;настроек. В&amp;nbsp;этой заметке я&amp;nbsp;попытался рассказать о&amp;nbsp;той их&amp;nbsp;части, о&amp;nbsp;которой мне&amp;nbsp;известно и&amp;nbsp;которая наиболее часто используется мной (хотя &lt;tt>promptinit&lt;/tt> я&amp;nbsp;использовал лишь раз, но&amp;nbsp;мне показалось это&amp;nbsp;интересным и&amp;nbsp;я все-таки позволил себе упоминуть об&amp;nbsp;этом здесь ;))&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">Это, пожалуй, самая известная и&amp;nbsp;частоиспользуемая в&amp;nbsp;zsh функция, выгодно отличающая его&amp;nbsp;от&amp;nbsp;других командных интерпретаторов.&lt;br />
Помимо простого дополнения имен и&amp;nbsp;путей к&amp;nbsp;файлам zsh&amp;nbsp;также способен дополнять опции к&amp;nbsp;командам (попробуйте, к&amp;nbsp;примеру,&lt;br />
&lt;tt>find . -na&amp;lt;Tab&amp;gt; -s&amp;lt;Tab&amp;gt;&lt;/tt>), названия страниц руководств (&lt;tt>man chkc&amp;lt;Tab&amp;gt;&lt;/tt> дополнится до&amp;nbsp;man chkconfig) и&amp;nbsp;раскрывать сокращенные&lt;br />
пути (к примеру, &lt;tt>/mn/o/d/a&amp;lt;Tab&amp;gt;&lt;/tt> раскрывается до&amp;nbsp;/mnt/other/distrib/alt).&lt;br />
По&amp;nbsp;умолчанию автодополнение для&amp;nbsp;&lt;tt>kill&lt;/tt> и&amp;nbsp;&lt;tt>killall&lt;/tt> не&amp;nbsp;показывает процессы без&amp;nbsp;controlling tty&amp;nbsp;(для всех пользователей кроме root).&lt;br />
Устраняем этот недостаток и&amp;nbsp;дополнительно добавляем &amp;laquo;красоты&amp;raquo;:&lt;br />
За&amp;nbsp;внешний вид&amp;nbsp;приглашения отвечает переменная &lt;strong>PROMPT&lt;/strong> (а не&amp;nbsp;PS1, как&amp;nbsp;в&amp;nbsp;bash!). Все&amp;nbsp;возможные специальные последовательности,&lt;br />
которые возможно использовать в&amp;nbsp;приглашении, описаны в&amp;nbsp;&lt;tt>man zshmisc&lt;/tt> в&amp;nbsp;главе &lt;em>PROMPT EXPANSION&lt;/em>. К&amp;nbsp;примеру, вы&amp;nbsp;можете,&lt;br />
для&amp;nbsp;начала, установить (если оно&amp;nbsp;еще не&amp;nbsp;установлено) самое обычное приглашение:&lt;br />
Еще&amp;nbsp;одна удобная особенность: приглашение может быть выведено не&amp;nbsp;только в&amp;nbsp;левой части экрана, но&amp;nbsp;и в&amp;nbsp;правой! За&amp;nbsp;это отвечает&lt;br />
переменная &lt;strong>RPROMPT&lt;/strong>.&lt;br />
Если вы&amp;nbsp;хотите придумать оригинальное и&amp;nbsp;удобное приглашение, то&amp;nbsp;сначала я&amp;nbsp;рекомендую вам&amp;nbsp;взглянуть на&amp;nbsp;уже существующие. Вдруг там&lt;br />
вы&amp;nbsp;найдете подходящую или&amp;nbsp;решите позаимствовать из&amp;nbsp;понравившийся нужный элемент. Выполните следующие команды:&lt;br />
В&amp;nbsp;результате вы&amp;nbsp;увидите список из&amp;nbsp;15 предустановленных тем&amp;nbsp;для приглашения. Попробовать понравившуюся можно командой&lt;br />
&lt;tt>promptinit название_темы&lt;/tt> Команда &lt;tt>prompt -p&lt;/tt> выдает примеры всех установленных тем&amp;nbsp;строки приглашения.&lt;br />
Обычно при&amp;nbsp;работе в&amp;nbsp;терминале приходится довольно часто перемещаться по&amp;nbsp;директориям. И&amp;nbsp;каждый раз&amp;nbsp;приходится вводить&lt;br />
&lt;tt>cd /path/to/file&lt;/tt> Но&amp;nbsp;разработчики zsh&amp;nbsp;подумали, что&amp;nbsp;использование этой команды нужно как-то упростить и&amp;nbsp;придумали &lt;strong>autocd&lt;/strong>!&lt;br />
Смысл прост: вместо &lt;tt>cd /path/to/file&lt;/tt> вам&amp;nbsp;нужно ввести лишь путь! Чтобы уже&amp;nbsp;начать пользоваться этой удобной возможностью,&lt;br />
добавьте еще&amp;nbsp;одну строчку в&amp;nbsp;&lt;tt>~/.zshrc&lt;/tt>:&lt;br />
Еще&amp;nbsp;один способ, чтобы быстрее перемещаться по&amp;nbsp;иерархии каталогов. Этот способ чем-то напоминает создание alias'ов (псевдонимов)&lt;br />
для&amp;nbsp;команд. Для&amp;nbsp;этого вам&amp;nbsp;нужно прописать в&amp;nbsp;конфигурационный файл часто посещаемые вами пути к&amp;nbsp;файлам и&amp;nbsp;соответствующие им&lt;br />
имена. К&amp;nbsp;примеру, вот&amp;nbsp;так:&lt;br />
Теперь можно будет вместо &lt;tt>/mnt/other/distrib&lt;/tt> набрать его&amp;nbsp;имя &lt;tt>~dist&lt;/tt> При&amp;nbsp;этом здесь также действует и&amp;nbsp;автодополнение имени,&lt;br />
и&amp;nbsp;к низлежайшим файлам/каталогам.&lt;br />
Кроме обычных псевдонимов существуют также глобальные. Их&amp;nbsp;использование лучше всего рассмотреть на&amp;nbsp;примере. Вот&amp;nbsp;часть конфига zsh,&lt;br />
в&amp;nbsp;которой определяются глобальные псевдонимы:&lt;br />
Теперь для&amp;nbsp;того, чтобы узнать установлен ли&amp;nbsp;в вашей системе пакет example будет достаточно ввести: &lt;tt>rpm -qa G&amp;nbsp;example&lt;/tt>. Вместо 'G'&lt;br />
zsh&amp;nbsp;подставит '| grep' и&amp;nbsp;таким образом вы&amp;nbsp;найдете нужный пакет в&amp;nbsp;списке всех установленных. Таким же&amp;nbsp;образом используются и&amp;nbsp;другие&lt;br />
глобальные псевдонимы из&amp;nbsp;примера:&lt;br />
Данная команда найдет все&amp;nbsp;пакеты с&amp;nbsp;ядром и&amp;nbsp;модулями к&amp;nbsp;нему для&amp;nbsp;однопроцессорной машины, отсортирует список и&amp;nbsp;передаст &lt;tt>less&lt;/tt>,&lt;br />
чтобы вам&amp;nbsp;было удобнее его&amp;nbsp;просмотреть.&lt;br />
Еще&amp;nbsp;один интересный вид&amp;nbsp;псевдонимов &amp;ndash; псевдонимы расширения (suffix aliases). Эти&amp;nbsp;псевдонимы позволяют расширить команду&lt;br />
вида &lt;tt>name.ext&lt;/tt> до&amp;nbsp;&lt;tt>program name.ext&lt;/tt>. Например, если в&amp;nbsp;файле конфигурации прописать:&lt;br />
&amp;laquo;Zsh позволяет производить рекурсивное раскрытие имен файлов. Для&amp;nbsp;этого используются формы &lt;tt>**/ &lt;/tt> и&amp;nbsp;&lt;tt>***/&lt;/tt> Первая форма&lt;br />
отличается от&amp;nbsp;второй лишь тем, что&amp;nbsp;не&amp;nbsp;следует по&amp;nbsp;символьным ссылкам. Так, например&lt;br />
Иногда при&amp;nbsp;вводе команд мы&amp;nbsp;допускам ошибки. Причем не&amp;nbsp;очень серьезные. В&amp;nbsp;zsh есть способ, как&amp;nbsp;быстро возможно разрешать&lt;br />
подобные ситуации &amp;mdash; автокоррекция команд. Включаем ее:&lt;br />
Но&amp;nbsp;это еще&amp;nbsp;не&amp;nbsp;все. В&amp;nbsp;ваших руках даже возможность настроить запрос на&amp;nbsp;коррекцию, для&amp;nbsp;этого достаточно присвоить нужное значение&lt;br />
переменной &lt;strong>SPROMPT&lt;/strong> Вот, к&amp;nbsp;примеру, как&amp;nbsp;это настроено у&amp;nbsp;меня:&lt;br />
Если zsh&amp;nbsp;запущен в&amp;nbsp;каком-либо псевдотерминале (xterm, aterm и&amp;nbsp;т.д.), то&amp;nbsp;возможно управлять заголовком окна. Т. е. вы&amp;nbsp;можете попросить&lt;br />
zsh&amp;nbsp;выводить в&amp;nbsp;него что-нибудь полезное. Вот&amp;nbsp;пример (добавьте в&amp;nbsp;&lt;tt>~/.zshrc&lt;/tt>):&lt;br />
Здесь проверяется значение переменной &lt;tt>$TERM&lt;/tt>, и&amp;nbsp;если оно&amp;nbsp;равно rxvt или&amp;nbsp;начинается с&amp;nbsp;xterm, то&amp;nbsp;выполняется действие. В&amp;nbsp;частности,&lt;br />
задается функция, которая и&amp;nbsp;выводит строку, похожую на&amp;nbsp;приглашение, в&amp;nbsp;заголовок окна. Функция &lt;strong>precmd()&lt;/strong> выполняется каждый&lt;br />
раз&amp;nbsp;перед выводом приглашения. Также вы&amp;nbsp;можете использовать функцию &lt;strong>preexec()&lt;/strong>, которая выполняется перед запуском любой&lt;br />
программы, и&amp;nbsp;&lt;strong>chpwd()&lt;/strong>, которая &amp;laquo;вызывается при&amp;nbsp;изменении рабочего каталога. [...] Кроме того, может быть определена функция&lt;br />
&lt;strong>periodic&lt;/strong>, которая может выполнятся через каждые &lt;tt>$PERIOD&lt;/tt> (если этот параметр определен) секунд перед выводом приглашения.&amp;raquo;&lt;sup>&lt;a href="#oftn1" name="ftn1">*&lt;/a>&lt;/sup>&lt;br />
Zsh&amp;nbsp;умеет частично эмулировать Vim/Emacs при&amp;nbsp;редактировании командной строки. Команды &lt;tt>bindkey -v&lt;/tt> и&amp;nbsp;&lt;tt>bindkey -e&lt;/tt>&lt;br />
соответственно загружают необходимые раскладки клавиш.&lt;br />
Теперь, если нажать Ctr+X Ctrl+Z, при&amp;nbsp;вводе команды будет автоматически производится поиск в&amp;nbsp;истории по&amp;nbsp;первым буквам команды.&lt;br />
Нажатие Ctrl+Z отключит этот режим.&lt;br />
По&amp;nbsp;умолчанию для&amp;nbsp;ssh/scp и&amp;nbsp;им подобных дополняются и&amp;nbsp;хост и&amp;nbsp;пользователь.  Отключить отображение пользователей в&amp;nbsp;списке&lt;br />
вариантов (не отключая самой возможности дополнять их) можно так:&lt;br />
Если вам&amp;nbsp;требуется отредактировать какой-нибудь скрипт, который расположен в&amp;nbsp;&lt;tt>$PATH&lt;/tt> или&amp;nbsp;же&amp;nbsp;просто использовать полный путь к&lt;br />
програме, то&amp;nbsp;zsh способен отыскать требуемую программу и&amp;nbsp;использовать полный путь к&amp;nbsp;ней. К&amp;nbsp;примеру, чтобы отредактировать файл&lt;br />
&lt;tt>script&lt;/tt> достаточно будет ввести:&lt;br />
В&amp;nbsp;zsh еще&amp;nbsp;очень много разных удобных и&amp;nbsp;полезных функций и&amp;nbsp;настроек. В&amp;nbsp;этой заметке я&amp;nbsp;попытался рассказать о&amp;nbsp;той их&amp;nbsp;части, о&amp;nbsp;которой&lt;br />
мне&amp;nbsp;известно и&amp;nbsp;которая наиболее часто используется мной (хотя &lt;tt>promptinit&lt;/tt> я&amp;nbsp;использовал лишь раз, но&amp;nbsp;мне показалось это&amp;nbsp;интересным&lt;br />
и&amp;nbsp;я все-таки позволил себе упоминуть об&amp;nbsp;этом здесь ;))&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2005-07-18 13:53:25</title>
<link>http://freesource.info/wiki/AltLinux/DotFiles/Shells/Zsh/Sovety/show?time=2005-07-18+13%3A53%3A25</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/AltLinux/DotFiles/Shells/Zsh/Sovety&amp;" class="">/Alt&amp;nbsp;Linux&amp;nbsp;/&amp;nbsp;Dot&amp;nbsp;Files&amp;nbsp;/&amp;nbsp;Shells&amp;nbsp;/&amp;nbsp;Zsh&amp;nbsp;/&amp;nbsp;Советы&lt;/a> за &lt;a href="http://freesource.info/wiki/AltLinux/DotFiles/Shells/Zsh/Sovety?time=2005-07-18+13%3A53%3A25">2005-07-18 13:53:25&lt;/a> и &lt;a href="http://freesource.info/wiki/AltLinux/DotFiles/Shells/Zsh/Sovety?time=2005-07-23+15%3A35%3A48">2005-07-23 15:35:48&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;!--notypo-->{{watchers}}&lt;!--/notypo-->&lt;/div>&lt;/div>
</description>
</item>
</channel>
</rss>
