tmux のタイトルを `fg` から元のジョブ名に保持する

tmux のタイトルを `fg` から元のジョブ名に保持する

私はイーブイの.zshrc/.tmux.conf

vim セッションを実行しているときに、Ctrl+を実行しzてから を実行する⚘ fgと、tmux ペインのタイトルが に変更されます。 を、またはたまたま使用していたものfgに戻したいです。vim whatever.txt

これどうやってするの?

答え1

preexec()関数を次の.zshrcように変更します

function preexec {
  local fg_title
  if [[ $* == fg* ]]; then
     if [[ $* == *%* ]]; then
        fg_title=($(jobs ${${(z)1}[2]}))
     else
        fg_title=($(jobs %%))
     fi
     title "${fg_title[5,-1]}"
  else
     title $*
  fi
}

このコードは確かに最適ではありませんが、プロセスをフォアグラウンドにするためにfgoder を使用すると機能しますfg %2。ただし、これをどのように機能させるかはわかりませんでしたfg %vi

関連情報