LINUX.ORG.RU

Автозаполнение всех бинарей из PATH для скрипта

 , , ,


0

1

Написал небольшой скриптец, который открывает процесс в фоне и закрывает терминал(как в dwm вроде):

#!/bin/sh

if [[ -z $@ ]]; then
    echo "No arguments were provided...";
    exit;
fi

nohup $@ &> /dev/null &

sleep .1;

kill -9 $PPID;

Только проблема заключается в том, что нет автозаполнения через tab для приложений, которые валяются в PATH. Только для текущей директории. Например я хочу открыть Pdf файл через zathura, пишу

ts zat<TAB>

и на этом этапе ничего не дозаполняется, я хочу, чтобы он как если бы я просто написал в терминале zat<TAB> дополнил это zathura. Как это можно сделать?

Я находил bash programmable autocomplete гайд, но там судя по всему немного не про это и нужно указывать конкретные строки для автозаполнения, а мне не совсем это нужно

Тебе надо написать комплишн для своего скрипта для шелла, в котором он запускается, если шелл поддерживает комплишн.

Ты пытаешься дополнить аргументы твоего скрипта, шелл о них ничего не знает.

mord0d ★★★★★
()
Ответ на: комментарий от mord0d

В его частном случае может сгодится и это:

complete -A command ts

Только оно так все аргументы будет как команды дополнять.

Если есть bash-completion, то можно получить и дополнение параметров (команда выше здесь не нужна):

_complete_ts() { _command_offset 1; }
complete -F _complete_ts ts
xaizek ★★★★★
()
Последнее исправление: xaizek (всего исправлений: 1)

Сначала вводи команду, потом перемещай курсор в начало строки и дописывай название своего скрипта.

Legioner ★★★★★
()

Можно ещё проще. Поставь на хоткей последовательность символов, чтобы перейти в начало строки, дописать свою команду и нажать ввод. В баш элементарно делается, правда я с телефона в точности не подскажу.

wandrien ★★
()

Думаю, стоит посмотреть стандартные скрипты автодополнения от баша, там то что Вам нужно должно быть сделано для sudo.

erfea ★★★★★
()
Ответ на: комментарий от anonymous

Да вроде через bind и делается. Не помню, я последний раз вручную хоткей для баша настаивал лет 5 назад.

wandrien ★★
()
Ответ на: комментарий от Legioner

Я сейчас так и делаю, но что-то такое себе…

@wandrien, спасибо за решение. Да, оно будет работать, но лично меня оно не очень устраивает

@xaizek, спасибо, попробую это

wh75per
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.