Pregunta

Sé que puedo exec un date comando en mi zsh de símbolo del sistema.Sin embargo, es una muestra de la viejo tiempo;para ver la hora, tengo que golpear <return> y de nuevo el mensaje con la hora actual.

Es allí una manera de configurar el zsh del sistema para la actualización constante de la misma cada segundo?

¿Fue útil?

Solución

Esto sería .... desagradable en una pronta zsh estándar (o bash, u otros proyectiles).

Le sugiero que sería mejor usar la pantalla de GNU.

La pantalla puede tener una línea de estado que puede mostrar el tiempo. He aquí un ejemplo screenrc vaya a "Red Hat guía Revista de A a GNU Screen" para ver la muestra (reproduzco que aquí) que, cuando se ejecuta la pantalla, mostrar la hora actual en la esquina inferior derecha de la terminal de:

~ / .screenrc

hardstatus alwayslastline
hardstatus string '%{= kG}[ %{G}%H %{g}][%= %{=kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B}%Y-%m-%d %{W}%c %{g}]'

# Default screens
screen -t shell1        0
screen -t shell2        1

http://www.gnu.org/software/screen/

Otros consejos

Nota:Escribí esta respuesta para una pregunta similar, pero viendo cómo esta cuestión tiene más puntos de vista pienso volver a colocar mi respuesta a esta pregunta sería útil.

De hecho esto es posible sin tener que recurrir a extraños hacks.Tengo esto en mi .zshrc como

RPROMPT='[%D{%L:%M:%S %p}]'

TMOUT=1

TRAPALRM() {
    zle reset-prompt
}

El TRAPALRM función se llama cada TMOUT segundos (en este caso 1), y de aquí se realiza una petición de actualización, y lo hace hasta que un comando inicia la ejecución (y no interfiere con nada de lo que escriba en el símbolo del sistema antes de oprimir la tecla enter).

Fuente: http://www.zsh.org/mla/users/2007/msg00944.html (Es de 2007!)

suena como una solicitud agradable para mí. Si hay algo que tiene más sentido que muestra el momento en el que se visualiza el símbolo.

Peter Stephenson registró una técnica . Pruebe algo como esto en .zshrc:

PROMPT="[%T] %n@%M %~ %# "

schedprompt() {
  emulate -L zsh
  zmodload -i zsh/sched

  # Remove existing event, so that multiple calls to
  # "schedprompt" work OK.  (You could put one in precmd to push
  # the timer 30 seconds into the future, for example.)
  integer i=${"${(@)zsh_scheduled_events#*:*:}"[(I)schedprompt]}
  (( i )) && sched -$i

  # Test that zle is running before calling the widget (recommended
  # to avoid error messages).
  # Otherwise it updates on entry to zle, so there's no loss.
  zle && zle reset-prompt

  # This ensures we're not too far off the start of the minute
  sched +30 schedprompt
}

schedprompt
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top