Como posso dividir meu espaço de shell em duas partes?

1

No meu shell c, eu uso o alias p ls -lt; pwd para agilizar as coisas ao trocar diretórios e obter suas listagens.

As coisas poderiam ser muito mais fáceis se eu pudesse de alguma forma dividir o espaço que tenho no meu console em duas partes, tal que o prompt esteja na parte inferior e a parte superior sempre mostre a listagem do diretório atual (o diretório que eu sou usando na segunda parte).

A parte superior precisa ser dinâmica no sentido de que sempre que eu alternar diretórios usando o prompt na parte inferior, ela deve fornecer a listagem do diretório atual na metade superior.

Existe alguma maneira (script?) que me permita fazer algo assim?

    
por Lazer 09.09.2010 / 22:59

3 respostas

1

Midnight Commander irá fazer o que você quiser. Ele fornece um navegador de arquivos de dois painéis na parte superior e um prompt semelhante a um shell na parte inferior. Eu recomendaria definir a opção > Configuração > Pausa depois de correr > Sempre assim quando você digita um comando, o resultado é mostrado antes que a tela do navegador de arquivos seja exibida novamente. Infelizmente, não tem uma janela de shell maior para a metade inferior, como você deseja.

    
por 10.09.2010 / 00:25
0

Se você quiser que a parte superior apareça o tempo todo, você pode usar a tela ou tmux . Embora esse não seja o recurso mais usado, ambos os programas oferecem suporte à divisão de uma janela em dois. Assim, você pode executar o seu shell interativo na janela inferior e usar um alias para cd e exibir as coisas na janela superior. Uma maneira fácil de fazer esse último bit é criar um canal nomeado ( mkfifo ~/.window-pipe-$PPID onde $PPID é o ID do processo screen ou tmux process) e executar um script como este na janela superior (sintaxe sh , adapte-se a csh se precisar):

while read -r dir; do
  printf '3[?9l%s' "$dir"
  cd "$dir"
  ls -lt
done <~/.window-pipe-$PPID

Você pode querer truncar a saída de ls para caber na janela, já que é provavelmente mais útil manter as primeiras linhas que as últimas linhas, se não couberem. Na janela inferior, a substituição cd seria uma função como (novamente, estou usando a sintaxe sh):

cd () {
  builtin cd "$@" && pwd >~/.window-pipe-$PPID
}
    
por 10.09.2010 / 00:15
0

Mudar para um gerenciador de arquivos de linha de comando provavelmente seria uma solução muito mais fácil e mais limpa do que inventar algo personalizado, já que a ideia já foi implementada. Há uma infinidade deles onde todos são altamente configuráveis, como o CLEX :

    
por 10.09.2010 / 00:25