Автозаполнение вкладок в bash с использованием php - PullRequest
0 голосов
/ 01 сентября 2010

Я пишу простой скрипт для автозаполнения при нажатии клавиши TAB.

Скрипт php содержит простое "echo".

В этом случае автозаполнение работает, но вкладка ""добавляется к выводу, делая его бесполезным

Код из сценария

scriptPath='/home/hassen/workspace/scripts/bin/test.php'

_dda()
{
    local cur
    COMPREPLY=()
    unset COMP_WORDS[0] #remove "j" from the array
    cur=${COMP_WORDS[*]}
    IFS=$'\n\n' read -d '' -a COMPREPLY < <($scriptPath --completion "$cur")
    return 0
}
complete -F _dda dda

alias dda=$scriptPath

Код из сценария php

<?php
echo "hello";
?>

Вот раздражающая часть: Если я печатаюэхо в Python или Ruby, это работает как шарм - т.е. каждый раз, когда я нажимаю TAB, он вызывает сценарии и выводит привет.

Это ошибка с PHP или моим кодом?Кажется, они не согласны в http://bugs.php.net/bug.php?id=52755

Ответы [ 4 ]

1 голос
/ 14 февраля 2015

CLIFramework предоставляет команду, которая помогает вам генерировать сценарий завершения bash по вашим определениям команд, поэтому вам не нужно писать сценарий завершения вручную:

https://github.com/c9s/CLIFramework

Screencast:

enter image description here

ps это также работает для zsh

1 голос
/ 02 сентября 2010

Здесь все работает как надо, вы очень уверены, что сам файл PHP не содержит вкладку, возможно, после ?>?

Версии: PHP 5.3.2, GNU bash версия 4.1.5

0 голосов
/ 26 апреля 2013

У меня была та же проблема, не напрямую с пользовательским завершением bash, а через завершение Makefile bash.

Обходной путь на Проблема автозаполнения bash Makefile с сгенерированными PHP целями

0 голосов
/ 01 января 2012

В PHP задокументирована известная проблема, которая мешает этому работать. https://bugs.php.net/bug.php?id=53040

Используйте / usr / bin / php-cgi вместо / usr / bin / php для запуска скрипта, и он должен работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...