Vindo de um mundo FreeBSD, desejo que o terminal Linux se comporte como o FreeBSD, especialmente a versão 9.1, basicamente quando você digita cd
o terminal e pressiona a seta "para cima", pode navegar por todos os comandos do histórico, começando com o cd
que faz você ganhar muito tempo.
Não sei como habilitar esse recurso no Linux Debian ou CentOS, o que me força a digitar o todo, alguém poderia me ajudar.
bindkey -k (up|down) history-search-(back|for)ward
-o.tcshrc
como descrito aqui . Legal!Respostas:
Adicione o seguinte a
~/.inputrc
:Explicação
~/.inputrc
é o arquivo de configuração do GNU readline . Muitos shells, incluindobash
etcsh
usam o readline para edição de linha de comando. As duas linhas acima instruirão o readline a invocar sua funcionalidade de pesquisa de histórico quando as seqüências de escape da tecla de seta para cima (\e[A
) e tecla de seta para baixo (\e[B
) forem encontradas.fonte
Last word
é frequentemente um caminho que eu quero experimentar em vários clichês arcanos. E Shift F12 para me colocar de volta editando toda a última linha desde o início.~/.inputrc
é uma ferramenta útil.O que está acontecendo é que o FreeBSD e Linux usam diferentes shells por padrão. O FreeBSD assume como padrão o tcsh , que tinha melhores recursos interativos do que o bash no passado (mas o bash alcançou), mas recursos de script notavelmente piores .
A maneira mais direta de obter o ambiente com o qual você está acostumado seria mudar seu shell para o tcsh no Linux. Desde que o tcsh esteja instalado em todo o sistema (se não estiver, peça ao administrador do sistema para instalá-lo), execute
chsh -s tcsh
para alterar seu shell padrão.Como alternativa, você pode configurar o bash para ter este comando ao qual está acostumado. Por padrão, as setas Upe Downnavegam entre todos os comandos do histórico, não apenas aqueles que começam com o prefixo digitado. Para mudar isso para o comportamento que você está acostumado, coloque as seguintes linhas no arquivo de inicialização do bash, que está
.bashrc
no seu diretório pessoal. Execute. ~/.bashrc
ou inicie um novo shell para reler o arquivo de inicialização.As seqüências de escape são o que o seu terminal envia ao shell quando você pressiona uma tecla de seta. Uppode ser
\eOA
(escape,O
,A
) ou\e[A
dependendo do seu terminal, e similarmente para Down.Por padrão, o bash oferece diferentes associações de teclas para pesquisar o histórico de comandos. Você pode pressionar Ctrl+ e R, em seguida, inserir alguns caracteres para procurar um comando contendo essa substring em qualquer lugar da linha. Pressione Ctrl+ Spara avançar ou não para trás. A pesquisa é incremental (ou seja, conforme você digita); Alt+ Pe Alt+ Nfornecem uma pesquisa não incremental.
Em vez de bash e tcsh, você pode alternar para zsh, que possui alguns recursos interessantes não encontrados em outros shells . O Zsh possui Ctrl+ Re Ctrl+ Spor padrão, assim como o bash. Para obter Upe Downcomo você tinha no tcsh, insira as seguintes linhas
~/.zshrc
:Se você deseja usar o mesmo shell em qualquer lugar, também pode usar o bash ou o zsh no FreeBSD, desde que a porta esteja instalada (novamente, pergunte ao administrador do sistema).
fonte
tcsh
está disponível para a maioria das distribuições Linux. Tente instalar otcsh
pacote e execute-ochsh -s /bin/tcsh
para torná-lo seu shell padrão.fonte
Outras respostas resolvem isso, mas se você quiser mais, dê uma olhada https://github.com/zsh-users/zsh-history-substring-search
O Prezto ( https://github.com/sorin-ionescu/prezto ) também está cheio de itens do zsh.
fonte