Vim使用時、一時的にシェルを使いたい場合、^Zで:suspendしてシェルに降り、^@^@でfgしてVimに戻る、というパターンが確立しています。
ここで問題なのが、一時的にシェルに降りる場合、シェルのカレントディレクトリとVimのカレントディレクトリが異なるということです。
特に、最近は作業内容毎に専用のtab pageを分けており(1番はTODO管理、2番は各種設定編集、3番はこのサイト関係、4番はVimのソースコード、5番以降は一時的な作業時に現れたり消えたり)、各tab pageに独自のカレントディレクトリを持たせ、tab pageの切り替えに応じて自動的に変更するようにしています。この使い方ではVimのカレントディレクトリがコロコロ変化するため、シェルに降りたときに一々cdすることが非常に面倒臭くなります。
と言う訳で:suspendでシェルに降りた際、シェル側のカレントディレクトリを自動的にVim側のカレントディレクトリに合わせたいのですが、これ、どうやればいいんでしょう? プロセス間を跨ぐので、ちょっとやそっとじゃ実現できなさそうな気がします。取り敢えず思いついた方法は次の3通り:
:suspend時にシェルの標準入力にコマンドを送る:suspendではなくGNU screenを併用して代替:suspendの代わりにanotherに切り替え、その際にcdを自動的に行う。という方法。:suspendでなく:shellを使ううーん、どうしましょう。取り敢えず間接法でやってみましょうか。直接法はBinary Hack的なノリになりそうな気がします。