Bagaimana cara menambahkan tanggal / waktu saat ini ke klink / cmder prompt

12

Saya pengguna clink yang senang melalui paket cmder yang hebat . Satu-satunya hal yang saya lewatkan adalah cara mudah untuk mengatur command prompt untuk menampilkan tanggal / waktu saat ini (dan kode keluar terakhir, nomor riwayat, seperti dalam bash... dll).

Bisakah seseorang mengarahkan saya ke arah yang benar tentang cara melakukan ini?

Zsolt Botykai
sumber
Bisakah Anda menggunakan Windows date /t? Juga, Windows menyimpan kode keluar terakhir %errorlevel%saat sh digunakan $?. Coba itu.
Bob
Tetapi bagaimana mengintegrasikan output itu ke prompt? Saya tidak ingin menjalankan date /tsetiap waktu sebelum menjalankan beberapa perintah yang berjalan lama.
Zsolt Botykai
Oh Lihat prompt /?, ada opsi tanggal dan waktu di sana. Sekali lagi, itulah perintah standar Windows - Saya tidak tahu apa yang dilakukan denting atau cmder.
Bob

Jawaban:

9

Coba pengaturan prompt ini (hanya contoh, ini menunjukkan bagaimana Anda dapat memanggil aplikasi konsol apa pun di dalam "pencetakan cepat"). Catatan! Ini hanya berfungsi di ConEmu.

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

Tapi, seperti kata Bob, ada cara yang lebih mudah:

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

Dan untuk cmderAnda harus mengedit yang disediakan init.batkarena itu menentukan pengaturan prompt.

Maximus
sumber
Untuk cmder, cara yang disarankan untuk mengedit pengaturan prompt adalah %CMDER_ROOT%\config\user-startup.cmddan tidak init.bat.
Selamat
Pada win7 dengan Cmder, menambahkan $tmelakukan trik untuk saya:@prompt $E[1;32;40m$P$S{git}{hg} $t$S$_$E[1;30;40m{lamb}$S$E[0m
Benj
@lagi %CMDER_ROOT%\config\user-startup.cmdfile ini sepertinya tidak berpengaruh pada konfigurasi saya. Mungkin saya salah melakukannya.
Benj
@ Benj. Tampaknya tidak bekerja untuk saya pada awalnya juga, tetapi restart kemudian ternyata berhasil? Saya bingung dengan apa yang membuat mulai bekerja.
Wegry
2
pada tahun 2018 bagi saya bekerja prompt cmd /c echo ($t$s) :$p$guntuk menambah user-profile.cmdfile (windows10).
Edwin
10

Jawaban yang diberikan oleh Maximus tidak lagi berlaku untuk cmder 1.3+

Anda harus membuat .luafile (misalnya my_prompt.lua) di dalam folder cmder config dengan definisi (sumber) khusus Anda .

Di bawah kustomisasi saya:

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)

Dan ini adalah prompt yang dihasilkan

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

Anda dapat menemukan lebih banyak opsi penyesuaian untuk keluaran waktu dalam manual Lua


perbarui untuk kesalahan yang dilaporkan komentar

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
Gruber
sumber
Jawaban Maximus benar, tetapi ini adalah jawaban terbaik!
AuthorProxy
D:\Tools\cmder\config\my_prompt.lua:1: unexpected symbol near char(255) dan prompt terlihat seperti: `1: 26.51)" ← \ `
Pengacara Setan
mmm Saya tidak tahu apa itu, tetapi memeriksa lagi file lua saya itu tidak persis seperti kode lama saya diposting, katakan padaku jika menggunakan yang saya perbarui sekarang berfungsi.
Gruber
Komentar dari @Edwin dalam jawaban Maximus bekerja untuk saya. prompt cmd /c echo ($t$s) :$p$ginuser-profile.cmd
Pengacara Setan
Ini saja tidak mengubah apa pun pada git bash prompt saya di cmder. Apakah cmder seharusnya membaca dan menjalankan semua file .lua di folder konfigurasi saat startup?
AsGoodAsItGets
0

Modifikasi satu baris untuk cmder. Masukkan ke 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)

hasil:

C:\Users\user1 $>
C:\Users\user1 $> date
The current date is: 02.02.2018
C:\Users\user1 $>
Stan Gabenov
sumber
0

Tidak ada solusi di sini yang berfungsi untuk saya, jadi saya akhirnya menambahkan baris berikut di .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λ "'

Bagian terakhir \D{%T}itulah yang menunjukkan waktu saat ini (tidak peduli dengan tanggalnya, karena biasanya saya perlu tahu berapa banyak waktu yang telah berlalu sejak saya memulai tugas).

Tentu saja, ini tidak secara otomatis mengubah prompt pada semua terminal git bash. Anda harus menjalankan mypromptperintah pada prompt default untuk mengubahnya. Saya mencoba hanya melakukan ekspor di atas di dalam .bashrcfile tetapi saya mendapatkan kesalahan. Mungkin seseorang akan memiliki ide yang lebih baik tentang cara menyiasatinya.

AsGoodAsItGets
sumber