Screen: Diretório atual na barra de legenda (não como título)

2

Como posso mostrar o diretório atual da sessão atualmente ativa em uma barra de status da tela (não como título da sessão!)?

Eu tentei com várias combinações n, m = {0,1} de

backtick 102 n m pwd
caption string '%102''

(Shell é zsh com oh-my-zsh)

    
por Zulan 13.03.2014 / 12:36

2 respostas

2

Acho que você encontrará muito interesse em este . Parece que o que é feito é definir um título com uma pequena função em zsh para o diretório atual, em seguida, executar isso antes de cada comando, em seguida, armadilha que em screen ... Eu não acho que usando hardstatus ou legenda faz uma diferença para o método:

em. zshrc :

function title {
  if [[ $TERM == "screen" ]]; then
    # Use these two for GNU Screen:
    print -nR $'3k'$1$'3'\

    print -nR $'3]0;'$2$'\a'
  elif [[ $TERM == "xterm" || $TERM == "rxvt" ]]; then
    # Use this one instead for XTerms:
    print -nR $'3]0;'$*$'\a'
  fi
}

function precmd {
  title zsh "$PWD"
}

function preexec {
  emulate -L zsh
  local -a cmd; cmd=(${(z)1})
  title $cmd[1]:t "$cmd[2,-1]"
}

Em .screenrc :

caption always "%3n %t%? (%u)%?%?: %h%?"

    
por 13.03.2014 / 15:55
0

Eu faço isso com o bash. O bash acionará PROMPT_COMMAND toda vez que o prompt aparecer, para que você possa fazer eco no diretório dentro dos códigos de escape.

No meu .screenrc :

setenv PROMPT_COMMAND 'echo -ne "3_'pwd'3\"'
caption string '%{+b}%n*%t%{-} %h%='
    
por 04.04.2014 / 23:17