AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 780554
Accepted
fauve
fauve
Asked: 2024-07-22 03:20:58 +0800 CST2024-07-22 03:20:58 +0800 CST 2024-07-22 03:20:58 +0800 CST

preenchimento automático zsh para valor do parâmetro

  • 772

Visao geral

Aqui está meu arquivo de aparência automática:

_triumphum_complete() {
_arguments \
  '(- 1 *)'{-h,--help}'[show help options]' \
  '(- 1 *)--tui[Run the game selection interface]' \
  '(- 1 *)'{-r,--run}'[Run a given game and track playing time.]' \
  '(- 1 *)'{-a,--about}'[Show about message.]' \
  '(- 1 *)'{-d,--donate}'[Open link to give a tip.]' \
  '(- 1 *)--no-splash[Do not show splash at opening.]' \
  '(- 1 *)--list-games[Afficher la liste des jeux.]' \
  '(- 1 *)--list-licences[Afficher la liste des licences.]' \
  '(- 1 *)--list-genres[Afficher la liste des genres de jeu.]' \
  '(- 1 *)--list-platforms[Afficher la liste des genres des plateformes.]' \
  '(- 1 *)'{-c,--config-file}'[Select different config file from default one.]' \
  '(- 1 *)'{-g,--games}'[Select different game file from default one.]' \
  '(- 1 *)'{-p,--platforms}'[Select different platform file from default one.]' \
  '(- 1 *)'{-l,--licences}'[Select different licence file from default one.]' \
  '(- 1 *)'{-t,--game-genres}'[Select different game genre file from default one.]' \
  '(- 1 *)--layout[Utiliser des raccourcis dactyliques adaptés à la disposition de clavier.]' \
  '(- 1 *)--add-game[Ajouter un nouveau jeu.]' \
  '(- 1 *)--add-licence[Ajouter une nouvelle licence.]' \
  '(- 1 *)--add-genre[Ajouter un nouveau genre de jeu.]' \
  '(- 1 *)--add-platform[Ajouter une nouvelle plateforme.]' \
  '(- 1 *)--del-game[Suprimer un jeu.]' \
  '(- 1 *)--del-licence[Suprimer une licence.]' \
  '(- 1 *)--del-genre[Suprimer un genre de jeu.]' \
  '(- 1 *)--del-platform[Suprimer une plateforme.]' \
}

compdef _triumphum_complete triumphum

Sua renderização corresponde ao objetivo, como você pode ver:

% % triumphum -<tab>
option
--about           -a  -- Show about message.
--add-game            -- Ajouter un nouveau jeu.
--add-genre           -- Ajouter un nouveau genre de jeu.
--add-licence         -- Ajouter une nouvelle licence.
--add-platform        -- Ajouter une nouvelle plateforme.
--config-file     -c  -- Select different config file from default one.
--del-game            -- Suprimer un jeu.
--del-genre           -- Suprimer un genre de jeu.
--del-licence         -- Suprimer une licence.
--del-platform        -- Suprimer une plateforme.
--donate          -d  -- Open link to give a tip.
--game-genres     -t  -- Select different game genre file from default one.
--games           -g  -- Select different game file from default one.
--help            -h  -- show help options
--layout              -- Utiliser des raccourcis dactyliques adaptés à la disposition de clavier.
--licences        -l  -- Select different licence file from default one.
--list-games          -- Afficher la liste des jeux.
--list-genres         -- Afficher la liste des genres de jeu.
--list-licences       -- Afficher la liste des licences.
--list-platforms      -- Afficher la liste des genres des plateformes.
--no-splash           -- Do not show splash at opening.
--platforms       -p  -- Select different platform file from default one.
--run             -r  -- Run a given game and track playing time.
--tui                 -- Run the game selection interface

Porém, quero adicionar um preenchimento automático especificamente para a --runopção que deve ser considerada apenas como valores {"crash", "civilization", "vicecity"}.

O que eu fiz

Já tentei fazer uma autocompletação específica triumphum --rune combiná-la separadamente com:

_triumphum_run_games() {
    local games=('civilization' '0ad' 'vicecity' 'crash')
    _arguments 'game' games
}
compdef _triumphum_run_games "triumphum --run"   

Mas não funciona.

A questão

Como adicionar uma autocompleição especificamente para triumphum --run?

shell
  • 1 1 respostas
  • 19 Views

1 respostas

  • Voted
  1. Best Answer
    Gilles 'SO- stop being evil'
    2024-07-23T04:01:23+08:002024-07-23T04:01:23+08:00

    _argumentsdescreve como completar um comando e seus argumentos. Para argumentos que são opções que recebem um argumento, passe uma opção como --my-option:description of the argument:how to complete the argument. Existem diversas maneiras de especificar como completar o argumento de uma opção. Para completar um conjunto fixo de palavras, coloque as palavras entre parênteses.

    _arguments \
      …
      '(- 1 *)'{-r,--run}'[Run a given game and track playing time.]:game to run:(civilization 0ad vicecity crash)' \
      …
    

    Se você não quiser codificar as conclusões, coloque o código para gerar as conclusões após o segundo dois pontos. Por exemplo:

    function _triumphum_run_games {
      local games
      games=("${(f@)$(_call_program triumphum-list-games ${(q)words[1]} --list-games)}")
      compadd -- $games
    }
    …
    
    _arguments \
      …
      '(- 1 *)'{-r,--run}'[Run a given game and track playing time.]:game to run:_triumphum_run_games' \
      …
    
    
    • 0

relate perguntas

  • Como funciona este comando? mkfifo /tmp/f; cat /tmp/f | /bin/sh -i 2>&1 | nc -l 1234 > /tmp/f

  • FreeBSD's sh: funções de lista

  • Existe uma maneira de fazer ls mostrar arquivos ocultos apenas para determinados diretórios?

  • o que grep -v grep faz

  • Como salvar um caminho com ~ em uma variável?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve