วิธีเพิ่มวันที่ / เวลาปัจจุบันในการแจ้งเตือนเสียงกริ่ง / cmder


12

ฉันเป็นผู้ใช้มีความสุขแทนเสียงกริ๊กผ่านทางที่ดีcmderแพคเกจ สิ่งเดียวที่ฉันพลาดคือวิธีที่ง่ายในการตั้งค่าพรอมต์คำสั่งเพื่อแสดงวันที่ / เวลาปัจจุบัน (และรหัสทางออกล่าสุดหมายเลขประวัติเช่นในbash... ฯลฯ )

ใครช่วยชี้ทิศทางที่ถูกต้องให้ฉันเพื่อทำสิ่งนี้?


คุณสามารถใช้ Windows ได้date /tหรือไม่ นอกจากนี้ Windows จะจัดเก็บรหัสทางออกสุดท้ายในขณะที่การใช้การดวลจุดโทษ%errorlevel% $?ลองสิ่งเหล่านั้น
Bob

แต่จะรวมเอาท์พุทนั้นเข้ากับพรอมต์ได้อย่างไร ฉันไม่ต้องการรันdate /tทุกครั้งก่อนรันคำสั่งที่รันนาน
Zsolt Botykai

โอ้ ไปดูprompt /?มีตัวเลือกวันที่และเวลาในนั้น อีกครั้งนั่นคือพรอมต์คำสั่งมาตรฐานของ Windows - ฉันไม่รู้เลยว่า clink หรือ cmder ทำอะไร
Bob

คำตอบ:


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ไฟล์นี้ดูเหมือนจะไม่มีผลกับการกำหนดค่าของฉัน บางทีฉันอาจทำผิด
21411

@Benj ดูเหมือนว่ามันจะไม่เหมาะกับฉันในตอนแรก แต่การรีสตาร์ทในภายหลังจะเป็นเช่นนั้นหรือ ฉันประหลาดใจกับสิ่งที่ทำให้เริ่มทำงาน
wegry

2
ในปี 2018 สำหรับฉันทำงานprompt cmd /c echo ($t$s) :$p$gเพื่อเพิ่มuser-profile.cmdไฟล์ (windows10)
Edwin

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

คำตอบ Maximus นั้นถูกต้อง แต่นี่เป็นคำตอบที่ดีที่สุด!
AuthorProxy

D:\Tools\cmder\config\my_prompt.lua:1: unexpected symbol near char(255) และพรอมต์ดูเหมือนว่า: `1: 26.51)" ← \ `
ผู้ให้การสนับสนุนของปีศาจ

mmm ฉันไม่รู้ว่ามันคืออะไร แต่การตรวจสอบไฟล์ lua ของฉันอีกครั้งนั้นไม่เหมือนกับรหัสเก่าที่ฉันโพสต์บอกฉันว่าการใช้ที่ฉันอัปเดตอยู่ตอนนี้ใช้งานได้หรือไม่
Gruber

ความคิดเห็นจาก @Edwin ในคำตอบของ Maximus ใช้ได้สำหรับฉัน prompt cmd /c echo ($t$s) :$p$gในuser-profile.cmd
Devil's Advocate

เพียงอย่างเดียวนี้จะไม่เปลี่ยนแปลงอะไรในพรอมต์ทุบตีคอมไพล์ของฉันใน 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ไฟล์ แต่ได้รับข้อผิดพลาด บางทีใครบางคนจะมีความคิดที่ดีขึ้นเกี่ยวกับวิธีการแก้ไข

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.