So fügen Sie der Clink / Cmder-Eingabeaufforderung das aktuelle Datum und die aktuelle Uhrzeit hinzu

12

Ich bin ein ziemlich glücklicher Benutzer von Clink über das großartige Cmder- Paket. Das einzige, was ich vermisse, ist eine einfache Möglichkeit, die Eingabeaufforderung so einzustellen, dass das aktuelle Datum / die aktuelle Uhrzeit (und der letzte Beendigungscode, die Verlaufsnummer, wie in bash... usw.) angezeigt werden .

Könnte mich jemand in die richtige Richtung weisen, wie das geht?

Zsolt Botykai
quelle
Können Sie einfach Windows verwenden date /t? Außerdem speichert Windows den letzten Exit-Code in %errorlevel%, während sh verwendet $?. Probieren Sie diese aus.
Bob
Aber wie kann man diese Ausgabe in die Eingabeaufforderung integrieren? Ich möchte nicht date /tjedes Mal ausgeführt werden, bevor ein Befehl mit langer Laufzeit ausgeführt wird.
Zsolt Botykai
Oh. Sehen Sie prompt /?, es gibt dort eine Datums- und Uhrzeitoption. Auch dies ist die Standard-Windows-Eingabeaufforderung - ich habe keine Ahnung, was Clink oder Cmder tun.
Bob

Antworten:

9

Probieren Sie diese Eingabeaufforderungseinstellungen aus (nur als Beispiel wird gezeigt, wie Sie eine Konsolenanwendung in "Eingabeaufforderungsdruck" aufrufen können). Hinweis! Es funktioniert nur in ConEmu.

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

Aber wie Bob sagte, gibt es einen einfacheren Weg:

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

Und für cmderSie sollten Sie die mitgelieferten bearbeiten, init.batda dies die Eingabeaufforderungseinstellungen definiert.

Maximus
quelle
Für cmder ist die empfohlene Methode zum Bearbeiten der Eingabeaufforderungseinstellungen aktiviert %CMDER_ROOT%\config\user-startup.cmdund nicht init.bat.
Wegry
Auf win7 mit Cmder hat das Hinzufügen $tden Trick für mich getan:@prompt $E[1;32;40m$P$S{git}{hg} $t$S$_$E[1;30;40m{lamb}$S$E[0m
Benj
@wegry Diese %CMDER_ROOT%\config\user-startup.cmdDatei schien keine Auswirkungen auf meine Konfiguration zu haben. Vielleicht habe ich es falsch gemacht.
Benj
@Benj Anfangs schien es auch bei mir nicht zu funktionieren, aber ein Neustart später schon? Ich bin verwirrt darüber, was dazu geführt hat, dass ich angefangen habe zu arbeiten.
Wegry
2
2018 arbeitete für mich daran prompt cmd /c echo ($t$s) :$p$g, die user-profile.cmdDatei (Windows 10) hinzuzufügen.
Edwin
10

Die Antwort von Maximus gilt nicht mehr für cmder 1.3+

Sie müssen eine .luaDatei (zum Beispiel my_prompt.lua) in Ihrem cmder- config Ordner mit Ihrer benutzerdefinierten Definition (Quelle) erstellen .

Unter meiner Anpassung:

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)

Und das ist die resultierende Eingabeaufforderung

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

Weitere Anpassungsoptionen für die Zeitausgabe finden Sie im Lua-Handbuch


Update für Kommentar gemeldet Fehler

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
quelle
Maximus Antwort ist richtig, aber dies ist die beste Antwort!
AuthorProxy
D:\Tools\cmder\config\my_prompt.lua:1: unexpected symbol near char(255) und die Eingabeaufforderung sieht aus wie folgt: `1: 26.51)" ← \ `
Devil's Advocate
mmm Ich weiß nicht, was das ist, aber wenn ich meine Lua-Datei erneut überprüfe, entspricht sie nicht genau dem alten Code, den ich gepostet habe. Sagen Sie mir, ob die Verwendung des Codes, den ich gerade aktualisiere, funktioniert.
Gruber
Der Kommentar von @Edwin in Maximus 'Antwort hat bei mir funktioniert. prompt cmd /c echo ($t$s) :$p$ginuser-profile.cmd
Devil's Advocate
Dies allein ändert nichts an meiner Git-Bash-Eingabeaufforderung in cmder. Soll cmder beim Start alle .lua-Dateien im Konfigurationsordner lesen und ausführen?
AsGoodAsItGets
0

Einzeilige Änderung für cmder. Legen Sie es in 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)

Ergebnis:

C:\Users\user1 $>
C:\Users\user1 $> date
The current date is: 02.02.2018
C:\Users\user1 $>
Stan Gabenov
quelle
0

Keine der Lösungen hier hat für mich funktioniert, daher habe ich die folgende Zeile in meine eingefügt .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λ "'

In diesem letzten Teil \D{%T}wird die aktuelle Uhrzeit angezeigt (das Datum ist mir egal, da ich normalerweise wissen muss, wie viel Zeit vergangen ist, seit ich eine Aufgabe gestartet habe).

Dies ändert natürlich nicht automatisch die Eingabeaufforderung auf allen Git-Bash-Terminals. Sie müssen den mypromptBefehl an der Standardaufforderung ausführen , um ihn zu ändern. Ich habe versucht, nur den obigen Export innerhalb der .bashrcDatei durchzuführen, aber es wurde eine Fehlermeldung angezeigt. Vielleicht hat jemand eine bessere Idee, wie man das umgehen kann.

Besser geht's nicht
quelle