Cómo agregar la fecha / hora actual al indicador de clink / cmder


12

Soy un usuario bastante feliz de clink a través del gran paquete cmder . Lo único que echo de menos es una manera fácil de configurar el símbolo del sistema para mostrar la fecha / hora actual (y el último código de salida, número de historial, como en bash... etc.).

¿Podría alguien señalarme la dirección correcta sobre cómo hacer esto?


¿Puedes usar Windows date /t? Además, Windows almacena el último código de salida %errorlevel%, mientras que sh usa $?. Prueba esos.
Bob

Pero, ¿cómo integrar esa salida a la solicitud? No quiero ejecutar date /ttodo el tiempo antes de ejecutar algún comando de ejecución prolongada.
Zsolt Botykai

Oh. Ve a ver prompt /?, hay una opción de fecha y hora allí. Una vez más, ese es el símbolo del sistema estándar de Windows: no tengo idea de qué hacer clink o cmder.
Bob

Respuestas:


9

Pruebe esta configuración de solicitud (solo ejemplo, muestra cómo puede llamar a cualquier aplicación de consola dentro de "impresión de solicitud"). ¡Nota! Funciona solo en ConEmu.

prompt $p$s$e]9;7;"cmd /c echo (%DATE% %TIME%)"$e\$g

Pero, como dijo Bob, hay una manera más fácil:

prompt $p$s$d$s$t$s$g

Y para cmderusted debe editar el suministrado, init.batya que define la configuración de solicitud.


Para cmder, la forma sugerida de editar la configuración del indicador está activada %CMDER_ROOT%\config\user-startup.cmdy no init.bat.
Wegry

En win7 con Cmder, agregar $thizo el truco para mí:@prompt $E[1;32;40m$P$S{git}{hg} $t$S$_$E[1;30;40m{lamb}$S$E[0m
Benj

@wegry este %CMDER_ROOT%\config\user-startup.cmdarchivo no parece tener ningún efecto en mi configuración. Tal vez lo estaba haciendo mal.
Benj

@Benj No parecía funcionar para mí al principio tampoco, pero un reinicio más tarde lo hizo. Estoy desconcertado por lo que hizo que empezara a funcionar.
wegry

2
en 2018 para mí trabajé prompt cmd /c echo ($t$s) :$p$gpara agregar al user-profile.cmdarchivo (windows10).
Edwin

10

La respuesta proporcionada por Maximus ya no es válida para cmder 1.3+

Debe crear un .luaarchivo (por ejemplo my_prompt.lua) dentro de la carpeta de cmder config con su definición personalizada (fuente) .

Debajo de mi personalización:

function custom_prompt()
  cwd = clink.get_cwd()
  prompt = "\x1b[1;32;40m{cwd} {git}{hg} \n\x1b[1;30;40m{time}\n{lamb} \x1b[0m"
  new_value = string.gsub(prompt, "{cwd}", cwd)
  add_time = string.gsub(new_value, "{time}", os.date("%x - %X"))
  clink.prompt.value = string.gsub(add_time, "{lamb}", "λ")
end

clink.prompt.register_filter(custom_prompt, 1)

Y este es el aviso resultante

C:\
03/25/17 - 20:56:14
λ

Puede encontrar más opciones de personalización para la salida de tiempo en el manual de Lua


actualización para comentario informó error

function time_prompt()
    os.setlocale ("", "time")
    local cwd = clink.get_cwd()
    local prompt = "\x1b[1;32m{cwd} {git}{hg} \n\x1b[30m{time}\n{lamb} \x1b[0m"
    local new_value = string.gsub(prompt, "{cwd}", cwd)
    local add_time = string.gsub(new_value, "{time}", os.date("%x - %X"))
    clink.prompt.value = string.gsub(add_time, "{lamb}", "λ")
end

La respuesta máxima es correcta, ¡pero esta es la mejor respuesta!
AuthorProxy

D:\Tools\cmder\config\my_prompt.lua:1: unexpected symbol near char(255) y el mensaje se ve así: `1: 26.51)" ← \ `
Abogado del Diablo

mmm No sé qué es eso, pero verificar de nuevo mi archivo lua no es exactamente como el código anterior que publiqué, dígame si está funcionando el que estoy actualizando.
Gruber

El comentario de @Edwin en la respuesta de Maximus funcionó para mí. prompt cmd /c echo ($t$s) :$p$genuser-profile.cmd
Abogado del Diablo

Esto solo no cambia nada en mi indicador de git bash en cmder. ¿Se supone que cmder lee y ejecuta todos los archivos .lua en la carpeta de configuración al inicio?
AsGoodAsItGets

0

Modificación de una línea para cmder. Póngalo en cmder \ config \ my_config.lua

function my_prompt_filter()
    cwd = clink.get_cwd()
    prompt = "\x1b[1;32;40m{cwd}{git}{hg} $> \x1b[33;40m"
    new_value = string.gsub(prompt, "{cwd}", cwd)
    clink.prompt.value = string.gsub(new_value, "{lamb}", "λ")
end

clink.prompt.register_filter(my_prompt_filter, 1)

resultado:

C:\Users\user1 $>
C:\Users\user1 $> date
The current date is: 02.02.2018
C:\Users\user1 $>

0

Ninguna de las soluciones aquí funcionó para mí, así que terminé agregando la siguiente línea en mi .bashrc:

alias myprompt='export PS1="\[\e]9;9;"\w"\007\e]9;12\007\]\[\033]0;$MSYSTEM:${PWD//[^[:ascii:]]/?}\007\]\[\033[32m\]\u@\h \[\033[33m\]\w\[\033[36m\]`__git_ps1`\[\033[0m\] \D{%T}\nλ "'

Esa última parte \D{%T}es la que muestra la hora actual (no me importa la fecha, ya que generalmente necesito saber cuánto tiempo ha transcurrido desde que comencé una tarea).

Por supuesto, esto no cambia automáticamente la solicitud en todos los terminales git bash. Debe ejecutar el mypromptcomando en el indicador predeterminado para cambiarlo. Traté de hacer la exportación anterior dentro del .bashrcarchivo pero recibí un error. Tal vez alguien tenga una mejor idea sobre cómo solucionarlo.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.