Humanity

Edit the world by your favorite way

tyru/sync-term-cwd.vim をちょっと便利にした

tyru.hatenablog.com

↑の記事で紹介した tyru/sync-term-cwd.vim:SyncTermCwdConditionalCd を追加しました。

この長ったらしい Ex コマンドはグローバル変数 g:synctermcwd_cd_command に指定する使用例を想定しています。

let g:synctermcwd_cd_command = 'SyncTermCwdConditionalCd'

以下のように動きます。

  • タブ内に2つ端末があった場合は :lcd
  • ローカルディレクトリ (:lcd) がある場合は :lcd
  • ローカルディレクトリ (:tcd) がある場合は :tcd
  • それ以外は :tcd

概ね最初の動作がやりたかった感じです。 以前は自分の vimrc でも

let g:synctermcwd_cd_command = 'tcd'

のように設定していたんですが、たまに terminal window を1つのタブページ内で2つ開くと片方の terminal で cd したディレクトリが上書きされてしまうためです。 後に開いた terminal で cd したら :lcd、最初は :tcd というようなことがやりたかったので入れてみました。