2016-07-08 8 views
1

ghci 프롬프트에서 터미널 색상을 사용하려고합니다.색상이있는 ghci 프롬프트 설정

그래서 ghci을 열고하려고하면 나는이 코드는 echo-e 플래그 bash에 의해 해석되는 것을 알고

Prelude> :set prompt '\[\033[1haskell > \033[0m\]' 
'\[\033[1\]haskell> \[\033[0m\] ' 

. 그러나 ghci에서이 작업을 어떻게 수행 할 수 있습니까?

답변

7

https://wiki.haskell.org/GHCi_in_colour에 따르면, 당신은 설명

:set prompt "\ESC[33m\STXhaskell > \ESC[m\STX" 

몇 가지 참고 사항 사용할 수 있습니다 만 이중 인용 된 문자열 특별히 처리

  1. 을; 작은 따옴표는 프롬프트의 일부로 처리됩니다.
  2. 큰 따옴표로 묶인 문자열은 하스켈 연습을 따릅니다.
  3. \STXbash 프롬프트의 \]에 해당합니다. GHCi가 \[과 동등한 것을 요구하지 않는 이유는 명확하지 않습니다. (아마 그럴거야, 나는이 정도로 놀지 않았다.) . 자세한 내용은 http://trac.haskell.org/haskeline/wiki/ControlSequencesInPrompt을 참조하십시오.
+1

관련 항목 3 : '\ ESC'는'\ ['. –

+0

아, 그래서 GHCi는'\ STC'를 볼 때까지'\ ESC' (그리고 어떤 인쇄 할 수없는 문자)로 카운팅을 멈 춥니 까? – chepner

+0

신경 쓰지 마라, 내가 더 조심스럽게 링크하는 페이지를 읽어야한다 :) – chepner

2

하스켈 문자 이스케이프 코드는 소수에 있습니다

Prelude> :set prompt "\027[31mhaskell>\027[0m " 

도 작동합니다 당신의 .ghci 파일에 같은 지침을 퍼팅.

+0

예 : '\ o33'는 8 진수 이스케이프 코드로 Bash에 더 가깝습니다. oct-> dec 변환은 다음과 같습니다. P – chi