mirror of
https://github.com/arcan1s/arcanis.me.git
synced 2025-04-24 23:37:19 +00:00
edit title
This commit is contained in:
parent
b2904998b8
commit
456b8eefa0
@ -4,12 +4,12 @@ type: paper
|
|||||||
hasTr: true
|
hasTr: true
|
||||||
layout: paper
|
layout: paper
|
||||||
tags: linux, разработка
|
tags: linux, разработка
|
||||||
title: Написание собственных дополнений для Shell. Zsh
|
title: Написание своих дополнений для Shell. Zsh
|
||||||
short: writting-own-completions-p1
|
short: writting-own-completions-p1
|
||||||
description: В данных статьях описываются некоторые основы создания файлов автодополнений для собственной программы.
|
description: В данных статьях описываются некоторые основы создания файлов дополнений для собственной программы.
|
||||||
---
|
---
|
||||||
<h2><a name="preamble" class="anchor" href="#preamble"><span class="octicon octicon-link"></span></a>Преамбула</h2>
|
<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>
|
<h2><a name="introduction" class="anchor" href="#introduction"><span class="octicon octicon-link"></span></a>Введение</h2>
|
||||||
<p>Существует несколько возможных вариантов написания файла автодополнения для zsh. В случае данной статьи я остановлюсь только на одном из них, который предоставляет большие возможности и не требует больших затрат (например, работы с регулярными выражениями).</p>
|
<p>Существует несколько возможных вариантов написания файла автодополнения для zsh. В случае данной статьи я остановлюсь только на одном из них, который предоставляет большие возможности и не требует больших затрат (например, работы с регулярными выражениями).</p>
|
||||||
|
@ -4,12 +4,12 @@ type: paper
|
|||||||
hasTr: true
|
hasTr: true
|
||||||
layout: paper
|
layout: paper
|
||||||
tags: linux, разработка
|
tags: linux, разработка
|
||||||
title: Написание собственных дополнений для Shell. Bash
|
title: Написание своих дополнений для Shell. Bash
|
||||||
short: writting-own-completions-p2
|
short: writting-own-completions-p2
|
||||||
description: В данных статьях описываются некоторые основы создания файлов автодополнений для собственной программы.
|
description: В данных статьях описываются некоторые основы создания файлов дополнений для собственной программы.
|
||||||
---
|
---
|
||||||
<h2><a name="preamble" class="anchor" href="#preamble"><span class="octicon octicon-link"></span></a>Преамбула</h2>
|
<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>
|
<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>
|
<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>
|
<p>Рассмотрим на примере все того же моего приложения. Я напомню, что часть справки к которому выглядит таким образом:</p>
|
||||||
{% highlight bash %}
|
{% highlight bash %}
|
||||||
netctl-gui [ -h | --help ] [ -e ESSID | --essid ESSID ] [ -с FILE | --config FILE ]
|
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 %}
|
{% endhighlight %}
|
||||||
|
|
||||||
<p>Список флагов:
|
<p>Список флагов:
|
||||||
@ -39,20 +39,20 @@ netctl-gui [ -h | --help ] [ -e ESSID | --essid ESSID ] [ -с FILE | --config FI
|
|||||||
_netctl_gui_arglist=()
|
_netctl_gui_arglist=()
|
||||||
_netctl_gui_settings=()
|
_netctl_gui_settings=()
|
||||||
_netctl_gui_tabs=()
|
_netctl_gui_tabs=()
|
||||||
_netctl_profiles() {}
|
_netctl_profiles() {}
|
||||||
{% endhighlight %}
|
{% endhighlight %}
|
||||||
|
|
||||||
Затем идут основные функции, которые будут вызываться для дополнения для определенной команды. В моем случае команда одна, и функция одна:
|
Затем идут основные функции, которые будут вызываться для дополнения для определенной команды. В моем случае команда одна, и функция одна:
|
||||||
|
|
||||||
{% highlight bash %}
|
{% highlight bash %}
|
||||||
# work block
|
# work block
|
||||||
_netctl-gui() {}
|
_netctl-gui() {}
|
||||||
{% endhighlight %}
|
{% endhighlight %}
|
||||||
|
|
||||||
Далее, опять, <b>без выделения в отдельную функцию</b> делаем соответствие функция-команда:
|
Далее, опять, <b>без выделения в отдельную функцию</b> делаем соответствие функция-команда:
|
||||||
|
|
||||||
{% highlight bash %}
|
{% highlight bash %}
|
||||||
complete -F _netctl_gui netctl-gui
|
complete -F _netctl_gui netctl-gui
|
||||||
{% endhighlight %}
|
{% endhighlight %}
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@ -105,7 +105,7 @@ _netctl_gui() {
|
|||||||
wantfiles='-@(c|-config)'
|
wantfiles='-@(c|-config)'
|
||||||
wantprofiles='-@(o|-open|s|-select)'
|
wantprofiles='-@(o|-open|s|-select)'
|
||||||
wantsettings='-@(-set-opts)'
|
wantsettings='-@(-set-opts)'
|
||||||
|
|
||||||
wanttabs='-@(t|-tab)'
|
wanttabs='-@(t|-tab)'
|
||||||
_get_comp_words_by_ref cur prev
|
_get_comp_words_by_ref cur prev
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user