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").vimrcset 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"
}

関連情報