vim을 사용하여 OS X에서 터미널 탭 이름 설정

vim을 사용하여 OS X에서 터미널 탭 이름 설정

저는 정기적으로 OS X(El Capitan) 터미널에서 Linux 클러스터로 SSH를 통해 접속하며, 때로는 여러 터미널 탭을 사용하기도 합니다. 저는 bash와 vim을 사용합니다.

나는 다음을 수행하고 싶습니다 :

  • SSH를 사용할 때 터미널 탭 제목을 현재 작업 디렉터리로 설정하세요.PROMPT_COMMAND='printf "\e]1;"`basename $PWD`"\a"'
  • vim을 사용할 때 터미널 탭 제목을 "vim — FILENAME"으로 설정하세요.

내 질문은 다음과 같습니다.

  • 이렇게 하고 let &titlestring = "vim — " . expand("%:t").vimrc set title에서 터미널이 변경됩니다.창문탭 제목이 아닌 제목입니다. 탭 제목을 별도로 설정하지 않으면(매개변수 1) 탭 제목이 창 제목(매개변수 2)을 반영하지만, 탭 제목을 설정하면 창 제목과 "분리"됩니다.
  • 외부 명령을 실행하면.vimrc이 기능을 사용할 때 :!짜증나는 "Enter 키를 누르세요" 대화 상자가 나타납니다.
  • 내가 :silent !사용한다면.vimrc, vim을 종료한 후 화면 하단에 터미널 프롬프트가 나타납니다. 나진짜프롬프트 위치를 저장하고 vim을 사용할 때마다 재설정하고 싶지 않습니다.
  • 내가 내 안에 있다면.bashrc다음 기능:

    function vim
    {
        printf "\e]1;"`basename "$1"`"\a"
        vim "$1"
    }
    

    그럼 내 터미널무너지다vim명령줄에서 호출할 때. 함수 호출은 vvim작동하지만 영원히 입력하고 싶지는 않습니다 vvim. 별칭을 원합니다 vim.

그래서 막힌 것 같아요. 어떤 조언이라도 대단히 감사하겠습니다. 미리 감사드립니다!

답변1

글쎄, 내 문제가 해결되었습니다. 저는 프로그래밍 101에 실패했습니다.

vim을 함수로 정의한 다음 vim을 호출하여 무한 재귀 루프를 설정했습니다. 내 터미널이 추락한 것도 당연합니다. "실제" vim, 즉 실제 실행 파일을 호출해야 합니다. 이렇게 하면 됩니다:

function vim
{
    printf "\e]1;"`basename "$1"`"\a"
    /usr/bin/vim "$1"
}

관련 정보