私は定期的に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"
}