Làm cách nào để thêm ngày / giờ hiện tại vào dấu nhắc / cmder


12

Tôi là một người sử dụng khá vui vẻ của clink thông qua gói cmder tuyệt vời . Điều duy nhất tôi bỏ lỡ là một cách dễ dàng để đặt dấu nhắc lệnh để hiển thị ngày / giờ hiện tại (và mã thoát cuối cùng, số lịch sử, như trong bash... vv).

Ai đó có thể chỉ cho tôi đi đúng hướng về cách làm điều này?


Bạn có thể sử dụng Windows date /tkhông? Ngoài ra, Windows lưu trữ mã thoát cuối cùng trong %errorlevel%khi sh sử dụng $?. Hãy thử những cái đó.
Bob

Nhưng làm thế nào để tích hợp đầu ra đó cho dấu nhắc? Tôi không muốn chạy date /tmọi lúc trước khi chạy một số lệnh chạy dài.
Zsolt Botykai

Oh. Đi xem prompt /?, có một tùy chọn ngày và thời gian trong đó. Một lần nữa, đó là dấu nhắc lệnh Windows tiêu chuẩn - Tôi không biết clink hay cmder làm gì.
Bob

Câu trả lời:


9

Hãy thử cài đặt lời nhắc này (chỉ ví dụ, nó cho thấy cách bạn có thể gọi bất kỳ ứng dụng bảng điều khiển nào bên trong "in nhắc"). Ghi chú! Nó chỉ hoạt động trong ConEmu.

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

Nhưng, như Bob đã nói, có một cách dễ dàng hơn:

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

Và đối với cmderbạn nên chỉnh sửa được cung cấp init.batnhư xác định các cài đặt nhắc nhở.


Đối với cmder, cách được đề xuất để chỉnh sửa cài đặt nhanh chóng là %CMDER_ROOT%\config\user-startup.cmdkhông init.bat.
chúc mừng

Trên win7 với Cmder, việc thêm vào $tđã tạo nên mánh khóe cho tôi:@prompt $E[1;32;40m$P$S{git}{hg} $t$S$_$E[1;30;40m{lamb}$S$E[0m
Hết

@wegry %CMDER_ROOT%\config\user-startup.cmdtập tin này dường như không có bất kỳ ảnh hưởng nào đến cấu hình của tôi. Có lẽ tôi đã làm sai.
Benj

@Benj Ban đầu nó dường như không hoạt động với tôi, nhưng khởi động lại sau thì sao? Tôi đang bối rối bởi những gì đã bắt đầu làm việc.
chúc mừng

2
năm 2018 đối với tôi đã làm việc prompt cmd /c echo ($t$s) :$p$gđể thêm vào user-profile.cmdtệp (windows10).
Edwin

10

Câu trả lời được cung cấp bởi Maximus không còn giá trị cho cmder 1.3+

Bạn phải tạo một .luatệp (ví dụ: my_prompt.luatrong thư mục cmder config của bạn với định nghĩa (nguồn) tùy chỉnh của bạn .

Dưới đây là tùy chỉnh của tôi:

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)

Và đây là lời nhắc kết quả

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

Bạn có thể tìm thấy nhiều tùy chọn tùy chỉnh hơn cho đầu ra thời gian trong hướng dẫn sử dụng Lua


cập nhật cho nhận xét báo cáo lỗi

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

Câu trả lời của Maximus là đúng, nhưng đây là câu trả lời tốt nhất!
AuthorProxy

D:\Tools\cmder\config\my_prompt.lua:1: unexpected symbol near char(255) và lời nhắc trông giống như: `1: 26.51)" ← \ `
Devil's Advocate

Mmm Tôi không biết đó là gì, nhưng kiểm tra lại tệp lua của tôi không chính xác như mã cũ tôi đã đăng, hãy cho tôi biết nếu sử dụng mã tôi đang cập nhật hiện đang hoạt động.
Gruber

Nhận xét từ @Edwin trong câu trả lời của Maximus làm việc cho tôi. prompt cmd /c echo ($t$s) :$p$gtronguser-profile.cmd
Quỷ dữ ủng hộ

Điều này một mình không thay đổi bất cứ điều gì trên dấu nhắc git bash của tôi trong cmder. Có phải cmder sẽ đọc và thực thi tất cả các tệp .lua trong thư mục cấu hình khi khởi động không?
AsoodAsItGets

0

Sửa đổi một dòng cho cmder. Đặt nó vào 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)

kết quả:

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

0

Không có giải pháp nào ở đây làm việc cho tôi, vì vậy tôi đã kết thúc bằng cách thêm dòng sau vào .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λ "'

Phần cuối cùng đó \D{%T}là những gì hiển thị thời gian hiện tại (không quan tâm đến ngày, vì thông thường tôi cần biết bao nhiêu thời gian đã trôi qua kể từ khi tôi bắt đầu một nhiệm vụ).

Tất nhiên, điều này không tự động thay đổi lời nhắc trên tất cả các thiết bị đầu cuối git bash. Bạn phải thực thi mypromptlệnh trên dấu nhắc mặc định để thay đổi nó. Tôi đã cố gắng chỉ thực hiện việc xuất bên trên trong .bashrctệp nhưng tôi đã gặp lỗi. Có lẽ ai đó sẽ có một ý tưởng tốt hơn về cách khắc phục điều đó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.