vim이 터미널에 문서 경로를 표시하도록 하려면 어떻게 해야 합니까?

vim이 터미널에 문서 경로를 표시하도록 하려면 어떻게 해야 합니까?

OS X 10.11은 Terminal.app에 다음 형식의 제어 시퀀스를 해석하는 멋진 기능을 추가합니다.

ESC ] 6 ; file://hostname/<path-as-URL> BEL

현재 편집 중이거나 보고 있는 "문서"를 지정하는 것입니다. 예를 들어,

echo -e "\x1b]6;file://localhost/etc/passwd\a"

터미널 제목에 파일 이름이 표시됩니다 passwd. cmd+클릭하여 이동 경로 추적(OS X의 대부분 파일 편집기에 있는 "문서 제목" 기능)을 얻을 수 있습니다. OS X 기본값은 bashrc이미 이 순서를 사용하여 현재 작업 디렉터리를 창 제목에 삽입합니다.

Vim이 새 파일을 편집할 때마다 이 특정 이스케이프 시퀀스를 출력하도록 하는 방법(이상적으로는 편집이 중지된 후(예: 종료 또는 파일 변경 시) 설정을 해제하는 방법) 알고 싶습니다. 예를 들어 다른 프로그램에 대한 확장 less도 매우 도움이 될 것입니다.

URL은 기술적으로 적절하게 URL로 인코딩되어야 하지만 그렇지 않더라도 괜찮습니다. 저는 일반적으로 Vim에서 특히 특이한 파일 이름을 가진 파일을 편집하지 않습니다.

답변1

Vim의 일반적인 처리를 포기해도 괜찮다면 title이를 하이재킹할 수 있습니다. 터미널로 내보내며 적절한 시퀀스를 발행하도록 조정될 수 있습니다.

set t_ts=^[]6;file://localhost
set t_fs=^G^M
set title
autocmd BufEnter * let &titlestring = expand("%:p")

위에 표시된 제어 문자에 대한 리터럴 문자를 가져오려면 control+v및 then을 사용하세요 . 셸 esc주변의 기능이 vim설정을 지울 것입니다( VimLeave autocmd7.3에서는 작업을 시작할 수 없으며 일시 중지하는 경우에도 vim문제가 있습니다).

function vim {
    command vim "$@"
    echo -ne "\033]6;\007"
}

:help title에 대한 자세한 내용을 보거나 Vim 파일에서 코드를 title살펴보세요 .src/term.c

관련 정보