Как добавить текущую дату / время в подсказку clink/cmder
Я довольно счастливый пользователь clink через отличный пакет cmder. Единственное, что мне не хватает, - это простой способ настроить командную строку для отображения текущей даты / времени (и последнего кода выхода, номера истории, как в bash
... так далее).
Может ли кто-нибудь указать мне правильное направление, как это сделать?
3 ответа
Попробуйте настройки этого приглашения (только в примере, оно показывает, как вы можете вызывать любое консольное приложение внутри "печати приглашения"). Заметка! Работает только в 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
как это определяет настройки подсказки.
Ответ от Maximus больше не действителен для 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
Модификация одной строки для 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 $>
Ни одно из решений здесь не сработало для меня, поэтому в итоге я добавил следующую строку в свой
.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
файл, но я получал сообщение об ошибке. Может быть, у кого-то будет лучшее представление о том, как это обойти.