Come aggiungere la data / ora corrente al prompt tintinnio / cmder


12

Sono un utente piuttosto felice del tintinnio tramite il fantastico pacchetto cmder . L'unica cosa che mi manca è un modo semplice per impostare il prompt dei comandi per visualizzare la data / ora corrente (e l'ultimo codice di uscita, il numero di cronologia, come in bash... ecc.).

Qualcuno potrebbe indicarmi la giusta direzione su come farlo?


Puoi semplicemente usare Windows date /t? Inoltre, Windows memorizza l'ultimo codice di uscita %errorlevel%, mentre sh usa $?. Prova quelli.
Bob,

Ma come integrare quell'output al prompt? Non voglio correre date /togni volta prima di eseguire un comando di lunga durata.
Zsolt Botykai,

Oh. Vai a vedere prompt /?, c'è un'opzione di data e ora lì dentro. Ancora una volta, questo è il prompt dei comandi standard di Windows: non ho idea di cosa faccia il tintinnio o il cmder.
Bob,

Risposte:


9

Prova queste impostazioni del prompt (solo esempio, mostra come è possibile chiamare qualsiasi applicazione console all'interno di "prompt prompt"). Nota! Funziona solo in ConEmu.

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

Ma, come ha detto Bob, c'è un modo più semplice:

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

E per cmderte è necessario modificare il fornito in init.batquanto definisce le impostazioni del prompt.


Per cmder, il modo suggerito per modificare le impostazioni del prompt è attivo %CMDER_ROOT%\config\user-startup.cmde non init.bat.
Wegry,

Su win7 con Cmder, l'aggiunta ha $tfatto il trucco per me:@prompt $E[1;32;40m$P$S{git}{hg} $t$S$_$E[1;30;40m{lamb}$S$E[0m
Benj

@wegry questo %CMDER_ROOT%\config\user-startup.cmdfile non sembra avere alcun effetto sulla mia configurazione. Forse stavo sbagliando.
Benj,

@Benj All'inizio non sembrava funzionare neanche per me, ma un riavvio dopo ha funzionato? Sono sconcertato da ciò che ha fatto iniziare a lavorare.
Wegry,

2
nel 2018 per me ho lavorato prompt cmd /c echo ($t$s) :$p$gper aggiungere al user-profile.cmdfile (windows10).
Edwin,

10

La risposta fornita da Maximus non è più valida per cmder 1.3+

Devi creare un .luafile (ad esempio my_prompt.lua) all'interno della tua cartella cmder config con la tua definizione personalizzata (sorgente) .

Di seguito la mia personalizzazione:

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)

E questo è il prompt risultante

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

Puoi trovare ulteriori opzioni di personalizzazione per l'output temporale nel manuale Lua


aggiornamento per commento segnalato errore

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 risposta di Massimo è corretta, ma questa è la risposta migliore!
AuthorProxy,

D:\Tools\cmder\config\my_prompt.lua:1: unexpected symbol near char(255) e il prompt appare come: `1: 26.51)" ← \ `
Devil's Advocate

mmm non so cosa sia, ma ricontrollando il mio file lua non è esattamente come il vecchio codice che ho postato, dimmi se sta usando quello che sto aggiornando ora funziona.
Gruber,

Il commento di @Edwin nella risposta di Maximus ha funzionato per me. prompt cmd /c echo ($t$s) :$p$ginuser-profile.cmd
Devil's Advocate,

Questo da solo non cambia nulla sul mio prompt di git bash in cmder. Si prevede che cmder legga ed esegua tutti i file .lua nella cartella config all'avvio?
AsGoodAsIt Ottiene il

0

Modifica di una riga per cmder. Mettilo su 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)

risultato:

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

0

Nessuna delle soluzioni qui ha funzionato per me, quindi ho finito per aggiungere la seguente riga nel mio .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λ "'

L'ultima parte \D{%T}è ciò che mostra l'ora corrente (non importa della data, come al solito ho bisogno di sapere quanto tempo è trascorso da quando ho iniziato un'attività).

Naturalmente, questo non cambia automaticamente il prompt su tutti i terminali git bash. È necessario eseguire il mypromptcomando sul prompt predefinito per modificarlo. Ho provato a fare solo l'esportazione sopra all'interno del .bashrcfile ma ho riscontrato un errore. Forse qualcuno avrà un'idea migliore su come aggirare questo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.