ansii 색상의 에코가 내 텍스트를 두 배로 늘립니다 (zsh, mac).

이고르 경련

Mavericks에서 iTerm2를 사용하고 있습니다. $TERM로 설정됩니다 xterm-256color. 이것을 명령 줄에 인쇄하면 :

echo -e "\e[0;36m xxx \e[0m"

콘솔에서 오류가 발생하면 경고음이 울리고 출력은 다음과 같습니다.

xxx "  xxx

올바른 색상으로. 내가 무엇을 놓치고 있는지에 대한 아이디어가 있습니까?

아대 폰

이 동작의 가능한 이유는 ~/.zshrc.NET과 같은 특수 문자를 인용하지 않고 현재 실행중인 명령 줄을 포함하도록 터미널 제목을 업데이트하는 일부 설정이 있기 때문일 수 있습니다 \e.

실제로 제목을 업데이트하는 줄은 다음과 같습니다.

print -n -- "\e]2; $commandline \a"

그 대신에 \e]2;일 수도 있고 \e]0;그 대신 print -n일 수도 있습니다 echo -en.

중요한 부분은 이것이 터미널에 인쇄하는 데 사용되는 것과 동일한 명령이라는 것입니다. 그러나 \e]2;\a( "종"문자) 사이의 모든 것은 터미널에 인쇄되는 대신 터미널 제목으로 이동합니다.

하지 않는 한은 $commandline같은 일부 특수 문자가 포함 \a\e. 이러한 경우 출력의 일부 또는 전체가 제목 대신 터미널에 인쇄 될 수 있습니다.

귀하의 경우에는 첫 번째 \e에서 echo인터럽트하여 터미널 제목의 설정을 한 후 모든게 터미널로 이동합니다. 즉, 출력의 첫 번째 부분은- xxx "터미널 제목의 실패한 설정에서 비롯되고 두 번째 부분은- xxx의 실제 출력입니다 echo.


이 동작을 방지하려면 터미널로 보낼 모든 것을 제목으로 올바르게 인용해야합니다.

내에서는 ~/.zshrc명령 줄을 정리 한 후 터미널 제목을 설정하는 데 다음과 같은 내용이 있습니다.

