cmder 에서 화살표 키로 예전 명령어 호출시 첫 글자가 남아있는 문제 해결


cmder 에서 화살표 키로 command history 호출시 첫 글자가 계속 남는 버그가 있었습니다.


즉 아래와 같이 mplayer 를 입력한 후에 화살표 ↑ 로 예전 명령어를 호출합니다.

그러면 예전 명령어(예: cls) 앞에 이전에 입력한 명령어의 첫 글자인 m 이 계속 남아 있게 됩니다.


명령어 히스토리를 제대로 사용할 수 없는 매우 짜증나는 버그였는데 오늘 github 에서 찾아 보니 해결책이 있었습니다.


원인은 prompt 에 사용하는 lambda 문자 (λ) 가 locale 마다 폰트의 크기가 달라서 렌더링이 달라지는 게 원인이었습니다.


해결책은 다음과 같이 vendor/clink.lua 파일을 열어서 다음 내용을 찾은 후에 람다 문자(λ) 를 $ 나 기타 프롬프트로 선호하는 문자로 변경해 주면 됩니다.

    local lambda
    cmder_prompt = string.gsub(cmder_prompt, "{cwd}", cwd)
    if env == nil then
        lambda = "λ"
    else
        lambda = "("..env..") λ"



Ref