Comment ajouter la date et l'heure actuelles à l'invite clink / cmder

10

Je suis un utilisateur plutôt heureux de Clink via le super package cmder . La seule chose qui me manque, c'est un moyen facile de configurer l'invite de commande pour afficher la date et l'heure actuelles (et le dernier code de sortie, le numéro d'historique, comme dans bash... etc).

Quelqu'un pourrait-il m'indiquer la bonne direction sur la façon de procéder?

Zsolt Botykai
la source
Pouvez-vous simplement utiliser Windows date /t? En outre, Windows stocke le dernier code de sortie %errorlevel%, alors que sh l'utilise $?. Essayez ceux-là.
Bob
Mais comment intégrer cette sortie à l'invite? Je ne veux pas courir à date /tchaque fois avant d'exécuter une commande longue.
Zsolt Botykai
Oh. Allez voir prompt /?, il y a une option de date et heure. Encore une fois, c’est l’invite de commande Windows standard. Je ne sais pas ce que font les textures ou les commandes.
Bob

Réponses:

8

Essayez ces paramètres d'invite (à titre d'exemple seulement, cela montre comment vous pouvez appeler n'importe quelle application de la console dans "impression rapide"). Remarque! Cela ne fonctionne que dans ConEmu.

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

Mais, comme l'a dit Bob, il existe un moyen plus simple:

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

Et pour cmdervous devriez éditer le fourni init.batcar cela définit les paramètres d'invite.

Maximus
la source
Pour cmder, la méthode suggérée pour modifier les paramètres d'invite est d'utiliser %CMDER_ROOT%\config\user-startup.cmdet non init.bat.
wegry
Sur win7 avec Cmder, ajouter $tm'a fait le tour:@prompt $E[1;32;40m$P$S{git}{hg} $t$S$_$E[1;30;40m{lamb}$S$E[0m
Benj
@wegry ce %CMDER_ROOT%\config\user-startup.cmdfichier ne semble pas avoir d'effet sur ma configuration. Peut-être que je le faisais mal.
Benj
@Benj Au début, cela ne semblait pas fonctionner pour moi non plus, mais un redémarrage plus tard? Je suis mystifié par ce qui fait que ça marche.
wegry
2
en 2018 pour moi a travaillé prompt cmd /c echo ($t$s) :$p$gpour ajouter au user-profile.cmdfichier (windows10).
Edwin
9

La réponse fournie par Maximus n’est plus valable pour cmder 1.3+.

Vous devez créer un .luafichier (par exemple my_prompt.lua) dans votre dossier cmder config avec votre définition personnalisée (source) .

Ci-dessous ma personnalisation:

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)

Et c'est l'invite qui en résulte

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

Vous pouvez trouver plus d'options de personnalisation pour la sortie de l'heure dans le manuel Lua


mise à jour pour commentaire signalé erreur

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
Gruber
la source
La réponse Maximus est correcte, mais c’est la meilleure réponse!
AuthorProxy
D:\Tools\cmder\config\my_prompt.lua:1: unexpected symbol near char(255) et l'invite ressemble à: `1: 26.51)" ← \ `
Scott Beeson
mmm je ne sais pas ce que c'est, mais vérifiez à nouveau dans mon fichier lua, ce n'est pas exactement comme l'ancien code que j'ai posté, dites-moi si celui qui est en train de fonctionner fonctionne.
Gruber
Les commentaires de @Edwin dans la réponse de Maximus ont fonctionné pour moi. prompt cmd /c echo ($t$s) :$p$gdansuser-profile.cmd
Scott Beeson
0

Modification d'une ligne pour cmder. Mettez-le dans 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)

résultat:

C:\Users\user1 $>
C:\Users\user1 $> date
The current date is: 02.02.2018
C:\Users\user1 $>
Stan Gabenov
la source