settermtitle () {
    # save the first argument in commandline if given, else use empty string
    local commandline="${1:-}"
    # remove special whitespaces (newline, tab, vertical tab, etc)
    commandline=$(print -nr -- "$cl" | tr "\n\t\v\f\r" " ")
    # quote print specials
    commandline=${(V)commandline}
    # quote backslashes
    commandline=${commandline//\\/\\\\}

    print -n -- "\e]2; iTerm2 - $commandline\a"
}

preexec_title () {
    settermtitle "$1"
}

add-zsh-hook preexec preexec_title

먼저 공백을 공백 문자로 바꿉니다. 그런 다음 인쇄 할 수없는 문자를 표시합니다. 같은 - 그리고 마지막으로 나는 탈출 문자로 문제를 방지하기 위해 남아있는 백래쉬를 인용 \e-에 $commandline.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Javascript For Loop가 내 div를 계속 두 배로 늘립니다.

분류에서Dev

WPF DataGrid의 LoadingRow 이벤트에서 행 색상을 번갈아 가며 행 색상을 두 배로 늘립니다.

분류에서Dev

Google Play 서비스와 AdMob은 내 앱의 메모리를 두 배로 늘립니다.

분류에서Dev

Shiny에서 bsPopover로 만든 텍스트 상자의 너비를 늘립니다.

분류에서Dev

두 가지 색상의 텍스트로 텍스트 뷰를 어떻게 만들 수 있습니까?

분류에서Dev

내 SQL 쿼리의 항목이 결과 값을 두 배로 늘립니다.

분류에서Dev

Javascript에 이벤트 리스너를 추가하면 내 (간단한) 수학이 두 배로 늘어납니다.

분류에서Dev

UITableViewCell의 UILabel이 모든 willDisplayCell에서 글꼴 크기를 두 배로 늘립니다.

분류에서Dev

Hibernate는 일대 다에서 외래 키를 두 배로 늘립니다.

분류에서Dev

Jinja는 for 루프에서 콘텐츠를 두 배로 늘립니다.

분류에서Dev

JQuery Datatable 셀의 텍스트를 두 가지 색상으로 어떻게 만들 수 있습니까?

분류에서Dev

텍스트를 두 배로 늘리고 텍스트 정렬을 상단에 유지하는 방법은 무엇입니까?

분류에서Dev

jQuery 대화 상자 내의 두 버튼 사이에 텍스트를 세로로 가운데 정렬하는 방법은 무엇입니까?

분류에서Dev

자바 스크립트에서 텍스트 상자를 배열하고 다른 텍스트 상자로 보내기

분류에서Dev

Chrome에서 밝은 색상의 텍스트를 어두운 텍스트로 인쇄

분류에서Dev

미리보기 (Mac)가 pdf의 배경 및 텍스트 색상을 변경할 수 있습니까?

분류에서Dev

Mac OS의 숭고한 텍스트 3이 프로젝트를 열어 두지 않습니다.

분류에서Dev

genisoimage는 폴더 크기를 두 배로 늘립니다.

분류에서Dev

Firebase는 데이터를 두 배로 늘립니다.

분류에서Dev

Rails : 내 페이지에 두 개의 Jquery 스크립트를로드 할 수 없습니다.

분류에서Dev

Rails : 내 페이지에 두 개의 Jquery 스크립트를로드 할 수 없습니다.

분류에서Dev

탐색 모음의 링크가 서로 두 배로 늘어납니다.

분류에서Dev

CSS의 위쪽 및 아래쪽 테두리가 <div> 태그 내에서 텍스트를 세로로 정렬하지 않습니다.

분류에서Dev

내 웹 사이트의 블로거 댓글 상자에 기본 텍스트를 추가하고 싶습니다.

분류에서Dev

내부에 char 요소가있는 2D 배열의 크기를 두 배로 늘리는 방법

분류에서Dev

HTML / CSS 콘텐츠로 문자열의 글꼴 크기를 두 배로 늘립니다.

분류에서Dev

셸 스크립트의 curl에서 HTTP 상태 코드와 콘텐츠를 모두 검색합니다.

분류에서Dev

rsync는 ext4에서 NTFS-3G로 복사 할 때 크기를 두 배로 늘립니다.

분류에서Dev

Atmosphere의 MeteorServlet 내에서 Spring DispatcherServlet을 사용하면 Spring 컨텍스트가 두 번로드됩니다.

Related 관련 기사

  1. 1

    Javascript For Loop가 내 div를 계속 두 배로 늘립니다.

  2. 2

    WPF DataGrid의 LoadingRow 이벤트에서 행 색상을 번갈아 가며 행 색상을 두 배로 늘립니다.

  3. 3

    Google Play 서비스와 AdMob은 내 앱의 메모리를 두 배로 늘립니다.

  4. 4

    Shiny에서 bsPopover로 만든 텍스트 상자의 너비를 늘립니다.

  5. 5

    두 가지 색상의 텍스트로 텍스트 뷰를 어떻게 만들 수 있습니까?

  6. 6

    내 SQL 쿼리의 항목이 결과 값을 두 배로 늘립니다.

  7. 7

    Javascript에 이벤트 리스너를 추가하면 내 (간단한) 수학이 두 배로 늘어납니다.

  8. 8

    UITableViewCell의 UILabel이 모든 willDisplayCell에서 글꼴 크기를 두 배로 늘립니다.

  9. 9

    Hibernate는 일대 다에서 외래 키를 두 배로 늘립니다.

  10. 10

    Jinja는 for 루프에서 콘텐츠를 두 배로 늘립니다.

  11. 11

    JQuery Datatable 셀의 텍스트를 두 가지 색상으로 어떻게 만들 수 있습니까?

  12. 12

    텍스트를 두 배로 늘리고 텍스트 정렬을 상단에 유지하는 방법은 무엇입니까?

  13. 13

    jQuery 대화 상자 내의 두 버튼 사이에 텍스트를 세로로 가운데 정렬하는 방법은 무엇입니까?

  14. 14

    자바 스크립트에서 텍스트 상자를 배열하고 다른 텍스트 상자로 보내기

  15. 15

    Chrome에서 밝은 색상의 텍스트를 어두운 텍스트로 인쇄

  16. 16

    미리보기 (Mac)가 pdf의 배경 및 텍스트 색상을 변경할 수 있습니까?

  17. 17

    Mac OS의 숭고한 텍스트 3이 프로젝트를 열어 두지 않습니다.

  18. 18

    genisoimage는 폴더 크기를 두 배로 늘립니다.

  19. 19

    Firebase는 데이터를 두 배로 늘립니다.

  20. 20

    Rails : 내 페이지에 두 개의 Jquery 스크립트를로드 할 수 없습니다.

  21. 21

    Rails : 내 페이지에 두 개의 Jquery 스크립트를로드 할 수 없습니다.

  22. 22

    탐색 모음의 링크가 서로 두 배로 늘어납니다.

  23. 23

    CSS의 위쪽 및 아래쪽 테두리가 <div> 태그 내에서 텍스트를 세로로 정렬하지 않습니다.

  24. 24

    내 웹 사이트의 블로거 댓글 상자에 기본 텍스트를 추가하고 싶습니다.

  25. 25

    내부에 char 요소가있는 2D 배열의 크기를 두 배로 늘리는 방법

  26. 26

    HTML / CSS 콘텐츠로 문자열의 글꼴 크기를 두 배로 늘립니다.

  27. 27

    셸 스크립트의 curl에서 HTTP 상태 코드와 콘텐츠를 모두 검색합니다.

  28. 28

    rsync는 ext4에서 NTFS-3G로 복사 할 때 크기를 두 배로 늘립니다.

  29. 29

    Atmosphere의 MeteorServlet 내에서 Spring DispatcherServlet을 사용하면 Spring 컨텍스트가 두 번로드됩니다.

뜨겁다태그

보관