Як додати поточну дату / час для запиту на посилання / cmder


12

Я досить щасливий користувач clink через великий пакет cmder . Єдине, що я сумую - це простий спосіб встановити командний рядок для відображення поточної дати / часу (та останнього коду виходу, номер історії, як у bash... тощо).

Чи міг би хтось вказати мені на правильний напрямок, як це зробити?


Чи можете ви просто використовувати Windows date /t? Також Windows зберігає останній код виходу у %errorlevel%, а sh використовує $?. Спробуйте це.
Боб

Але як інтегрувати цей вихід у підказку? Я не хочу запускати date /tкожен раз перед тим, як запустити якусь довгу команду.
Zsolt Botykai

Ой. Подивіться prompt /?, там є параметри дати та часу. Знову ж таки, це стандартний командний рядок Windows - я не маю поняття, що роблять клінк чи cmder.
Боб

Відповіді:


9

Спробуйте скористатись цим параметром підказки (лише приклад, він показує, як можна викликати будь-яку консольну програму всередині "оперативної друку"). Примітка! Він працює лише в ConEmu.

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

Але, як сказав Боб, є простіший спосіб:

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

А для cmderвас слід відредагувати додане init.batтак, що визначає параметри підказок.


Для cmder пропонований спосіб редагування параметрів підказок увімкнено, %CMDER_ROOT%\config\user-startup.cmdа не init.bat.
wegry

На win7 з Cmder, додавши, $tзробив для мене трюк:@prompt $E[1;32;40m$P$S{git}{hg} $t$S$_$E[1;30;40m{lamb}$S$E[0m
Benj

@wegry Цей %CMDER_ROOT%\config\user-startup.cmdфайл, здається, не вплинув на мою конфігурацію. Можливо, я робив це неправильно
Бендж

@Benj Спочатку це, здається, не працювало і для мене, але перезапуск пізніше зробив? Я вражений тим, що змусив почати працювати.
wegry

2
у 2018 році для мене працювали prompt cmd /c echo ($t$s) :$p$gнад додаванням до user-profile.cmdфайлу (windows10).
Едвін

10

Відповідь, надана Максимусом , більше не вірна для cmder 1.3+

Ви повинні створити .luaфайл (наприклад my_prompt.lua) у вашій папці cmder config із налаштованим визначенням (джерело) .

Нижче мої налаштування:

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)

І це підкаже результат

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

Ви можете знайти більше параметрів налаштування для виведення часу в посібнику Lua


оновлення для коментаря повідомлено про помилку

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

Відповідь Максимуса правильна, але це найкраща відповідь!
АвторProxy

D:\Tools\cmder\config\my_prompt.lua:1: unexpected symbol near char(255) і підказка виглядає так: `1: 26.51)" ← \ `
Адвокат диявола

ммм. Я не знаю, що це, але ще раз перевіривши свій файл луа, це не зовсім як старий код, який я опублікував, скажіть, чи працює той, який я зараз оновлюю.
Грубер

Коментар від @Edwin у відповіді Maximus працював на мене. prompt cmd /c echo ($t$s) :$p$gвuser-profile.cmd
Адвокат диявола

Це одне нічого не змінює мою підказку щодо git bash в cmder. Чи повинен cmder читати та виконувати всі файли .lua в папці config при запуску?
AsGoodAsItGets

0

Модифікація однієї лінії для cmder. Помістіть його в 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)

результат:

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

0

Жодне з рішень тут не працювало для мене, тому я закінчив додавати наступний рядок у моєму .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λ "'

Остання частина \D{%T}- це те, що відображає поточний час (не важливо дати, оскільки зазвичай мені потрібно знати, скільки часу минуло з моменту початку завдання).

Звичайно, це не автоматично змінює підказку на всіх терміналах git bash. Ви повинні виконати mypromptкоманду в запиті за замовчуванням, щоб змінити її. Я намагався виконати вищевказаний експорт всередині .bashrcфайлу, але я отримував помилку. Можливо, хтось матиме краще уявлення про те, як це обійти.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.