Estou procurando uma solução para pesquisar o histórico com peixes quando seu histórico está cheio de comandos longos. Muitas vezes tenho comandos curl que contêm cargas json em meu histórico que desejo repetir, por exemplo, e são longos o suficiente para não caberem em uma única linha, o que torna muito difícil diferenciá-los rapidamente . Minha solução atual é digitar mais do que eu quero, mas é muito chato.
Existe uma maneira de fazer com que as entradas do histórico apareçam conforme foram executadas, sem reduzi-las a uma única linha? Existe uma solução mais inteligente que não estou pensando em pedir?
Isso foi solicitado nos comandos multiline do histórico de solicitação de recursos #2585 , onde duas soluções alternativas foram sugeridas pelos usuários:
Aplique a divisão manualmente.
Por exemplo:
set line (echo $history[1])
para o elemento histórico mais recente.Usando
sed
para dividir linhas no arquivofish_history
.Infelizmente, esta solicitação de recurso nunca foi marcada como atribuída a um desenvolvedor.
Ao comentar sua versão SO fechada desta pergunta, tive uma pergunta semelhante com o Nushell. Infelizmente, não tenho conhecimento de nenhum fuzzy-finder em qualquer implementação de shell (ou não-shell) que suporte conteúdo multilinha no próprio localizador.
Não é o ideal, mas há algumas soluções alternativas
fzf
que usei com o Nushell. A função "Visualizar"fzf
pode modificar os resultados e você pode usá-la para transformar o histórico novamente em um resultado formatado corretamente, com várias linhas (e até mesmo realçado pela sintaxe). No Nushell, isso acontecia comnu-highlight
o integrado do Fishfish_indent --ansi
essencialmente faz a mesma coisa (e um pouco melhor, já que recua corretamente). Isso pode pelo menos transformar a saída de linha única no "Finder" em uma visualização de várias linhas que é mais legível.O formato geral do comando que você pode testar na linha de comando do Fish é:
Além disso, este
fzf
plugin para Fish já tem a visualização habilitada, mas eu recomendo definir a janela de visualização à direita para que você possa ver o máximo de linhas possível.