edit title

This commit is contained in:
arcan1s 2014-07-18 07:42:04 +04:00
parent b2904998b8
commit 456b8eefa0
2 changed files with 11 additions and 11 deletions

View File

@ -4,12 +4,12 @@ type: paper
hasTr: true
layout: paper
tags: linux, разработка
title: Написание собственных дополнений для Shell. Zsh
title: Написание своих дополнений для Shell. Zsh
short: writting-own-completions-p1
description: В данных статьях описываются некоторые основы создания файлов автодополнений для собственной программы.
description: В данных статьях описываются некоторые основы создания файлов дополнений для собственной программы.
---
<h2><a name="preamble" class="anchor" href="#preamble"><span class="octicon octicon-link"></span></a>Преамбула</h2>
<p>В процессе разработки <a href="/ru/projects/netctl-gui">одного своего проекта</a> возникло желание добавить также файлы автодополнений (только не спрашивайте зачем). Благо я как-то уже брался за написание подобных вещей, но читать что-либо тогда мне было лень, и так и не осилил.</p>
<p>В процессе разработки <a href="/ru/projects/netctl-gui">одного своего проекта</a> возникло желание добавить также файлы дополнений (только не спрашивайте зачем). Благо я как-то уже брался за написание подобных вещей, но читать что-либо тогда мне было лень, и так и не осилил.</p>
<h2><a name="introduction" class="anchor" href="#introduction"><span class="octicon octicon-link"></span></a>Введение</h2>
<p>Существует несколько возможных вариантов написания файла автодополнения для zsh. В случае данной статьи я остановлюсь только на одном из них, который предоставляет большие возможности и не требует больших затрат (например, работы с регулярными выражениями).</p>

View File

@ -4,12 +4,12 @@ type: paper
hasTr: true
layout: paper
tags: linux, разработка
title: Написание собственных дополнений для Shell. Bash
title: Написание своих дополнений для Shell. Bash
short: writting-own-completions-p2
description: В данных статьях описываются некоторые основы создания файлов автодополнений для собственной программы.
description: В данных статьях описываются некоторые основы создания файлов дополнений для собственной программы.
---
<h2><a name="preamble" class="anchor" href="#preamble"><span class="octicon octicon-link"></span></a>Преамбула</h2>
<p>В процессе разработки <a href="/ru/projects/netctl-gui">одного своего проекта</a> возникло желание добавить также файлы автодополнений (только не спрашивайте зачем). Благо я как-то уже брался за написание подобных вещей, но читать что-либо тогда мне было лень, и так и не осилил.</p>
<p>В процессе разработки <a href="/ru/projects/netctl-gui">одного своего проекта</a> возникло желание добавить также файлы дополнений (только не спрашивайте зачем). Благо я как-то уже брался за написание подобных вещей, но читать что-либо тогда мне было лень, и так и не осилил.</p>
<h2><a name="introduction" class="anchor" href="#introduction"><span class="octicon octicon-link"></span></a>Введение</h2>
<p>Bash, в <a href="/ru/2014/07/17/writting-own-completions-p1">отличие от zsh</a>, требует к себе некоторого велосипедостроения в отношении дополнений. Бегло погуглив, я не нашел более-менее нормальных туториалов, потому за основу были взяты имеющиеся в системе файлы дополнений для <code>pacman</code>.</p>
@ -17,7 +17,7 @@ description: В данных статьях описываются некото
<p>Рассмотрим на примере все того же моего приложения. Я напомню, что часть справки к которому выглядит таким образом:</p>
{% highlight bash %}
netctl-gui [ -h | --help ] [ -e ESSID | --essid ESSID ] [ -с FILE | --config FILE ]
[ -o PROFILE | --open PROFILE ] [ -t NUM | --tab NUM ] [ --set-opts OPTIONS ]
[ -o PROFILE | --open PROFILE ] [ -t NUM | --tab NUM ] [ --set-opts OPTIONS ]
{% endhighlight %}
<p>Список флагов:
@ -39,20 +39,20 @@ netctl-gui [ -h | --help ] [ -e ESSID | --essid ESSID ] [ -с FILE | --config FI
_netctl_gui_arglist=()
_netctl_gui_settings=()
_netctl_gui_tabs=()
_netctl_profiles() {}
_netctl_profiles() {}
{% endhighlight %}
Затем идут основные функции, которые будут вызываться для дополнения для определенной команды. В моем случае команда одна, и функция одна:
{% highlight bash %}
# work block
_netctl-gui() {}
_netctl-gui() {}
{% endhighlight %}
Далее, опять, <b>без выделения в отдельную функцию</b> делаем соответствие функция-команда:
{% highlight bash %}
complete -F _netctl_gui netctl-gui
complete -F _netctl_gui netctl-gui
{% endhighlight %}
</p>
@ -105,7 +105,7 @@ _netctl_gui() {
wantfiles='-@(c|-config)'
wantprofiles='-@(o|-open|s|-select)'
wantsettings='-@(-set-opts)'
wanttabs='-@(t|-tab)'
_get_comp_words_by_ref cur prev