Как добавить текущую дату / время в подсказку clink / cmder

5856
Zsolt Botykai

Я довольно счастливым пользователем звоном через большой cmder пакет. Единственное, что мне не хватает, - это простой способ настроить командную строку для отображения текущей даты / времени (и последнего кода выхода, номера истории, как в bash... и т. Д.).

Может ли кто-нибудь указать мне правильное направление, как это сделать?

9
Вы можете просто использовать Windows `date / t`? Кроме того, Windows сохраняет последний код завершения в `% errorlevel%`, тогда как sh использует `$?`. Попробуйте это. Bob 10 лет назад 0
Но как интегрировать этот вывод в подсказку? Я не хочу запускать `date / t` каждый раз перед выполнением какой-либо длительной команды. Zsolt Botykai 10 лет назад 0
Ой. Зайдите в `prompt /?`, Там есть опция даты и времени. Опять же, это стандартная командная строка Windows - я понятия не имею, что делают clink или cmder. Bob 10 лет назад 0

3 ответа на вопрос

9
Gruber

Ответ от Maximus больше не действителен для cmder 1.3+

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

Ниже моей настройки:

function custom_prompt() cwd = clink.get_cwd() prompt = "\x1b[1;32;40m \n\x1b[1;30;40m\n \x1b[0m" new_value = string.gsub(prompt, "", cwd) add_time = string.gsub(new_value, "", os.date("%x - %X")) clink.prompt.value = string.gsub(add_time, "", "λ") 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 \n\x1b[30m\n \x1b[0m" local new_value = string.gsub(prompt, "", cwd) local add_time = string.gsub(new_value, "", os.date("%x - %X")) clink.prompt.value = string.gsub(add_time, "", "λ") end 
Максимус ответ правильный, но это лучший ответ! AuthorProxy 7 лет назад 0
`D: \ Tools \ cmder \ config \ my_prompt.lua: 1: неожиданный символ рядом с символом (255)`, а приглашение выглядит так: `1: 26.51)" ← \\ ` Scott Beeson 6 лет назад 0
ммм, я не знаю, что это, но проверяя снова мой файл lua, он не совсем совпадает со старым кодом, который я разместил, скажите мне, работает ли тот, который я обновляю сейчас, работает. Gruber 6 лет назад 0
8
Maximus

Try this prompt settings (example only, it's show how you can call any console application inside "prompt printing"). Note! It works in ConEmu only.

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

But, as Bob said, there is an easier way:

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

And for cmder you should edit the supplied init.bat as that defines the prompt settings.

Для cmder предложенный способ редактирования настроек подсказки находится в `% CMDER_ROOT% \ config \ user-startup.cmd`, а не в` init.bat`. wegry 8 лет назад 0
На win7 с Cmder добавление `$ t` помогло мне:` @prompt $ E [1; 32; 40m $ P $ S $ t $ S $ _ $ E [1; 30; 40м $ S $ E [0м` Benj 8 лет назад 0
@wegry этот файл `% CMDER_ROOT% \ config \ user-startup.cmd` не оказал никакого влияния на мою конфигурацию. Может быть, я делал это неправильно. Benj 8 лет назад 0
@Benj Сначала мне это тоже не показалось, но потом перезагрузка? Я озадачен тем, что заставило начать работать. wegry 8 лет назад 0
@wegry Ну, скажем, оба метода в порядке ... Benj 8 лет назад 0
в 2018 году у меня сработало `приглашение cmd / c echo ($ t $ s): $ p $ g` добавить в файл` user-profile.cmd` (windows10). Edwin 6 лет назад 0
0
Stan Gabenov

Модификация одной строки для cmder. Поместите его в cmder \ config \ my_config.lua

function my_prompt_filter() cwd = clink.get_cwd() prompt = "\x1b[1;32;40m $> \x1b[33;40m" new_value = string.gsub(prompt, "", cwd) clink.prompt.value = string.gsub(new_value, "", "λ") 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 $>