clink / cmder 프롬프트에 현재 날짜 / 시간을 추가하는 방법


12

나는 훌륭한 cmder 패키지 를 통한 clink 의 다소 행복한 사용자입니다 . 내가 놓친 유일한 것은 현재 날짜 / 시간 (및 마지막 종료 코드, 기록 번호 등) 을 표시하도록 명령 프롬프트를 설정하는 쉬운 방법 입니다.bash

누군가 내가 이것을하는 올바른 길을 가리킬 수 있습니까?


그냥 Windows를 사용할 수 있습니까 date /t? 또한 Windows는 마지막 종료 코드를에 저장하고 %errorlevel%sh는를 사용합니다 $?. 사용해보십시오.
Bob

그러나 출력을 프롬프트에 통합하는 방법은 무엇입니까? date /t장기 실행 명령을 실행하기 전에 매번 실행하고 싶지 않습니다 .
Zsolt Botykai

오. 이동 참조 prompt /?날짜 및 시간 옵션이 거기에있다. 다시 말하지만, 그것은 표준 Windows 명령 프롬프트입니다-나는 clink 나 cmder가 무엇을하는지 전혀 모른다.

답변:


9

이 프롬프트 설정을 사용해보십시오 (예 : "프롬프트 인쇄"내부의 콘솔 응용 프로그램을 호출하는 방법을 보여줍니다). 노트! ConEmu에서만 작동합니다.

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

그러나 Bob이 말했듯이 더 쉬운 방법이 있습니다.

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

그리고 프롬프트 설정을 정의한대로 cmder제공된 init.bat것을 편집해야 합니다.


cmder를 들어, 편집 프롬프트 설정으로 제안 된 방법에 %CMDER_ROOT%\config\user-startup.cmd하지 init.bat.
wegry 2016 년

Cmder와 함께 win7에서, 추가 $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파일은 내 구성에 영향을 미치지 않는 것 같습니다. 어쩌면 내가 잘못하고 있었을 것입니다.
Benj

@Benj 처음에는 나에게도 효과가 없었지만 나중에 다시 시작 했습니까? 내가 일을 시작한 것에 의해 나는 미쳤다.
wegry

2
2018 년에 파일 (windows10) prompt cmd /c echo ($t$s) :$p$g에 추가하려고 했습니다 user-profile.cmd.
Edwin

10

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

막시무스의 대답은 맞지만 이것이 최선의 대답입니다!
AuthorProxy 2016 년

D:\Tools\cmder\config\my_prompt.lua:1: unexpected symbol near char(255) 프롬프트는 다음과 같습니다 :`1 : 26.51) "← \`
Devil 's Advocate

음, 그게 뭔지 모르겠지만 내 루아 파일을 다시 확인하면 내가 게시 한 이전 코드와 정확히 일치하지 않습니다. 지금 업데이트중인 코드를 사용하고 있는지 알려주십시오.
Gruber

Maximus의 답변에서 @ Edwin의 의견이 저에게 효과적이었습니다. prompt cmd /c echo ($t$s) :$p$guser-profile.cmd
악마의 옹호자

이것만으로도 git bash 프롬프트에서 cmder로 아무것도 변경하지 않습니다. cmder는 시작시 구성 폴더의 모든 .lua 파일을 읽고 실행해야합니까?
AsGoodAsIt

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.