Comando-T para shell

4

Eu estou procurando por uma extensão de shell que me permite fazer a conclusão do nome do arquivo de forma semelhante ao Command-T .

Command-T é um recurso do TextMate e um plugin para o Vim que permite selecionar nomes de arquivos digitando partes deles que não precisam ser contíguas. Ele usa um sistema de classificação para decidir qual nome de arquivo usar e fornece um menu de opções disponíveis. Se você não estiver familiarizado com esse recurso, a melhor maneira de entendê-lo é assistir ao primeiro vídeo da página do github do Command-T .

Qual ferramenta posso usar para que eu possa ter a conclusão do estilo Command-T para nomes de arquivos no meu shell? (Bash atualmente, aberto a alternativas.)

    
por Ryan Patterson 21.02.2012 / 20:47

5 respostas

2

Zsh para o resgate!

Adicione o seguinte ao seu arquivo ~ / .zshrc e divirta-se!

Por favor, note que pode não ser tão boa quanto a capacidade de encontrar nomes de arquivos, mas é melhor do que o preenchimento automático padrão encontrado no bash.

##############################################################
# Stuff from http://zshwiki.org/home/examples/compquickstart #
##############################################################
zmodload zsh/complist
autoload -U compinit && compinit
zstyle ':completion:::::' completer _complete _approximate
zstyle -e ':completion:*:approximate:*' max-errors 'reply=( $(( ($#PREFIX + $#SUFFIX) / 3 )) )'
zstyle ':completion:*:descriptions' format "- %d -"
zstyle ':completion:*:corrections' format "- %d - (errors %e})"
zstyle ':completion:*:default' list-prompt '%S%M matches%s'
zstyle ':completion:*' group-name ''
zstyle ':completion:*:manuals' separate-sections true
zstyle ':completion:*' menu select
zstyle ':completion:*' verbose yes
## case-insensitive (uppercase from lowercase) completion
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
#zstyle ':completion:*' special-dirs ..
    
por 21.02.2012 / 21:09
1

Veja como eu adicionei Command-T / CtrlP preenchimento fuzzy para o meu ZShell:

Passo 1: Instale matcher .

Etapa 2: adicione o seguinte ao seu ~/.zshrc :

_matcher_complete() {
  integer i=1
  (git ls-files 2>/dev/null || find .) | /usr/local/bin/matcher --limit 20 ${words[CURRENT]} | while read line; do
    compadd -U -2 -V $i -- "$line"
    i=$((i+1))
  done
  compstate[insert]=menu
}

zle -C matcher-complete complete-word _generic
zstyle ':completion:matcher-complete:*' completer _matcher_complete
zstyle ':completion:matcher-complete:*' menu-select

bindkey '^X^T' matcher-complete

Passo 3: Digite uma string para fuzzy-find, digite CTRL + xt e aproveite:

    
por 04.03.2013 / 20:12
0

O nome do que o Cmd + T faz no TextMate é "correspondência difusa" (e variantes ).

Pesquisando estes termos associados a bash returns este script e uma questão relacionada no Stackoverflow.

Parece que encontrei um novo brinquedo!

    
por 22.02.2012 / 00:04
0

Você pode querer verificar o fzf , um localizador difuso de propósito geral para qualquer shell.

Seu script de instalação adiciona a ligação de teclas CTRL-T ao seu shell, que funciona muito bem como o Command-T.

    
por 12.01.2014 / 17:52
0

fish é um shell alternativo que suporta autocompletar parcial do caminho

Por exemplo, cd /v/l/fsck Tab converterá o caminho para /var/log/fsck/ . cd /u/s/appl Tab expandirá o caminho para /usr/share/applications/ .

    
por 18.10.2018 / 12:11